系统日志管理
1.rsyslog
采集系统生成的日志,不生成日志,只起采集作用
2.rsyslog的管理
/var/log/messages | 服务信息日志 |
---|---|
/var/log/secure | 系统登陆日志 |
/var/log/cron | 定时人物日志 |
/var/log/maillog | 邮件日志 |
/var/log/boot.log | 系统启动日志 |
指定日志采集路径
类型.级别 在#文件里 ######日志采集规则
日志类型分为
auth | pam产生的日志 |
---|---|
authpriv | ssh,ftp等登陆信息的验证信息 |
corn | 时间任务相关 |
kern | 内核 |
lpr | 打印 |
邮件 | |
mark (syslog)-rsyslog | 服务内部的信息,时间标识 |
news | 新闻组 |
user | 用户程序产生的相关信息 |
uncp | unix to unix copy,unix主机之间的相关通讯 |
local 1-7 | 自定义的日志设备 |
日志级别分为
debug | 有调试信息的,日志信息最多 |
---|---|
info | 一般信息的日志,最常用 |
notice | 最具有重要性的普通条件的信息 |
warning | 警告级别 |
err | 错误级别,阻止某个功能或模块不能正常工作的信息 |
crit | 严重级别,阻止整个系统或者整个软件不能正常工作的信息 |
alert | 需要立刻修改的信息 |
emerg | 内核崩溃等严重信息 |
none | 什么都不记录 |
注:从上到下界别从低到高,记录的信息越来越少
详细的可以查看手册 man 3 syslog
3.日志的远程同步
<1>在日志发送方:
vim /etc/rsyslog.conf
写入 * .* @172.25.254.227
####"@"表示udp协议发送,“@@”表示tcp协议发送
退出保存后重启日志服务
systemctl restart rsyslog
<2>在日志的接收方:
vim /etc/rsyslog.conf
$ModLoad imudp ##日志接收模块
$UDPServerRun 514 ## 开启接收端口
保存退出后重启服务
systemctl restart rsyslog
systemctl stop firewalld ##关闭防火墙
systemctl disable firewalld ## 设定防火墙开机关闭
<3>测试:在日志发送方和接收方都清空日志文件
> /var/log/messages
在日志发送方执行 logger test
cat /var/log/messages 查看日志已经生成
在日志接收方查看
cat /var/log/messages 日志已经接收到
在这里插入图片描述
注:系统会提示报错/etc/rc.d/rc.local文件的第18行有错误
为了方便显示可以把rm -fr /etc/rc.d/rc.local这个文件删除,然后reboot重启,
重启后再次查看没有报错
注:收发两方的协议必须相同
4.日志采集格式设定
注:格式名称必须是大写, “参数”参数两边都有%
参数写在什么位置生成的日志对应参数就在相应的位置
不加换行不会自动换行
参数中间加的分隔符会显示到日志中
出现invalid property name报错是参数写错
在使用该格式的日志文件后加;和格式名称
如果是给别的主机发送就在接收方的/etc/rsyslog.conf下设置同样的格式即可,
否则发送的会以接收方的格式显示
即在哪查看以哪的标准显示
<1>vim /etc/rsyslog.conf
在规则下写
$template 格式名称, “%FROMHOST-IP%分隔符%timegenersted% %syslogtag% %msg%\n”
参数 | 作用 |
---|---|
%FROMHOST-IP% | 显示主机ip |
%timegenersted% | 显示日志时间 |
%syslogtag% | 日志记录目标 |
%msg% | 日志内容 |
\n | 换行 |
在采集的日志文件后写;和格式名称
<2>systemctl restart rsyslog.service重启服务
<3>清空日志文件,logger happy发送文件
<4>查看日志文件
<5>接收端查看日志文件,文件的格式没有改变,这是因为刚刚时在发送端做的设置,对接收端没有影响
<6>在接收端重复1-4步的设置
<7>发送方重新发送,接收方再次查看,这次接收方收到的日志文件格式与发送方一致,因为两者做了同样的设定
5.时间同步
服务名称 chronyd
先设定一个时间源,这个时间会共享出来
服务端
<1> 服务端vim /etc/chrony.conf
22行 把时间共享出去,allow 172.25.154/24 只要前三个数字相同就可以访问
29行 local stratum 10 表示时间源的级别,本机不同步任何主机的时间,本机作为时间源
<2>保存退出后重启服务
systemctl restart chronyd.service
<3>服务端关闭防火墙,防火墙不允许别的主机访问或向本机发送数据包
访问的客户端
<1>vim /etc/chrony.conf
删掉原有的网址,设置一个
server 172.25.254.227 (服务端ip) iburst
访问端 只保留一行 server 后的是ip地址,iburst是指让更改立即生效
客户端测试:
<1>为了区别时间可以在客户端设置一个别的时间
date 12121213
<2>在未重启服务之前
chronyc sources -v查看当前的设置
<2>设置后退出保存,重启服务
systemctl restart chronyd.service
<3>重启服务后再次date查看时间
<4>再次chronyc sources -v查看当前的设置
<5>在服务端date查看时间与客户端对比
6.timedatectl命令
作用 管理系统时间
timedatectl status 显示当前时间信息
timedatectl set-time 设定当前时间
timedatectl set-timezone 设定时区
timedatectl set-local-rtc 0|1设定是否使用utc时间
例:
<1>vim /etc/adjtime 查看当前采用的是否为utc时间
<2>timedatectl set-local-rtc 1 设定为采用本地时间
<3>再次vim /etc/adjtime 查看文件采用的是本地时间
timedatectl list-timezone 查看所有可用的时区
7.journalctl
(1)日志查看工具
跟之前的是相互独立的没有任何关系
journalctl -n 3 ## 查看最近3条日志
journalctl -p err ##查看错误日志
journalctl -o verbose ##查看日志的详细参数
进入后输入进程id可以查看与该进程有关的日志的详细信息
journalctl --since "时间点" ## 查看从什么是金开始的日志
since和""之间必须要有空格,否则系统会报错
journalctl --until "时间点" 查看到什么时间为止的日志
两者搭配使用
journalctl --since "时间点1" --until “时间点2”
查看从时间点1到时间点2为止的所有日志
注意:1.时间点1必须在时间点2之前,否则系统会报错
2.进入查看状态后按q退出
journalctl _HOSTNAME=localhost
查看主机名为localhost的主机的日志
(2)使用system-journald 保存系统日志
默认systemd-journald是不保存系统日志到硬盘的
那么关机后再次开机只能看到本次开机之后的日志
上次关机之前的日志是无法查看的
<1> 建立一个日志文件
mkdir /var/log/journal
改变日志文件的所有组,给文件特殊权限
[root@client_ssh ~]# chgrp systemd-journal /var/log/journal
[root@client_ssh ~]# chmod g+s /var/log/journal
ls -ld /var/log/journal 查看该文件的属性
drwxr-sr-x 2 root systemd-journal 6 Jan 15 13:36 /var/log/journal
<2>更新
[root@client_ssh ~]# killall -1 systemd-journald
<3>查看目录的内容
[root@client_ssh ~]# ls /var/log/journal
946cb0e817ea4adb916183df8c4fc817
################ 5555 ################
[root@client_ssh ~]# bootctl
System:
Machine ID: 946cb0e817ea4adb916183df8c4fc817
Boot ID: 1fc75817b3b74b849385b1eb77a1bcdb
No suitable data is provided by the boot manager. See:
http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface
http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
for details.
文件中的内容是当前机器的机器id
<4>重启虚拟机
[root@client_ssh ~]# reboot
<5>重启后查看历史记录
[root@client_ssh ~]# stat /var/log/journal/946cb0e817ea4adb916183df8c4fc817
File: ‘/var/log/journal/946cb0e817ea4adb916183df8c4fc817’
Size: 49 Blocks: 0 IO Block: 4096 directory
Device: fd01h/64769d Inode: 20204469 Links: 2
Access: (2755/drwxr-sr-x) Uid: ( 0/ root) Gid: ( 190/systemd-journal)
Access: 2019-01-15 13:47:34.056488818 +0800
Modify: 2019-01-15 05:47:47.517858942 +0800
Change: 2019-01-15 05:47:47.517858942 +0800
Birth: -