一、系统日志
定义:
系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,对于系统的安全性具有极为重要的作用,日志文件所处的位置都在/var/log目录下。
1.系统默认日志的分类
位置 | 说明 |
---|---|
/var/log/messages | 服务信息日志 |
/var/log/secure | 系统登陆日志 |
/var/log/cron | 定时任务日志 |
/var/log/maillog | 邮件日志 |
/var/log/boot.log | 系统启动日志 |
二、日志管理服务
rsyslog ##此服务是用来采集系统日志的,它不产生日志,只是起到采集作用
1.日志采集格式
* . *
= 日志类型.日志级别
日志类型 | 说明 |
---|---|
auth | pam产生的日志 |
authpriv | ssh,ftp等登陆信息的验证信息 |
cron | 时间任务相关 |
kern | 内核产生的日志 |
lpr | 打印产生的日志 |
邮件收发信息 | |
mark(syslog)-rsyslog | 服务内部的信息,时间标识 |
news | 新闻组 |
user | 用户程序产生的相关信息 |
uucp | unix to unix copy,unix主机之间相关的通讯 |
日志级别 | 说明 |
---|---|
debug | 有调式信息的,日志信息最多 |
info | 一般信息的日志,最常用 |
notice | 最具有重要性的普通条件的信息 |
warning | 警告级别 |
err | 错误级别,阻止某个功能或者模块不能正常工作的信息 |
crit | 严重级别,阻止整个系统或者整个软件不能正常工作的信息 |
alert | 需要立刻修改的信息 |
emerg | 内核崩溃等严重信息 |
none | 什么都不记录 |
注意:从上到下,级别从低到高,记录的信息越来越少
连接符号 | 说明 |
---|---|
" . " | 比该等级高包含该等级的日志都记录下来 |
" .= " | 记录所需等级的日志,其它不记录 |
" .! " | 除该等级的日志外,其他的都记录 |
" * " | 所有日志类型,所有等级都记录 |
修改完成后要重启服务systemctl restart rsyslog.service
三、日志的远程同步
操作实例:
客户端:client 172.25.254.173 服务端:server 172.25.254.93
将服务端server产生的日志存储到客户端client
在日志的发送方server:
systemctl stop firewalld
##关闭火墙
vim /etc/rsyslog.conf
##修改文件内容
62 *.* @172.25.254.173
systemctl restart rsyslog
##重启服务
注意:"@“表示udp协议发送,”@@"表示tcp协议发送
在日志的接收方client:
systemctl stop firewalld
##关闭火墙
vim /etc/rsyslog.conf
##修改文件内容
15 $ModLoad imudp ##日志接收模块
16 $UDPServerRun 514 ##开启接收端口
systemctl restart rsyslog
##重启服务
测试:
在发送方和接收方都清空日志文件
> /var/log/messages
在日志的发送方
logger hahahahahahaha
cat /var/log/messages ##查看日志已经生成
在日志的接收方查看
cat /var/log/messages
四、日志采集格式的设定
vim /etc/rsyslog.conf
$template WESTOS, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated% ##显示日志时间
%FROMHOST-IP% ##显示主机ip
%syslogtag% ##日志记录目标
%msg% ##日志内容
\n ##换行
五、日志分析
journalctl ##日志查看工具
journalctl -n 3
##查看最近3条日志
journalctl -p err
##查看错误日志
journalctl -o verbose
##查看日志的详细参数
例子:
journalctl _HOSTNAME=localhost
##查看主机名为localhost所产生的日志
journalctl --since "10:00" ##查看从10:00开始的日志
journalctl --until "11:00" ##查看到11:00为止的日志
journalctl --since "10:00" --until "11:00" ##查看从10:00开始到11:00为止的日志
注意:如果系统reboot则用journalctl查看的日志信息将不存在(因为日志被放在内存中,借助journal才能查看)
关于使用systemd-journald保存系统日志
默认systemd-journald是不保存系统日志到硬盘的;那么关机后再次开机只能看到本此开机之后的日志,上一次关机之前的日志是无法查看的!
操作:
mkdir /var/log/journal
注意:文件名叫journal,自定义名称也可以,但得改配置文件(比较麻烦)。
chgrp systemd-journal /var/log/journal ##改变journal目录的组名
chmod g+s /var/log/journal ##给gournal目录的所有组一个权限
killall -1 systemd-journald ##重新加载配置
ls /var/log/journal
946cb0e817ea4adb916183df8c4fc817 ##机器码
查看
reboot后可以看见之前的日志
注意 :不建议使用 ,操作后会一直把日志储存到journal目录下,会崩溃
谨记 :实验操作后将journal目录删除掉,重新加载。