1.rsyslog在系统中的作用
1.系统日志的作用:记录系统中重要的事件,且日志是由程序本身产生的,日志可用于系统审核与故障排除。
2.日志的存放位置
一般系统中的日志存放在/var/log/目录底下,具体如下:
日志位置 | 功能 |
/var/log/messages | 大部分文件都存放在此处 |
/var/log/secure | 存放用户的认证信息 |
/var/log/maillog | 存放与邮件服务器相关的部分文件 |
/var/log/cron | 存放与定时任务相关的文件 |
/var/log/boot.log | 存放与系统启动有关的日志文件 |
3.rsyslog服务
1)rsyslog服务不生成日志,只是日志的搬运工.在关闭rsyslog服务时,存储日志的文件会不记录rsyslog关闭时发生的命令,但当重新打开rsyslog服务时,会记录之前关闭期间的命令。
2)rsyslog服务的采集规则
rsyslog服务采集的日志都存放于/var/log底下的诸多对应目录中,日志的类型与级别可以分为下表所示,
日志类型 | 解释 |
auth | pam产生的日志 |
authpriv | ssh,ftp等登陆信息的验证信息 |
cron | 时间任务相关的日志 |
kern | 内核 |
lpr | 打印 |
mail | 与邮件相关的日志 |
mark(syslog)-rsyslog | 服务内部的信息,时间标识 |
news | 新闻组 |
user | 用户程序产生的相关信息 |
uucp | unix主机之间相关的通讯的日志 |
local 1~7 | 自定义的日志设备 |
* | 代表所有类型 |
日志级别 | 解释 |
debug | 有调试信息的,日志信息最多 |
info | 一般信息的日志,是最常用的 |
notice | 最具有重要性的普通条件的信息 |
warming | 警告级别 |
err | 错误级别,阻止某一个模块不能正常工作的信息 |
crit | 严重级别,阻止整个系统不能正常运作的信息 |
alert | 需要立刻修改的信息 |
emerg | 内核崩溃等严重信息 |
none | 什么都不作记录 |
* | 代表所有级别 |
若想更改不同类型的日志存放的位置时,可以在/etc/rsyslog.conf文件中,更改其存放位置,格式如下:
4.日志的远程同步
在日常的系统维护中,为了方便管理者管理每一台主机,依次查看每一台主机的日志显得不太现实,因此采用远程日志同步的方法,在进行远程日志同步时,要在日志的发送方和接受方分别进行操作设定。
1)在日志的发送方
在/etc/rsyslog.conf的配置文件下添加内容如下:
*.* @目标主机的IP
【注意】若采用TCP协议传送,使用两个@@加IP,在日志传送时,通常使用UDP协议进行传送,则使用一个@加IP,在更改配置文件后要重启rsyslog服务。
2)在日志的接收方
在接收方,同样在/etc/rsyslog.conf配置文件下的15,16行打开UDP服务,
【注意】15行含义:加载UDP的插件。16行含义:打开UDP协议所用到的接口。同样重启rsyslog服务。
在发送方和接收方更改配置文件之后,要关闭火墙。
5.自定义日志采集格式
要想设定日志采集的格式,同样在/etc/rsyslog.conf的配置文件下,修改:
$template +自定义格式名,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
上述格式中:
指令 | 功能介绍 |
%timegenerated% | 日志记录的时间戳 |
%FROMHOST-IP% | 显示主机的IP |
%syslogtag% | 日志记录的目标 |
%msg% | 日志记录的内容 |
上述的4个指令,可以随意调动顺序。
【在指定的日志中采用WESTOS的自定义格式】
【修改系统默认日志的采集格式为WESTOS】
6.系统时间的修改工具timedatectl
对系统的时间进行修改时,所用到的指令为timedatectl:
指令 | 功能介绍 |
timedatectl | 显示当前时间信息 |
timedatectl set-time | 设置当前时间 |
timedatectl list-timezones | 查看所有时区 |
timedatectl set-timezone | 设置当前所在的时区 |
timedatectl set-local-rtc 0/1 | 设置是否使用utc时间,0表示使用,1表示不使用 |
timedatectl set-ntp true/false | 设置是否同步别人的时间 |
7.同步时间
在日志记录的过程中,为了保证发送端和接收端的日志时间一致,因此会考虑同步时间,
1)发送端:在/etc/chrony.conf文件下,操作如下,更改配置文件后,重启chronyd.service服务,要关闭火墙,
2)接收端:同样在/etc/chrony.conf的配置文件内,更改如下:
3)检验:chronyc sources -v
8.journalctl命令的使用
1)journalctl也可用来查看记录的日志,但与rsyslog不同的是,rsyslog会将日志记录在硬盘中,但journalctl只是暂时保存,当系统断时,journalctl记录的日志会消失。
指令 | 解释 |
journalctl | 日志查看工具 |
journalctl -n | 查看最近的10条日志 |
journalctl -n +number | 查看最近的number条日志 |
journalctl -p err | 查看记录的错误日志 |
journalctl --since | 查看自什么时候开始的日志 |
journalctl --until | 查看到什么时候结束的日志 |
journalctl -o verbose | 查看日志的详细参数 |
2)利用systemd-journald采集保存日志
与rsyslog不同的是,journalctl不会将日志记录在硬盘中,因此系统断电后日志会消失,因此建立日志采集的位置,即可保存日志。
mkdir /var/log/journal ###建立日志采集路径
chgrp systemd-journal /var/log/journal ###设定日志的组
chmod 2755 /var/log/journal ###将日志的权限加到组内所有成员
killall -1 systemd-journald ###后台刷新该服务
ls /var/log/journal/ ###会产生一个进程码