linux之系统日志管理
- 什么是系统日志
系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。 - 系统日志配置文件
/var/log/messages ##服务信息日志
/var/log/secure ##系统登陆日志
/var/log/cron ##定时任务日志
/var/log/maillog ##邮件日志
/var/log/boot.log ##系统启动日志
- 指定日志采集路径
type.level /var/log/file
日志类型(type)分为:
auth ##pam产生的日志
authpriv ##ssh,ftp等登陆信息的验证信息
cron ##时间任务相关
kern ##内核
lpr ##打印
mail ##邮件
mark(syslog)-rsylog ##服务内部的信息,时间标示
news ##新闻组
user ##用户程序产生的相关信息
local1-7 ##自定义的日志设备
日志级别(level)分为:
debug ##有调式信息的,日志信息最多
info ##一般信息的日志,最常用
notice ##最具有重要性的普通条件的信息
warning ##警告级别
err ##错误级别,组织某个躬耕或者模块不能正常工作的信息
crit ##严重级别,阻止真个系统或者整个软件不能正常工作的信息
alert ##需要立刻修改的信息
emerg ##内核崩溃等严重信息
none ##什么都不记录
- 日志的远程同步
rsyslog:此服务是用来采集系统日志的,自身不产生日志
man 5 rsyslog.conf ##查看同步的方式
“@”表示udp协议发送 “@@”表示tcp协议发送
在日志发送端:
vim /rsyslog.conf ##打开配置文件
在RULES下 找一个空行输入
*.* @172.25.1.2(接收端ip)
systemctl restart rsyslog ##重启rsyslog服务
在日志接收端:
vim /etc/rsyslog.conf ##打开配置文件
/UDP ##高亮显示UDP
15 $Modload imudp ##日志接收模块
16 $UDPServerRun 514 ##开启接受端口
注意:只需删除行首开头的“#” 退出保存即可
systemctl restart rsyslog ##重启服务
systemctl stop firewalld ##关闭防火墙
systemctl disable firewalld ##让防火墙开机不启动
测试:
先在发送端和接受端分别都清空日志文件
> /var/log/messages
在发送端键入
logger test(日志内容)
在接受端查看
cat /var/log/messages
- 设置日志采集格式
在接收端设置:
vim /etc/rsyslog.conf ##打开配置文件
$template LOGFMT(自定义日志名), “%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n“
显示日志时间 显示主机IP 日志记录目标 日志内容 换行
*.* /var/log/westos;LOGFMT ##把新建规则定义到原有westos日志上
cat /var/log/westos ##查看设置效果(注意清空以及restart)
另外一种定义新规则方法:
前面不变
在GLOBAL DIRECTIVES下找个空行输入
$ActionFileDefaultTrmplate WESTOS
- 时间同步服务
chronyd
作用:使发送端和接收端日志时间同步
设置方法:
在接收端即服务端:
vim /etc/chrony.conf ##打开配置文件
22 allow 172.25.9.10/24 ##允许哪个ip地址客户端来同步本纪时间
29 local stratum 10 ##本机不同步任何主机的时间,本机作为时间源
注意:删除#该配置生效
systemctl restart chronyd ##重启
在客户端即发送端:
vim /etc/chrony.conf ##打开配置文件
添加server 172.25.1.2iburst ##本机立即同步2的主机
systemctl restart chronyd ##重启
测试:在客户端随意键入date查看当前时间与服务端时间是否一致,前提是实验前将客户 端时间任意修改。
- timedatectl命令
作用:更改系统时间
timedatectl status ##查看timedatectl服务状态
timedatectl set-time ##设定系统时间
timedatectl set-timezone ##设定系统时区
timedatectl set-local-rtc 0|1 ##设定UTC与LOCAL(可使双系统时区时间保持一致)
在 /etc/adjtime 查看当前状态
timedatectl list-timezones ##查看所有时区
- journalctl命令
作用:系统日志查看工具
journalctl -n 4 ##查看最近4条日志
journalctl -p err ##查看错误日志
journalctl -o verbose ##查看日志的详细参数
journalctl _PID=84 _COMM=systemd-journal ##查看PID为84 命令为systemd-journal的日志
journalctl --since ##查看从什么时间开始的日志
journalctl --until ##查看到什么时间为止的日志
journalctl --since --until ##查看从什么时间开始、到什么时间结束的日志
- systemd-journald命令
作用:保存系统日志
说明:默认systemd-journald是不保存系统日志到硬盘的,关机后在此开机只能看到本次开机之后的日志文件。关机之前的日志的无法查看到的。
设置开机之后可以看到关机前的系统日志文件
方法如下:
mkdir /var/log/journal
chgrp systemd-journald /var/log/journal
chmod g+s /var/log/journal
killall -1 systemd-journald
ls /var/log/journal
显示:94cb0e817ea4ab916183df8c4fc817
bootctl ##重启查看效果
注意:不建议此设置,如果不是需要的话或者磁盘容量大,否则长时间会使磁盘满载导致系统崩溃
END