简介
rsyslog提供高性能、强大的安全特性模块化设计
日志级别
none:不记录任何信息
emerg(0):系统不可用
alert(1):特别留意的报警信息
crit(2):非常严重的状况
err(3):错误信息
warning(4):警告信息
notice(5):稍微要注意的信息
info(6):正常信息
debug(7):调试信息
相关符号
.:分割服务和日志级别
*:任何服务或任何级别
=:等于某一日志级别,若没有等号则表示大于等于某一日志级别
!:取反(例:cron.!err=>4567 cron.!=info=>0123457)
;:分割不同服务.级别的组合
,:分割不同服务
-:异步写入日志
前期准备
准备Centos7虚拟机,配置IP地址和hostname,同步系统时间,关闭防火墙和selinux
部署rsyslog服务
[root@localhost ~]# yum install rsyslog -y
#启动服务
[root@localhost ~]# systemctl start rsyslog.service
部署vsftpd服务
[root@localhost ~]# yum install vsftpd -y
配置rsyslog服务
配置ssh服务
[root@localhost ~]# vi /etc/ssh/sshd_config
#指定rsyslog管理日志的设备载体为local1
SyslogFacility local1
#重启服务
[root@localhost ~]# systemctl restart sshd
配置vsftpd服务
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
#设置把日志交给rsyslog服务管理,载体设备为ftp
syslog_enable=YES
#重启服务
[root@localhost ~]# systemctl restart vsftpd
修改rsyslog配置文件
[root@localhost ~]# vi /etc/rsyslog.conf
# 添加设置不记录SSH服务的日志到系统日志中
*.info;mail.none;authpriv.none;cron.none;local1.none /var/log/messages
# 添加设置不记录SSH服务的日志到原本的日志中
authpriv.*;local1.none /var/log/secure
#设置把FTP服务的所有级别日志通过ftp载体设备保存到文件夹中
ftp.* /var/log/ftp.log
#设置SSH服务的所有级别日志通过local1载体设备保存到本地文件夹中
#grep Facility /etc/ssh/sshd_config
local1.* /var/log/ssh.log
重启服务
[root@localhost ~]# systemctl restart rsyslog.service
测试验证
手动写入日志
#写入ssh日志
[root@localhost ~]# logger -it "test sshlog" -p local1.info "Testing ssh log info"
#写入vsftpd日志
[root@localhost ~]# logger -it "test vsftpd log" -p ftp.info "Testing vsftpd log info"
#-t指定标记记录
#-p输入消息的优先级,优先级可以是数字或者指定为"facility.level"格式
# -i逐行记录每一次logger的进程ID
查看ssh日志
[root@localhost ~]# tail -n1 /var/log/ssh
Jul 23 20:12:50 master journal[9853]: test ssh log[9853]: Testing ssh log info
查看vsftpd服务日志
[root@localhost ~]# tail -n 1 /var/log/ftp.log
Jul 23 20:15:21 master journal[9894]: test vsftpd log[9894]: Testing vsftpd log info
接下来可以通过logrotate日志轮转服务进行日志的进一步管理
logrotate日志轮转服务部署可参考:https://blog.51cto.com/14832653/2512113