系统日志管理
1.rsyslog 此服务是用来采集系统日志的,但不产生日志,只是起到采集的作用。
2.rsyslog的管理
/var/log/messages 服务信息日志
/var/log/secure 系统登陆日志
/var/log/cron 定时任务日志
/var/log/maillog 邮件日志
/var/log/boot.log 系统启动日志
3.指定日志采集路径
什么类型的日志,什么级别的日志 /var/log/file 日志采集规则
日志类型分类
auth pam产生的日志
authpriv ssh,ftp等登陆信息的验证息
cron 时间任务相关
kern 内核
lpr 打印
mail 邮件
mark 服务内部的信息,时间标识
mark(syslog)-rsyslog 服务内部的信息,时间标识
news 新闻组
user 用户程序产生的相关信息
uucp unix to unix copy,unix主机之间的相关通讯
crit 严重级别,组织整个系统或者整个软件不能正常工作的信息
alert 需要立刻修改的信息
emerg 内核崩溃等严重信息
none 什么都不记录
注意:从上到下,界别逐渐变高,记录的信息会越来越少(可以通过man 3 syslog来查看其详细作用)
eg:日志的定向采集
目的:
把系统中的所有日志采集到/var/log/cn文件中
操作:
vim /etc/rsyslog.conf
. /var/log/cn
systemctl restart rsyslog
测试:
systemctl restart sshd 此命令是为了生成日志
cat /car/log/westos 此命令是为了查看此文件中出现的日志信息
定向所有类型的所有服务的日志都存放在/var/log/cn中
重启日志服务然后查看/var/log/cn中的日志
日志的远程同步
首先清空本机与远程桌面的日志/etc/rc.h/rc.local,然后重启。
在日志发送方:
vim /etc/var/rsyslog.conf
. @+远程桌面id @表示使用udp协议发送,@@表示tcp协议发送
. @172.25.254.71 设置发送目的ip为172.25.254.71
在日志接受方
vim /etc/rsyslog.conf
15 $ModLoad imudp 日志接受模块
16 $UDPServerRun 514 开启接口端口
去掉配置方14,15行的注释,表示用udp方式接受日志
systemctl restart rsyslog
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 设定火墙开机关闭
测试:
在发送方和接受方都清空日志文件
> /var/log/messages
logger test 在日志的发送方
cat /var/log/messages 查看生成的日志
清空双方之前存的日志,然后关闭接收方的防火墙,在发送方用logger test命令,随后查看双方的日志,发现双方的日志完全相同。
日志采集格式的设定
vim /etc/rsyslog.conf 日志的配置文件
$template LOGFMT "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated% 显示日志时间
%FROMHOST-IP% 显示主机ip
%syslogtag% 日志记录目标
%msg% 日志内容
\n 换行
*.* /var/log/westos;LOGFMT 在指定的日志中采用LOGFMT格式采集
$ActionFileDefaultTmplate LOGFMT 修改系统默认采集日志格式为LOGFMYT
cat /var/log/westos
未修改之前的日志格式
设置日志的采集格式WESTOS,并规定目录/var/log/westos的日志采集格式为WESTOS
修改之后的日志格式,可以看到日志的主机名变为了ip地址(修改日志的配置文件后要重启日志服务)
这只是规定某个目录的日志采集方式为WESTOS,那么怎样让系统的日志采集格式为WESTOS呢?
如下图所示,在配置文件找到改行并修改改行的配置文件如下所示,规定系统日志的默认采集格式为WESTOS类型(可以根据自己的喜好自己定义喜欢的日志格式)
在修改配置文件并重启日志服务后可以看到系统的日志格式都变为了WESTOS类型。
时间同步服务
服务名称
chronyd
服务端:
vim /etc/chrony.conf
22 allow 172.25.254.0/24 允许那些客户端来同步本机时间
29 local stratum 10 本机不同步任何机器的时间,本机为时间源
systemctl restart chronyd
客户端:
vim /etc/chrony.conf
server 172.25.254.200 iburst
systemctl restart chronyd
测试:
客户端:chronyc sources -v
该图为同步后的图
可以看到两个机器的时间基本一致(有延迟)
“?”的地方应该为“*”但是因为有延迟,没有显示出来。
timedatectl命令
timedatectl
timedatectl status 显示当前时间信息
timedatectl set-time 设定当前时间
timedatectl set-timezone 设定当前时区
timedatectl set-local-rtc 0|1 设定是否使用utc时间
timedatectl list-timezones 查看支持的所有时区
timedatectl
timedatectl status 显示当前时间信息
该命令内容与上一个命令内容相同,可以使用上一个命令来显示时间内容。
timedatectl set-time 设定当前时间
设置当前时间为2019年4月16日9点整
timedatectl set-timezone 设定当前时区
设置当前市区为上海
timedatectl set-local-rtc 0|1 设定是否使用utc时间
设置开启使用utc时间(世界统一时间)
可以看到RTC in local TZ一栏由no变为yes
timedatectl list-timezones 查看支持的所有时区
journal
1.
journalctl 日志查看工具
-n 3 查看最近三条日志
-p err 查看错误日志
-o verbose 查看日志的详细参数
--since 查看从什么时间开始的日志
--until 查看到什么时间为止的日志
journalctl 日志查看工具
journalctl -n 3 查看最近三条日志
journalctl -p err 查看错误日志
journalctl -o verbose 查看最新一条日志的详细参数
journalctl --since “2019-04-16 18:45:00” 查看从2019-04-16 18:45:00时间开始的日志
journalctl --until “2019-04-16 18:50:00” 查看到什么时间为止的日志
查看从2019-04-16 18:45:00到2019-04-16 18:50:00的日志。
2.
如何使用systemd-journald保存系统日志
默认systemd-journald是不保存系统日志到硬盘的
那么关机后再次开机只能看到本次开机之后的日志,
上次关机之前的日志是无法查看的
mkdir /var/log/journal 创建保存位置
chgrp systemd-journal /var/log/journal 修改文件夹组
chmod g+s /var/log/journal 修改文件夹权限
killall -1 systemd-journald 重新加载配置
ls /var/log/journal
946cb0e817ea4adb916183df8c4fc817
具体结果如下所示: