1.rsyslog
此服务是用来采集系统日志的,他不产生日志,只是起到采集作用。
systemctl status rsyslog.service ##查看rsyslog服务状态
systemctl stop rsyslog.service ##停止rsyslog服务
systemctl start rsyslog.service ##开启rsyslog服务
> /var/log/messages ##清空/var/log/messages
cat /var/log/messages ##查看/var/log/messages内容
###把系统中所有日志采集到指定文件中###
我们命名该指定文件为/var/log/omega,具体操作如下:
vim /etc/rsyslog.conf ##修改服务配置文件
打开配置文件后在第60行加入以下代码:
*.* /var/log/omega
##(日志类型).(日志级别) ##指定文件
修改完成后保存退出,重启rsyslog服务
systemctl restart rsyslog
重启服务之后,系统中产生的日志就会采集到指定的/var/log/omega中。
这里我们先清空/var/log/omega中的日志信息,再产生一条日志(关闭sshd)进行查看,可以看到在/var/log/omega中有该条日志信息。
###客户主机中的日志发送到服务主机中###
这个操作的目的是为了在服务主机中直接查看客户主机中产生的日志,我们设定主机名为localhost的主机位客户主机,主机名位foundation4的主机为服务主机,然后分别在客户主机和服务主机中对配置文件/etc/rsyslog.conf进行修改。
客户端的操作
1.修改日志配置文件
vim /etc/rsyslog.conf ##修改服务配置文件
2.在第60行增加以下内容:
*.* @172.25.254.4
[注]:@表示该日志会以UDP传输协议发送到接收方也就是服务主机中,172.25.254.4为服务主机的ip
3.保存退出配置文件,重启rsyslog服务。
systemctl restart rsyslog
4.关闭防火墙,这一步是必要的,表示允许发送内容到其他主机
systemctl stop firewalld ##关闭防火墙
systemctl status firewalld ##查看防火墙状态
我们可以看到防火墙的状态为inactive,则表明防火墙已关闭
服务端的操作:
1.修改日志配置文件
vim /etc/rsyslog.conf ##修改服务配置文件
2.取消第15行和第16行的注释
3.保存退出配置文件,重启rsyslog服务。
systemctl restart rsyslog
4.关闭防火墙,此处与客户端的操作一致
测试
首先我们在客户机端生成一条日志(关闭sshd)
,然后在客户机端查看该条日志
如果我们设置成功,则在服务端也可以看到这一条日志生成:
###设定日志采集格式###
我们可以在配置文件中将日志设置为指定的格式,格式模板如下:
%timegenerated% | 显示日志时间 |
---|---|
%FROMHOST-IP% | 显示日志来源ip |
%syslogtag% | 日志记录目标 |
%msg% | 日志内容 |
\n | 日志换行 |
具体操作如下:
1.在配置文件中设定相关参数
vim /etc/rsyslog.conf ##修改服务配置文件
2.在配置文件中的47行,按照模板添加一下參數:
其中WESTOS可以看作對此模板的命名,接著在61行寫入:
*.* /var/log/omega;WESTOS
該行參數规定/var/log/omega目录里采集的日志格式为WESTOS
3.重啓日志服務
systemctl restart rsyslog
4.測試
未修改日志格式,/var/log/omega中采集的日志如下:
修改日志格式后,/var/log/omega中采集的日志如下:
2.journalctl日志查看工具
journalctl ##日志分析命令
journalctl -n 5 ##查看最近生成的5条日志
journalctl -p err ##查看系统报错
journalctl --since --untill ##查看某个时间段生成的日志,时间格式为"XXXX-XX-XX XX:XX:XX"
journalctl -o verbose ##查看日志能够使用的条件参数
用systemd.journald保存系统产生的日志
默认情况下,系统是不会保存使用journalctl查看的日志,默认情况下重启后删除,所以一般只能使用journalctl查看开机之后产生的日志。如果想检测到这样的日志,我们可以进行设置:
1.首先建立一个储存日志的目录
mkdir /var/log/journal
2.改变目录的所属组为systemd.journald,并修改其强制位,使该目录下产生的文件都属于systemd.journald这个组
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal/
3.重新加载服务,查看生成的文件
killall -l /usr/lib/systemd/systemd-journald ##重新加载该服务
ls /var/log/journal/ ##查看重载后生成的文件
date ##确认reboot前的时间
4.测试,如果设置正确,我们reboot之后,可以看到16:18:49之前的日志。
journalctl ##查看日志