rsyslog

rsyslog-日志服务器管理

1 系统日志管理

1.1 rsyslog系统日志服务

高性能,出色的安全性和模块化设计。 尽 管rsyslog最初是常规的syslogd,但已发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输入,并将其转换,然后输出到不同的目的地。

RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。 即使在远程的目的地和更精细的处理中,性能通常也被认为是“惊人的”。

网站:https://www.rsyslog.com/

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+日期

posted @ 2021-12-28 18:12  IT运维新秀  阅读(527)  评论(0)    收藏  举报