Linux大神进阶九:优化系统中的日志管理

文章目录

  • 1.日志的理解
  • 2.系统文件记录信息表
  • 3.系统文件日志类型表
  • 4.系统文件日志级别表
  • 5.系统文件日志管理
    • 5.1理解
    • 5.2日志的定向采集
  • 5.3日志的远程同步
    • 5.4 日志采集格式的理解,用途
    • 5.5时间同步的理解,用途
  • 6.设置系统时间
    • 6.1 理解
    • 6.2常见命令
    • 6.3 结果
  • 7.新的日志采集方式(journal)
    • 7.1理解
    • 7.2注意
    • 7.3常见命令(journalctl)

Linux大神进阶九:优化系统中的日志管理_第1张图片

1.日志的理解

日志:日志里面记录的是服务器的状态;日志的存在可以使管理员提前知道服务器的各种状态,如果服务器出现什么问题可以提前处理。进程和操作系统内核需要能够为发生的事件记录日志,这些日志可用于系统审核和问题的排出,一般永久保存在/var/log目录中。

2.系统文件记录信息表

文件记录信息表内的路径即为日志的采集路径;日志采集规则在/var/log/file(文件名)中设置

路径 注释
/var/log/messages ##服务信息日志
/var/log/secure ##系统登陆日志
/var/log/cron ##定时任务日志
/var/log/maillog ##邮件日志
/var/log/boot.log ##系统启动日志

3.系统文件日志类型表

日志类型 注释
auth pam ##产生的日志
authpriv ##ssh,ftp等登陆信息的验证信息
cron ##时间任务相关
kern ##内核
lpr ##打印
mail ##邮件
mark ##(syslog)-rsyslog 服务内部的信息,时间标识
news ##新闻组
user ##用户程序产生的相关信息
uucp ##unix to unix copy,unix主机之间相关的通讯
local 1~7 ##自定义的日志设备

4.系统文件日志级别表

注:下表中,级别递增,级别从低到高,记录的信息越来越少,详细的可以查看手册:man 3 syslog;

日志级别 注释
debug ## 有调试信息的,日志信息最多
info ##一般信息的日志,最常用的
notice ##最具有重要性的普通条件的信息
warning ##警告级别
err ## 错误级别,阻止某个功能或者模块不能正常工作的信息
crit ##严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert ##需要立刻修改的信息
emerg ##内核崩溃等严重信息
none ##什么都不记录

5.系统文件日志管理

5.1理解

***日志管理方式(rsyslog)*:开源软件,被广泛用于Linux系统以TCP/UDP协议转发和接受日志。
(1)主配置文件: /etc/rsyslog.conf(指定日志保存的位置修改配置文件,修改后重启rsyslog服务生效)
(2)修改方式: * .
/var/log/westos.log

利用 tail -f 日志文件名 (输出文件的后10行,实时更新)

5.2日志的定向采集

5.2.1理解
日志的定向采集:将什么类型、什么级别的日志放在哪个路径下。
这样做也有利于日志的管理和查看,因此应该设计采集规则。
5.2.2实验环境的配置
①首先我们将两个虚拟机进行重置;
②重新配置网络;
③用真机的两个图形界面代替两个虚拟机;
可以将虚拟机退出图形化界面的形式;(init 3)
Linux大神进阶九:优化系统中的日志管理_第2张图片
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.2.4 结果
Linux大神进阶九:优化系统中的日志管理_第3张图片

5.3日志的远程同步

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)设置
Linux大神进阶九:优化系统中的日志管理_第4张图片Result2 接收方(client)设置
Linux大神进阶九:优化系统中的日志管理_第5张图片Result3 测试设置 Linux大神进阶九:优化系统中的日志管理_第6张图片****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行)

2.硬件错误的排错result
Linux大神进阶九:优化系统中的日志管理_第7张图片Linux大神进阶九:优化系统中的日志管理_第8张图片

5.4 日志采集格式的理解,用途

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.4.4 结果
Linux大神进阶九:优化系统中的日志管理_第9张图片

5.5时间同步的理解,用途

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表示成功

*** 5.5.3结果***
Linux大神进阶九:优化系统中的日志管理_第10张图片

6.设置系统时间

6.1 理解

系统时间:linux系统对bios进行修改,导致windows时间不对,需要设置系统时间;

6.2常见命令

命令 注释
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是否开启  |

6.3 结果

Linux大神进阶九:优化系统中的日志管理_第11张图片

7.新的日志采集方式(journal)

7.1理解

journal查看日志方式:不采集日志,直接从内核存看日志 ,速度更快,reboot 重启系统之后系统之前的日志会被清除。

7.2注意

(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!

Linux大神进阶九:优化系统中的日志管理_第12张图片

7.3常见命令(journalctl)

功能 命令 注释
1.查看 journalctl -n 5 ##查看最近5条日志
journalctl -p err ##查看错误日志
journalctl -o verbose ## 查看日志的详细参数
journalctl --since “ 时间” – until “时间” ##查看从什么时间开始的到什么时间为止的日志(可以分开使用)

Result!
Linux大神进阶九:优化系统中的日志管理_第13张图片

你可能感兴趣的:(1.1,Linux大神进阶(基础篇))