了解最新公司动态及行业资讯
在 Linux系统中,rsyslog 用于系统日志的记录和管理,rsyslog 的主配置文件是 /etc/rsyslog.conf,同时在 /etc/rsyslog.d/ 目录下可以放置自定义的配置文件。
规则用于指定日志消息的来源、类型和存储位置。规则的基本格式是:
设施.优先级 动作
设施:表示日志消息的来源,例如 auth(认证相关)、kern(内核相关)、user(用户进程相关)、cron(计划任务相关)、daemon(守护进程相关)、local0 至 local7(八个设施是为用户自定义用途预留的,可以根据需要定义特定的应用场景)等
优先级:表示日志消息的严重程度,从低到高依次为 debug、info、notice、warning、err、crit、alert、emerg。
动作:表示日志消息的处理方式,通常是指定存储的文件路径,或者把日志上传到远程日志审计服务器上。
下面基于银河麒麟桌面操作系统V10 (SP1)并结合实际目标,实战演绎Linux日志管理最佳实践案例。
目标1:所有的用户认证相关活动,包括成功的登录尝试、失败的登录尝试以及其他授权操作等,记录到本地日志文件并上传到远程日志审计系统。
目标2:所用用户在Linux终端中执行的命令,记录到自定义的本地日志文件并上传到远程日志审计系统。
银河麒麟桌面系统默认已安装syslog服务,日志过滤规则默认存储在/etc/rsyslog.d/ 目录下。
auth和authpriv设施默认已定义在默认的配置文件中,如下图所示。
为了把它们产生的日志上传到远程日志审计系统,需要在该配置文件添加以下内容。
auth,authpriv.* @192.168.1.10:514
其中,@指使用UDP的方式,192.168.1.10指远程日志审计系统,514指远程日志审计系统监听端口;
Tips:@@指使用TCP方式
完成配置文件的修改,重启syslog服务。
sudo systemctl restart syslog
第1步:编辑/etc/bash.bashrc,在文件末尾添加以下内容,如下图所示;
export PROMPT_COMMAND=RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"
第2步:root用户权限下执行下列命令,使配置生效
root@Pradmin-pc:~# source /etc/bash.bashrc
root@Pradmin-pc:~#
第3步:创建日志文件bash01.log并更改文件所属用户及所属组
sudo touch /var/log/bash01.log
sudo chown syslog:adm /var/log/bash01.log
第4步:创建自定义的配置文件bash01.conf并重启syslog服务
local6.debug /var/log/bash01.log
local6.debug @192.168.72.10:514
第5步:查看本地日志记录文件是否记录了相应的日志
第6步:Logrotate工具定义bash01.log日志文件的轮转规则
定义日志文件的轮转规则可有效地管理和维护系统日志文件,防止它们无限增长而导致磁盘空间耗尽。同时,定期地压缩旧日志文件也能节省存储空间。
针对syslog服务,银河麒麟桌面系统默认日志文件的轮转规则如下图所示;
日志文件的轮转规则默认保存在/etc/logrotate.d目录中,其中rsyslog配置文件是针对syslog服务的轮转规则。
编辑rsyslog文件添加/var/log/bash01.log并重启logrotate服务,如下图所示;
sudo systemctl restart logrotate
以上总结,希望各位小伙伴有所收获,不足之处,欢迎各位小伙伴留言指正。