Linux之系统日志管理

一.系统日志管理

1.rsyslog服务

此服务是用来采集系统日志的,不产生日志,只起采集作用。
配置文件为:/etc/rsyslog.conf
这里写图片描述
这里写图片描述

2.rsyslog的分类

/var/log/messages 服务信息日志(报错等)
这里写图片描述
这里写图片描述
/var/log/secure 系统登录日志
这里写图片描述
这里写图片描述

/var/log/cron 系统定时任务日志
这里写图片描述
这里写图片描述

/var/log/maillog 系统邮件日志
这里写图片描述
这里写图片描述
/var/log/boot.log 系统启动信息日志
这里写图片描述

3.指定日志采集路径

日志类型 日志级别 /var/log/file

5.日志类型分为:

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

6.日志级别分为:

debug 有调试信息的,日志信息最多
info 一般信息的日志,最常用
notice 最具有重要性的普通条件的信息
warning 警告级别
err 错误级别,组织某个功能或者模块不能正常工作的信息
crit 严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert 需要立即修改的信息

emerg 内核崩溃等严重信息
none 什么都不记录
注意:从上到下,级别从低到高,记录的信息越来越少
详细的可以查看手册:man 3 syslog

二.日志的远程同步

此实验需要两台虚拟机,一台为日志发送方(client),一台为日志接收方(server)。

1.在日志发送方:

vim /etc/rsyslog.conf添加
* .* @172.25.56.251 (172.25.56.251为日志接收端的主机ip)
这里写图片描述
这里写图片描述
@表示UDP协议发送,@@表示TCP协议发送
重启服务:systemctl restart rsyslog.service
这里写图片描述

2.在日志接收方:

vim /etc/rsyslog.conf后更改:
15行: ModLoad imudp 日志接收模块
16行: $ UDPServerRun 514 开启接收端口
这里写图片描述
重启服务以及关闭防火墙:
systemctl restart rsyslog.service
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 设定防火墙开机不启动
这里写图片描述

3.测试:

首先在发送方和接收方清空日志文件,
> /var/log/messages

在日志发送方 logger test 并查看日志是否在发送端生成.
这里写图片描述
在日志接收方查看 cat /var/log/messages或者使用tail -f /var/log/messages查看

5.日志采集格式的设定

当需要查看日志的具体信息,如时间,ip等,需要设置日志采集格式。
vim /etc/rsyslog.conf
$template LOGFMT, “timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n“
这里写图片描述

%temgenerated% //显示日志时间
%FROMHOST-IP% //显示主机ip
%syslogtag% //日志记录目标
%msg% //日志内容
\n //换行
cat /var/log/westos 查看日志是否按指定格式显示

三.时间同步服务

服务名称 chronyd

1.在服务端:

vim /etc/chrony.conf 后
22行:allow 172.25.56.0/24
29行:local stratum 10
这里写图片描述
重启服务:systemctl restart chrond.service

2.在客户端:

vim /etc/chrony.conf后输入:server 172.25.56.251 iburst(172.25.56.251为服务端的主机ip)
这里写图片描述
重启服务:systemctl restart chrond.service

3.测试:

在客户端输入chrony source -v命令看是否连接到了客户端,如下图所示:
这里写图片描述

再查看服务端与客户端的时间是否同步,如下图:
这里写图片描述

这里写图片描述

四.timedatectl命令

这里写图片描述
timedatectl status 显示当前时间信息(status可加可不加)
timedatectl set-time 设定当前时间
这里写图片描述
timedatectl set-timezone 设定当前时区
timedatectl set-local-rtc 设置是否使用utc时间
timedatectl list-timezone 查看支持的所有时区
cat /etc/adjtime 查看是否使用了utc时间

五.journalctl命令

journalctl 日志查看工具,直接执行,浏览系统日志
这里写图片描述
journalctl -n 3 查看最近3条日志
journalctl -p err 查看错误日志
这里写图片描述
journalctl -f 监控日志
journalctl –since 查看从什么时间开始的日志
journalctl –until 查看到什么时间为止的日志
举例:journalctl –since “2018-8-19 11:00” –until “2018-8-19 13:00“
journalctl -o verbose 显示日志能够使用的详细进程参数