系统日志管理
1.rsyslog
此服务是用来采集系统日志的,不生产日志,只是起到采集作用
2.rsyslog的管理
目录 | 日志 |
/var/log/messages | 服务信息日志 |
/var/log/secure | 系统登陆日志 |
/var/log/cron | 定时任务日志 |
/var/log/maillog | 邮件日志 |
/var/log/boot.log | 系统启动日志 |
指定日志采集路径
vim /etc/rsyslog.conf
此文件内容如下图
格式:
什么类型的日志.什么级别的日志 /var/log/file
日志类型 | 注释 |
auth | pam产生的日志 |
authpriv | ssh,ftp等登陆信息的验证信息 |
cron | 时间任务相关 |
kern | 内核 |
lpr | 打印 |
mail | 邮件 |
mark(syslog)-rsyslog | 服务内部的信息,时间标识 |
news | 新闻组 |
user | 用户程序产生的相关信息 |
uucp | unix to unix copy,unix主机之间的通讯 |
local1~7 | 自定义的日志设备 |
日志级别 | 注释 |
debug | 有调试信息的,日志信息最多 |
info | 一般信息的日志,最常用 |
notice | 具有重要性的普通条件的信息 |
warning | 警告级别 |
err | 错误级别,阻止某个功能或者模块不能正常工作的信息 |
crit | 严重级别,阻止整个系统或者整个软件不能正常工作的信息 |
alert | 需要立刻修改的信息 |
emerg | 内核崩溃等严重信息 |
none | 什么都不记录 |
注意:
从上到下,级别从低到高,记录的信息越来越少
详细的可以查手册:man 3 syslog
3.日志的远程同步
在日志发送方:
vim /etc/rsyslog.conf
*.* @172.25.254.... ("@"表示udp协议,"@@"表示tcp协议)
systemctl restart rsyslog
systemctl stop firewalld ##关闭防火墙
在日志的接收方
vim /etc/rsyslog.conf
15 $Modload imudp ##日志接收模块
16 $UDPserverRun 514 ##开启接收端口
systemctl restart rsyslog
systemctl stop firewalld ##关闭防火墙
(删掉15,16行的注释号)
测试:
在发送方和接收方都清空日志文件> /var/log/messages
在日志的发送方logger test
cat /var/log/messages
查看日志已经生成
在日志的接收方查看cat /var/log/messages
如图下所示,则日志传输成功
4.日志采集格式的设定
打开配置文件vim /etc/rsyslog.conf
在文件中写入:
$template LOGFMT, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
写入内容 | 注释 |
%timegenerated% | 显示日志时间 |
%FROMHOST-IP% | 显示主机ip |
%syslogtag% | 日志记录目标 |
%msg% | 日志内容 |
\n | 换行 |
*.* /var/log/westos;LOGFMT
^
在此处添加和上面一样的名称
然后使用cat /var/log/westos
命令查看日志内容
例如:
让日志只显示时间和ip,并且中间用 “|” 隔开
时配置文件生效并且清空日志文件
查看日志文件,内容为时间和ip,并且中间也是用 “|”分隔
5.时间同步服务
服务名称chronyd
在服务端
vim /etc/chrony.conf
对文件的第22行以及29行进行更改,22行为允许的ip,29行为优先度
使更改生效
在客户端
vim /etc/chrony.conf
在第3行写入服务端的ip,后面加iburst是立即生效的意思
使更改生效
在客户端输入chronyc sources -v
进行查看,下放出现服务端ip,时间同步成功
6.timedatectl命令
命令timedatectl
管理系统时间
参数 | 注释 |
status | 显示当前时间信息 |
set-time | 设定当前时间 |
set-timezone | 设定当前时区 |
set-local-rtc 0/1 | 设定是否支持utc时间, 0为使用,1为不使用 |
list-timezone | 查看支持的所有时区 |
7.journal
1)
命令journalctl
日志查看工具
参数 | 注释 |
-n 3 | 查看最近3条日志 |
-p err | 查看错误日志 |
-o vervosr | 查看日志的详细参数 |
- -since | 查看从什么时间开始的日志 |
- -until | 查看到什么时间为止的日志 |
查看最近3条日志
查看错误日志
查看日志的详细参数
查看主机名为localhost,pid为87的日志
2)
如何使用systemctl-journald保存系统日志
因为系统的日志是不保存的硬盘的,那么关机后再次开机只能看到本次开机之后的日志,上次关机前的日志是无法查看到的
mkidr /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
killall -1 systemd-journal
ls /var/log/journal
设置完毕后重启电脑即可设置成功
注意:日志记录文件会不断增大,所以实验完毕后记得删除该文件