日志:日志里面记录的是服务器的状态;日志的存在可以使管理员提前知道服务器的各种状态,如果服务器出现什么问题可以提前处理。进程和操作系统内核需要能够为发生的事件记录日志,这些日志可用于系统审核和问题的排出,一般永久保存在/var/log目录中。
注:文件记录信息表内的路径即为日志的采集路径;日志采集规则在/var/log/file(文件名)中设置
路径 | 注释 |
---|---|
/var/log/messages | ##服务信息日志 |
/var/log/secure | ##系统登陆日志 |
/var/log/cron | ##定时任务日志 |
/var/log/maillog | ##邮件日志 |
/var/log/boot.log | ##系统启动日志 |
日志类型 | 注释 |
---|---|
auth pam | ##产生的日志 |
authpriv | ##ssh,ftp等登陆信息的验证信息 |
cron | ##时间任务相关 |
kern | ##内核 |
lpr | ##打印 |
##邮件 | |
mark | ##(syslog)-rsyslog 服务内部的信息,时间标识 |
news | ##新闻组 |
user | ##用户程序产生的相关信息 |
uucp | ##unix to unix copy,unix主机之间相关的通讯 |
local 1~7 | ##自定义的日志设备 |
注:下表中,级别递增,级别从低到高,记录的信息越来越少,详细的可以查看手册:man 3 syslog;
日志级别 | 注释 |
---|---|
debug | ## 有调试信息的,日志信息最多 |
info | ##一般信息的日志,最常用的 |
notice | ##最具有重要性的普通条件的信息 |
warning | ##警告级别 |
err | ## 错误级别,阻止某个功能或者模块不能正常工作的信息 |
crit | ##严重级别,阻止整个系统或者整个软件不能正常工作的信息 |
alert | ##需要立刻修改的信息 |
emerg | ##内核崩溃等严重信息 |
none | ##什么都不记录 |
***日志管理方式(rsyslog)*:开源软件,被广泛用于Linux系统以TCP/UDP协议转发和接受日志。
(1)主配置文件: /etc/rsyslog.conf(指定日志保存的位置修改配置文件,修改后重启rsyslog服务生效)
(2)修改方式: * . /var/log/westos.log
利用 tail -f 日志文件名 (输出文件的后10行,实时更新)
5.2.1理解
日志的定向采集:将什么类型、什么级别的日志放在哪个路径下。
这样做也有利于日志的管理和查看,因此应该设计采集规则。
5.2.2实验环境的配置
①首先我们将两个虚拟机进行重置;
②重新配置网络;
③用真机的两个图形界面代替两个虚拟机;
可以将虚拟机退出图形化界面的形式;(init 3)
5.2.3 实验-日志的定向采集
注:**实际在企业当中,我们要将日志分类管理,可以参考第三项系统日志管理里面的类型和级别,将 .改为日志类型.日志级别,然后存放在指定的文件当中即可。
步骤 命令 | 注释 |
---|---|
(1) vim /etc/rsyslog.conf | ##打开设定日志采集规则的文件 |
(2) | ##在日志采集文件里面设置将任意类型、任何级别的日志都存放在/var/log/westos下;如果westos文件不存在,会自动生成该文件 命令格式为*.* /var/log/westos |
(3) systemctl restart rsyslog | ##重启日志管理服务 |
(4) cat /var/log/westos | ##查看日志记录的结果 |
5.3.1理解
日志的远程同步:为了查看多台主机日志,方便管理多台主机;
5.3.2实验步骤
步骤 | 命令 | 注释 |
---|---|---|
1. 发送方(server)设置 | ||
①vim /etc/rsyslog.conf | ##打开日志管理文件 | |
②(/etc/rsyslog.conf RULES 下的55行) * .* @172.25.254.219 | ##添加接收方的ip,保存退出(udp) | |
②(/etc/rsyslog.conf RULES 下的55行) * .* @@172.25.254.219 | ##添加接收方的ip,保存退出(tcp) | |
③systemctl restart rsyslog | ##重启日志管理服务 | |
2. 接收方(client)设置 | ||
①vim /etc/rsyslog.conf | ##打开日志管理文件 | |
②udp | (15行) #$ModLoad imudp 改为$ModLoad imudp | ##日志接收模块,udp |
udp | (16行)#$UDPServerRun 514 | ##开启接收模块,保存退出 |
tcp | (19行) #$ModLoad imtcp改为$ModLoad imtcp | ##日志接收模块,tcp |
tcp | (20行)#$TCPServerRun 514 | ##开启接收模块,保存退出 |
③ | systemctl restart rsyslog | ##重启日志管理服务 |
④ | systemctl stop firewalld | ##关闭防火墙 |
systemctl disable firewalld | ## 关闭防火墙 | |
3…测试设置 | ||
①(server) | > /var/log/messages | ##清空日志文件 |
(client) | > /var/log/messages | ##清空日志文件 |
②(server) | logger test | ##产生日志 |
(server) | cat /var/log/messages | ##查看日志已经生成 |
③ (client) | cat /var/log/messages | ##在日志接受方查看远程主机发送过来的同步日志 |
4. 清除 /etc/rc.d/rc.local文件产生的日志 | ||
①(server) | > /etc/rc.d/rc.local | ## 清除 /etc/rc.d/rc.local文件产生的日志 |
(server) | reboot | ##重启发送端; |
②(client) | systemctl restart rsyslog | ## 重启日志管理 |
systemctl stop firewalld | ## 关闭防火墙 | |
systemctl disable firewalld | ## 关闭防火墙 | |
5…重新测试设置 | ||
①(server) | > /var/log/messages | ##清空日志文件 |
(client) | > /var/log/messages | ##清空日志文件 |
②(server) | logger test | ##产生日志 |
(server) | cat /var/log/messages | ##查看日志已经生成 |
③ (client) | cat /var/log/messages | ##在日志接受方查看远程主机发送过来的同步日志 |
5.3.3实验结果
Result1 发送方(server)设置
Result2 接收方(client)设置
Result3 测试设置 ****Result4 清除 /etc/rc.d/rc.local文件产生的日志 ****
Result5 重新测试
5.3.4 系统排错
注意:按照先后顺序进行排错(由简单到困难),案例操作最好按部就班。
错误 | 命令 | 注释 |
---|---|---|
1.网络是否配置正确 | (server) ifconfig eth0 | ## #查看当前网络 |
(server) ping 172.25.254.32 | ##和真机网络区域是否一致 | |
(server) ping 172.25.254.132 | #当前网络是否配置正确 | |
(server) ping 172.25.254.232 | #在server查看desktop是否连通 | |
(desktop) ping 172.25.254.32 | ##和真机网络区域是否一致 | |
(desktop) ping 172.25.254.232 | #当前网络是否配置正确 | |
(desktop) ping 172.25.254.132 | ##在desktopr查看server是否连通 | |
2.网络连接硬件的错误 | ①(真机)virt-manager | ##打开虚拟机管理 |
②( 虚拟机管理)打开对应的虚拟机(server/desktop) | ##在 虚拟机管理中进行操作; | |
③(真机)ifconfig eth0 | ##查看对应的网口(04:0b); | |
④( 虚拟机管理)ifconfig eth0 | ##查看对应的网口(04:0b); | |
⑤( 虚拟机管理)remove 出错的网口 | ##(04:0b); | |
⑥(Add new Virtual Hardware)点击NIC:21d5 | ##添加其他网口; | |
⑦(Add new Virtual Hardware)Network>>>Device model>>>virtl0>>>storge>>finish | ##修改配置并保存 | |
3. 注意客户端关闭防火墙 | systemctl status firewalld | ##查看防火墙状态并关闭 |
systemctl stop firewalld | ## 关闭防火墙 | |
systemctl disable firewalld | ## 关闭防火墙 | |
4. /etc/rsyslog.conf配置文件出错 | netstat -antlupe| grep rsyslogd | ##注意:server的修改,仅仅修改接收方ip;client的修改,仅仅修改udp方式 |
①udp | (server) * .* @ip (client) udp修改去掉注释(15.16行) | |
②tcp | (server) * .* @ip (client) tcp修改去掉注释(19,20行) |
5.4.1理解
日志采集格式:在查看系统日志的时候,每个人的习惯不同,想要看到的内容不同,因此希望可以只看到自己想要的部分。所以我们对日志采集格式也可以有一个设定。
5.4.2注意
(1)默认情况:cat /var/log/messages >>>查看默认的日志格式;(①时间②主机名③日志内容)
(2)修改日志采集格式:
①(其他信息的添加):日志的生成时间、日志发送方的ip地址、日志的服务目标、日志的内容
②排错方法:先看格式有没有写对;其次:a.远程管理的开启;b.远程同步的实现;(a,b排错在前远程同步的排错有说明);
5.4.3 修改日志采集格式的步骤
操作位置 | 命令 | 注释 |
---|---|---|
1.客户端的修改(client.) | ||
(1) | vim /etc/rsyslog.conf | ##打开配置文件 |
(2)(/RULES–46行空白处) | $template WESTOS,“%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n” | ##注意:①WESTOS名字可以换成其他;②(%timegenerated% 显示日志的生成时间)③(%FROMHOST-IP% 显示发送方主机的ip) ④(%syslogtag% 日志记录目标)⑤(%msg% 日志内容 )⑥( \n 换行) |
(3) (/RULES–55行空白处) | . /var/log/messages;WESTOS | ## #在指定的日志中采用WESTOS格式 |
(4)(terminal) | systemctl restart rsyslog | ##重启日志管理服务 |
(5)(客户验证) | cat /var/log/westos | ##客户器端进行验证,已经进行修改 |
(6)(服务验证) | cat /var/log/westos | ##服务器端进行验证,重新配置服务端 |
2.服务端的修改(server) | ||
(1) | vim /etc/rsyslog.conf | ##打开配置文件 |
(2)(29行修改) | $ActionFileDefaultTempLate RSYSLOG_TraditionalFileFormat 改为 #$ActionFileDefaultTempLate RSYSLOG_TraditionalFileFormat | ##对原来的配置进行注释 |
(3)(30行添加) | $ActionFileDefaultTempLate WESTOS | ##添加新的配置 |
(4)(terminal) | systemctl restart rsyslog | ##重启日志管理服务 |
(5)(验证) | cat /var/log/messages | ##服务端进行验证,已经更改 |
5.5.1理解
时间同步:让时间保持一致,一台主机作为时间源,让其他主机去读。为了避免主机时间因为长期运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。
5.5.2实现步骤
操作位置 | 命令 | 注释 |
---|---|---|
1.客户端(发送端)的修改(client.) | ||
(1) | vim /etc/chrony.conf | ##打开配置文件 |
(2)(22行) | allow 172.25.254.0/24 | ##允许那些接收端来同步本机时间 |
(3) (29行) | local stratum 10 | ## 本机不同步任何主机的时间,本机作为时间源 |
(4)(terminal) | systemctl restart chronyd | ##重启同步时间服务 |
2.服务端(接收端)的修改(server) | ||
(1) | vim /etc/chrony.conf | ##打开配置文件 |
(2) | server 172.25.254.219 iburst(删除其他的) | |
##本机立即同步219主机的时间 | ||
(3)(terminal) | systemctl restart rsyslog | ##重启时间同步管理服务 |
(4)(验证) | chronyc sources -v | ##出现^* ip表示成功 |
系统时间:linux系统对bios进行修改,导致windows时间不对,需要设置系统时间;
命令 | 注释 |
---|---|
timedatectl (status) | ##显示当前时间信息①Local time本地时间 ②Universal time国际时间 ③RTC time硬件时间④ Timezone时区 |
timedatectl set-time | ##设定当前时间 |
timedatectl set-timezone | ##设定当前时区 |
timedatectl list-timezones | ## 查看支持的所有时区 |
timedatectl set-local-rtc 0或1 | ##设定是否使用utc时间 |
| timedatectl set-ntp true/false| ##设定ntp是否开启 |
journal查看日志方式:不采集日志,直接从内核存看日志 ,速度更快,reboot 重启系统之后系统之前的日志会被清除。
(1)journal和rsyslog区别:rsyslog采集日志,从磁盘读取,速度慢,reboot 重启系统之后系统之前的日志会被清除;
(2)journal也可以采集日志,专门存放journal采集的日志
步骤如下:
命令 | 命令 | 注释 |
---|---|---|
① | mkdir /var/log/journal | ##在硬盘下创建一个可以存储 journalctl命令采集的日志 的文件 |
② | chgrp systemd-journal /var/log/journal/ | ## 系统初始化程序控制这个日志,改这个文件的所有组为systemd-journal,让组控制文件 |
③ | chmod g+s /var/log/journal/ | ##修改文件权限,使systemd-journal组都能查看这个日志或者2774 |
④ | ls -ld /var/log/journal/ | ##查看文件属性 |
⑤ | ps aux | grep journal |
⑥ | killall -1 /usr/lib/systemd/systemd-journald | ##进程重新加载配置,不会关闭进程 |
⑦ | date | ##查看当前时间 |
⑧ | ls /var/log/journal/ | ##显示机器号 |
⑨ | bootctl | ##重启 |
10 | journalctl | ##(可以看到关机时间之前的日志了 就是可以采集日志) |
Result!
功能 | 命令 | 注释 |
---|---|---|
1.查看 | journalctl -n 5 | ##查看最近5条日志 |
journalctl -p err | ##查看错误日志 | |
journalctl -o verbose | ## 查看日志的详细参数 | |
journalctl --since “ 时间” – until “时间” | ##查看从什么时间开始的到什么时间为止的日志(可以分开使用) |