通过rsyslog logrotafe 分别实现远程日志备份及日志转储功能
facility:设施,从功能或程序上对日志进行归类
auth, authpriv, cron, daemon,ftp,kern, lpr, mail, news, security(auth),user, uucp, syslog
#自定义的分类
local0-local7
Priority 优先级别,从低到高排序
debug, info, notice, warn(warning), err(error), crit(critical), alert,emerg(panic)
rsyslog 相关文件
程序包:rsyslog
主程序:/usr/sbin/rsyslogd
CentOS 6:/etc/rc.d/init.d/rsyslog {start|stop|restart|status}
CentOS 7,8:/usr/lib/systemd/system/rsyslog.service
配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
库文件: /lib64/rsyslog/*.so
rsyslog配置文件
/etc/rsyslog.conf 配置文件格式:由三部分组成
MODULES:相关模块配置
GLOBAL DIRECTIVES:全局配置
RULES:日志记录相关的规则配置
常见日志文件
/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的日志
实验环境:
Centos 8 10.0.0.10 生产日志的主机
Ubuntu18.04 10.0.0.200 备份日志的远程主机
1.打开rsyslog的配置文件,取消注释开启514监听端口接收日志,选择传输协议(UDP或TCP)
vim /etc/rsyslog.conf
systemctl restart rsyslog
<取消前>
<取消后,这里我选择开启UDP的514监听端口>
2.在生产日志的主机中定义收集什么设施(事件)、什么级别的日志、发送到哪台远程主机。
vim /etc/rsyslog.conf
systemctl restart rsyslog
*:表示所有
*.* 表示所有设施或者所有级别的日志
none: 表示排除
例:mail.none :表示收集日志时排除 mail 设施的日志。
@:表示使用UDP协议传输到远程主机的514监听端口
@@:表示使用TCP协议传输到远程主机的514监听端口
3. 10.0.0.200 远程主机是Ubuntu系统会将定义设施存放路径的配置文件放到子文件夹中。
vim /etc/rsyslog.d/50-default.conf
<生成日志的主机将日志传输到远程主机后,会根据远程主机中所定义的设施存放路径进行存放>
4.配置完后对配置进行restart操作后进入测试环境。
1)<10.0.0.200远程主机使用tail -f 打开日志存放文件,进行日志观察>
2)<10.0.0.10生产日志的主机使用命令logger工具进行测试,可以看到日志已成功传输到远程主机存储该设施的日志文件中>
1.
2.远程主机日志接收情况👇
实用命令:
1.lastb,可查探到试图远程登录本机的账号和IP等信息,如果视为恶意可以将该IP加入防火墙进行排除。
2.last,可查看成功登陆本机的账号及IP等信息。
logrotate 介绍
logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,称为日志转储或滚动。可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。
相关文件
计划任务:/etc/cron.daily/logrotate
程序文件:/usr/sbin/logrotate
配置文件: /etc/logrotate.conf
日志文件:/var/lib/logrotate/logrotate.status
配置参数 说明
1.logrotate的计划任务脚本。
vim /etc/cron.daily/logrotate
<解读:日志转储的命令配合日志转储配置文件中的设定实现自定义日志转储功能。>
<crao是能够执行logrotate子配置文件中的日志转储配置。>
例:下例是nginx的日志转储配置,在做转储时有旧日志文件处于被打开的状态,那么新日志文件将无法写入到logs中,因此需要增加一个if判断当在执行计划任务进行转储时如果nginx的进程处于运行的状态,那么使用kill -USR1(nginx独有进程)去进行重启该进程,以此来识别新的logs文件。
posted on 2021-07-07 17:36 1251618589 阅读(38) 评论(0) 编辑 收藏 举报