rsyslog
rsyslog-日志服务器管理
1 系统日志管理
1.1 rsyslog系统日志服务
高性能,出色的安全性和模块化设计。 尽 管rsyslog最初是常规的syslogd,但已发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输入,并将其转换,然后输出到不同的目的地。
RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。 即使在远程的目的地和更精细的处理中,性能通常也被认为是“惊人的”。
rsyslog 特性
● 多线程
● UDP, TCP, SSL, TLS, RELP
● MySQL, PGSQL, Oracle实现日志存储
● 强大的过滤器,可实现过滤记录日志信息中任意部分
● 自定义输出格式
● 适用于企业级中继链
1.2 rsyslog管理
1.2.1 系统日志术语
facility:日志分类
auth:验证
authpriv:验证和权限
cron:计划任务
daemon:守护进程
ftp:ftp服务
kern:内核
lpr:打印
mail:邮件
news:新闻
security(auth):安全
user:用户账号
uucp:uucp
syslog:系统日志
#自定义的分类
local0~~local7
Priority 优先级别,从低到高排序
emerg:崩溃级别
alert:
crit
err:报错
warn:报警
notice:
info:关键
debug:最详细的
1.2.2 rsyslog 相关文件
1.2.3 rsyslog配置文件
/etc/rsyslog.conf配置文件格式:由三部分组成
MODULES:相关模块配置
GLOBAL DIRECTIVES:全局配置
RULES:日志记录相关的规则配置
RULE配置格式
facility.priority; target
facility格式
* #所有的facility
facility1,facility2,facility3,... #指定的facility列表
priority格式:
*: 所有级别
none:排除,没有级别,即不记录,
PRIORITY:指定级别(含)以上的所有级别
=PRIORITY:仅记录指定级别的日志信息
-:异步写入,先写入缓冲区,稍后再根据系统调度策略,写入磁盘文件中,可能会造成数据丢失问题
*.emerg :omusrmsg:* 出现此级别的根据给本机登录用户群发严重的报警信息
news.crit news出现crit级别的报警信息
@host 将日志送往指定的远程udp日志服务器
@@host 将日志发送指定的远程tcp日志服务器
target格式
文件路径:通常在/var/log/,文件路径前的-表示异步写入
用户:将日志事件通知给指定的用户,* 表示登录的所有用户
日志服务器:@host,把日志送往至指定的远程UDP日志服务器 @@host 将日志发送到远程TCP日志服务器
管道: | COMMAND,转发给其它命令处理
通用的日志文件格式
事件产生的日期时间 主机 进程(pid):事件内容
Dec 28 17:11:52 centos7 systemd: Started Session 3 of user root.
范例:将ssh服务的日志记录至自定义的local的日志设备
#修改sshd服务的配置
Vim /etc/ssh/sshd_config
SyslogFacility local2
Service sshd reload
#修改rsyslog的配置
Vim /etc/rsyslog.conf
Local2.* /var/log/sshd.log
Systemctl restart rsyslog
#测试
Ssh登录后,查看/var/log/sshd.log有记录
#logger测试
logger -p local2.info "hello sshd"
tail /var/log/sshd.log有记录
[root@rocky8 ~]#tail -f /var/log/sshd.log
Dec 28 16:11:29 rocky8 root[2823]: hello sshd
1.2.4 网络日志服务
#centos8/rocky8开启网络日志服务
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")
#centos7/6开启网络日志服务
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

#rsyslog-server
[root@rocky8 ~]#vim /etc/rsyslog.conf
# Provides UDP syslog reception
# for parameters see http://www.rsyslog.com/doc/imudp.html
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
# Provides TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.html
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")
[root@rocky8 ~]#systemctl restart rsyslog
[root@rocky8 ~]#ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 25 0.0.0.0:514 0.0.0.0:*
LISTEN 0 25 [::]:514 [::]:*
#rsyslog-client
[root@centos7 ~]#vim /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
*.info;mail.none;authpriv.none;cron.none @10.0.0.9:514
*.info;mail.none;authpriv.none;cron.none @@10.0.0.9:514
[root@centos7 ~]#systemctl restart rsyslog
[root@centos7 ~]#ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 25 0.0.0.0:514 0.0.0.0:*
LISTEN 0 25 [::]:514 [::]:*
测试
[root@rocky8 ~]#tail -f /var/log/messages
Dec 28 17:21:18 centos7 root: hello
Dec 28 17:21:18 centos7 root: hello
[root@centos7 ~]#logger -p 1.info 'hello'
1.2.5 常见日志文件
● /var/log/secure:系统安全日志,文本格式,应周期性分析
●/var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看
●/var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
●/var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
●/var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录专用命令dmesg查看,可持续记录硬件变化的情况
●/var/log/boot.log 系统服务启动的相关信息,文本格式
●/var/log/messages :系统中大部分的信息
●/var/log/anaconda : anaconda的日志
2 ogrotate日志转储
2.1 logrotate 介绍
logrotate 程序是一个日志文件管理工具
把旧的日志文件删除,并创建新的日志文件,称为日志转储或滚动。
根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行
2.2 logrotate配置
● 计划任务:/etc/cron.daily/logrotate
进行转储,不成功则用“警报以异常方式退出”信息提示
● 程序文件:/usr/sbin/logrotate
● 配置文件: /etc/logrotate.conf
● 日志文件:/var/lib/logrotate/logrotate.status


2.3 logrotate 配置范例
1.手动执行日志转储
logrotate /etc/logrotate.d/file
2.自动执行日志转储
logrotate /etc/logrotate.conf
注意:
手动转储格式:file + 编号
自动转储格式:file+日期

浙公网安备 33010602011771号