1.系统日志管理
(1)rsylsog:此服务是用来采集系统日志的,它自己不产生日志,只是起到采集日志的作用
(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 | 打印 |
邮件 | |
mark(syslog)-rsyslog | 服务内部的信息,时间标时 |
news | 新闻组 |
user | 用户程序产生的相关信息 |
uucp | unix, to unix copy, unix 主机之间的相关通讯 |
local | 自定义的日志设备 |
日志级别
debug | 有调试信息的,日志信息最多 |
---|---|
info | 一般信息的日志,最常用的 |
notice | 最具有重要性的普通条件的信息 |
warning | 警告级别 |
err | 错误级别,阻止某个功能或者模块不能正常工作的信息 |
crit | 严重级别,阻止整个系统或者整个软件不能正常工作的信息 |
alert | 需要立刻修改的信息 |
emerg | 内核崩溃等严重信息 |
nonoe | 什么都不记录 |
2.日志的定向采集
将什么类型,什么级别的日志放在哪个路径下,这就叫做日志的定向采集
这样做也有利于日值的管理和查看
步骤一:编辑/etc/rsyslog.conf 文件,在日志采集文件里设置将任意类型任何级别的日志都存放在/var/log/westos1 下,如果westos1不存在,则会自动生成该文件 设置格式: * .* /var/log/westos1
步骤二:重启服务
测试
步骤一:生成日志:systemctl restart sshd
步骤二:查看日志:cat /var/log/westos1
注意: 从上到下,级别从从低到高,记录的信息越来越少
详细的可以查看手册: man 3 syslog
3.日志的远程同步
一台主机管理多台服务器日志的实验:
步骤一:
在日志发送方设置:
(1)在发送方server主机中编辑/etc/rsyslog.conf 文件 :
(2)添加接受方ip
(3) 重启服务 systemctl restart rsyslog ,
步骤二:
在日志的接收方设置:
(1)在接收方desktop 主机中编辑文件 /etc/rsyslog.conf
(2)将这个文件中的第15行和16行的注释去掉
可用该命令在接收方查看UDP服务是否开启:
netstat -antlupe | grep rsyslog
(3) 重启服务:systemctl restart rsyslog
(4)关闭防火墙 :systemctl stop firewalld
步骤三: 测试
(1)在发送方和接收方清空日志文件
命令格式: > /var/log/messages
(2)在日志发送方输入:
logger test #产生日志
cat /var/log/messages ##查看日志
(3)在日志接收方查看远程主机发送过来的日志:
在desktop 主机中输入:cat /var/log/messages
可见日志同步成功
4.日志采集格式的设定
注意:此实验是在远程同步的基础上进行的
一般我们采集的日志格式如下:
cat /var/log/messages
目的:在接收日志方进行日志采集格式的设置,方便查看日志发送方的ip地址,日志的内容,时间等
具体操作步骤:
步骤一: 在接收日志方(client),进行日志采集格式的设置
(1)编辑日志配置文件 vim /etc/rsyslog_conf
(2)在rules (规则下)设置日志采集规则
格式:*.info;mail.none;authpriv.none;cron.none /var/log/messages;WESTOS
(3)在“GLOBAL DIRECTIVES“全局指令下添加:
$template WESTOS, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
显示日志时间 显示主机ip 日志记录目标 日志内容
(4)重启服务: systemctl restart rsyslog.service
在rules (规则下)设置日志采集规则
在“GLOBAL DIRECTIVES“全局指令下添加
步骤二: 在日志接收方查看日志格式
cat /var/log/messages
修改系统默认日志采集格式为WESTOS的步骤
步骤一:继续编辑文件 /etc/rsyslog.conf 文件
(1)将第29行修改为:
(2)在54行,取消之前添加的保存文件格式WESTOS,改为默认(防止之前的实验影响)
(3)重启服务 :systemctl restart rsyslog.service
步骤二: 查看日志格式
cat /var/log/message 或者查看 cat /var/log/secure (但需要别的主机登录此台修改日志格式的电脑)
5.设置系统时间
采用 timedatectl 命令
timedatectl | 管理系统时间 |
---|---|
timedatectl status(可加可不加) | 显示当前时间 |
timedatectl set-time | 设定当前时间 |
timedatectl set-timezone | 设定当前时区 |
timedatectl set-local-rtc 0或者1 | 设定是否使用utc时间 |
timedatectl list-timezones | 查看支持的所有时区 |
(1)timedatectl 管理系统时间
Local time | 本地时间 |
---|---|
Universe time | 国际时间 |
RTC time | 硬件时间 |
Timezone | 时区 |
eg:更改时区
6.时间同步服务
如果日志发送方和接收方的时间不一致会很麻烦,所以需要将客户端域服务端的时间同步
主机时间同步服务名称:chronyd
步骤一:
在服务端编辑文件:vim /etc/chrony.conf
修改:
22行:allow 172.25.81.0/24 #允许哪些主机客户端来同步本机时间
29行:local stratum 10 本机不同步任何主机的时间,本机作为时间源
重启服务:systemctl restart chronyd
步骤二:在客户端:vim /etc/chrony.conf
server 172.25.81.200(服务端ip),iburst(删除起他的) 本机立即同步200主机的时间
systemctl restart chronyd
步骤三:测试
1.在客户端输入:chronyc sources -v
2.出现* ip 就说明好了
步骤四:在客户端和服务端均输入date命令,查看时间是否同步,可看到时间仅差几秒
7.journal 查看日志
rsyslog 采集日志,从磁盘读取,速度慢,reboot重启系统之后,系统之前的日志会被清除
jounral 不采集日志,直接从内核查看日志,速度更快,reboot重启系统之后之前的日志会被清除
(1)journalctl 日志查看工具
journalctl -n 3 | 查看最近3条日志 |
---|---|
journalctl -p err | 查看错误日志 |
journalctl -o verbose | 查看日志的详细参数 |
journactl --since | 查看从什么时间开始的日志 |
journalctl --until | 查看到什么时间为止的日志 |
eg:
journalctl -n 3 ## 查看最近3条日
journalctl --since “2019-10-23 05:0:0” #查看从什么时间开始的日志
journalctl --until “2019-10-23 05:10:00”
2.如何让journctl采集日志
在硬盘创建一个可以存储journalctl 命令采集的日志
如何使用systemd-journal保存系统日志
默认systemd-journald是不保存系统日志到硬盘的,关机后只能看到本次开机之后的日志,关机之前是无法看到的
操作步骤:
(1)mkdir /var/log/journal
在硬盘上创建一个可以存储journalctl 命令采集的日志文件
(2)chgrp systemd-journal /var/log/journal/
系统初始化程序控制这个日志,改这个文件的所有组为systemd-journal
这样系统就可以识别这个文件,把这个文件放入这个组,让组控制这个文件
(3)chmod g+s /var/log/journal
改这个文件的权限,使这个文件的systemd-journal 组都能查看这个日志
(4)ls -ld /var/log/journal #查看文件属性
(5)ps aux | grep journal #查看进程
(6)killall -1 /usr/lib/systemd/systemd-journald (进程重新加载配置,不会关闭进程)
(7)date 查看系统时间
(8)ls /var/log/journal
(9)bootctl 查看机械码
(10)重启
(11)journalctl (可以看到关机之前的日志了,就是采集日志)