Linux ❀ Rsyslog(Syslog)服务与配置文件参数详解
文章目录
- 1、日志服务简介
- 2、linux系统中的常见日志
- 3、日志服务Rsyslog
- (1)服务对应rpm包
- (2)服务配置文件
- (3)配置文件格式
- 服务名称
- 连接符号
- 日志等级
- 日志记录位置
- (4)配置文件内容
- 4、日志轮替
- (1)配置文件内容详解
- (2)logrotate配置文件的主要参数
- (3)案例解析
1、日志服务简介
在Centos 6.x/Redhat 6.x中日志服务已经由rsyslog取代了原先的syslog服务,rsyslog相比syslog具有一些新的特点:
- 基于TCP网络协议传输日志信息;
- 更安全的网络传输方式;
- 有日志消息的及时分析框架;
- 后台数据库;
- 配置文件中可以写简单的逻辑判断;
- 与syslog配置文件相兼容;
2、linux系统中的常见日志
系统中的日志默认存储路径为:/var/log/
[root@Redhat8 log]# pwd
/var/log
[root@Redhat8 log]# ls
anaconda dnf.librepo.log-20210829 libvirt secure-20210822
audit dnf.librepo.log-20210905 maillog secure-20210829
boot.log-20210821 dnf.log maillog-20210822 secure-20210905
boot.log-20210825 dnf.log.1 maillog-20210829 speech-dispatcher
boot.log-20210902 dnf.rpm.log maillog-20210905 spooler
btmp firewalld mariadb spooler-20210822
btmp-20210901 gdm messages spooler-20210829
chrony glusterfs messages-20210822 spooler-20210905
cron hawkey.log messages-20210829 sssd
cron-20210822 hawkey.log-20210822 messages-20210905 swtpm
cron-20210829 hawkey.log-20210829 private tuned
cron-20210905 hawkey.log-20210905 qemu-ga vmware-vgauthsvc.log.0
cups httpd rhsm wtmp
dnf.librepo.log insights-client samba
dnf.librepo.log-20210822 lastlog secure
日志文件说明:
- /var/log/cron :记录系统定时任务相关日志;
- /var/logcups/ :记录打印信息的日志;
- /var/log/dmesg :记录系统在开机时内核自检的信息,可以使用dmesg命令直接查看内核自检信息;
[root@Redhat8 log]# dmesg
- /var/log/btmp :记录错误登录日志,此文件为二进制文件(保护日志内容,防止陌生用户查看并可修改日志内容),需要使用lastb命令查看;
[root@Redhat8 log]# lastb
- /var/log/lastlog :记录系统中所有用户最后一次的登录时间的日志,此文件为二进制文件,需要使用lastlog命令查看;
[root@Redhat8 log]# lastlog
- /var/log/maillog :记录邮件信息;
- /var/log/message :记录系统重要信息的日志,这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题,首先检查此日志文件;
- /var/log/secure :记录验证和授权方面的信息,只要涉及账户和密码的程序都会被记录;
- /var/log/wtmp :永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件,此文件为二进制文件,需要使用last命令查看;
[root@Redhat8 log]# last
- /var/log/utmp :记录当前已经登录的用户信息,此文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息,此文件为二进制文件,需要使用w、who、users等命令查看;
[root@Redhat8 log]# w00:09:31 up 9 days, 5:59, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty2 tty2 01Sep21 9days 9:11 0.00s /usr/libexec/gsd-disk-utility-notify
root pts/0 10.81.10.55 23:58 0.00s 0.03s 0.00s w
[root@Redhat8 log]#
[root@Redhat8 log]# who
root tty2 2021-09-01 18:12 (tty2)
root pts/0 2021-09-10 23:58 (10.81.10.55)
[root@Redhat8 log]# users
root root
除了系统默认的日志之外,采用rpm方式安装的系统服务也会默认将日志记录在/var/log/目录下,不过这些日志不是由rsyslog服务来记录和管理的,而是各个服务使用自己的日志管理文件来记录自身日志;
/var/log/httpd/
/var/log/mail/
/var/log/samba/
/var/log/ssd/
3、日志服务Rsyslog
(1)服务对应rpm包
[root@Redhat8 log]# rpm -qa rsyslog
rsyslog-8.1911.0-3.el8.x86_64
(2)服务配置文件
[root@Redhat8 log]# rpm -qc rsyslog
/etc/logrotate.d/syslog
/etc/rsyslog.conf
/etc/sysconfig/rsyslog
(3)配置文件格式
#服务名称[连接符号]日志等级 日志记录位置
authpriv.* /var/log/secure
服务名称
- auth (LOG_AUTH) :安全和认证相关消息,不推荐使用authpriv替代;
- authpriv (LOG_AUTHPRIV) :安全和认证相关消息,私有;
- cron (LOG_CRON) :系统定时任务cront与at产生的相关日志;
- daemon (LOG_DAEMON) :各个守护进程产生的日志;
- ftp (LOG_FTP) :ftp守护进程产生的日志;
- kern (LOG_KERN) :内核产生的日志;
- local0-local7 (LOG_LOCAL0-7) :为本地使用预留的服务;
- lpr (LOG_LPR) :打印产生的日志;
- mail (LOG_MAIL) :邮件收发日志;
- news (LOG_NEWS) :与新闻服务器相关的日志;
- syslog (LOG_SYSLOG) :有syslog服务产生的日志;
- user (LOG_USER) :用户等级类别的日志;
- uucp (LOG_UUCP) :uucp子系统的日志信息;
…
连接符号
- " . " :只要比后面的等级高的(包含该等级)日志都记录下来;
- " .= " :只记录所需等级的日志,其他等级不记录;
- " .! " :除了该等级的日志外其他等级全部记录;
日志等级
- debug (LOG_DEBUG) :一般的调试信息说明;
- info (LOG_INFO) :基本的通知信息;
- notice (LOG_NOTICE) :普通信息,有一定重要性;
- warning (LOG_WARNING) :警告信息,不会影响到服务的运行;
- err (LOG_ERR) :错误信息,可以影响服务或系统的运行;
- crit (LOG_CRIT) :临界状况信息,比err等级严重;
- alert (LOG_ALERT) :警告状态信息,比crit等级严重,需要立即采取行动;
- emerg (LOG_EMERG) :疼痛等级信息,系统无法使用;
- :所有等级信息;
- none :忽略此日志服务;
日志记录位置
即当前日志输出到那个文件中进行保存,或者输出到某个远程日志服务器上(UDP 514),日志的记录位置是固定的;
- 日志文件的绝对路径:最常见的保护方法;
- 系统设备文件:代表打印机输出方式;
- 转发到远程主机:使用TCP/UDP端口发送到远程主机上,若使用"@192.168.10.10:514",就会把日志内容使用UDP协议发送到192.168.10.10的UDP 514端口,若使用"@@192.168.10.10:514",就会把日志内容使用TCP协议发送到192.168.10.10的TCP 514端口;
- 用户名:此处可以定义接受该日志用户名," * " 代表所有用户;
- " ~ " 代表忽略此日志,不定义接收;
(4)配置文件内容
[root@Redhat8 log]# cat /etc/rsyslog.conf
# rsyslog configuration file# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# or latest version online at http://www.rsyslog.com/doc/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html#### MODULES ####
#加载模块module(load="imuxsock" # provides support for local system logging (e.g. via logger command)
#加载imuxsock模块,为本地系统登录提供支持SysSock.Use="off") # Turn off message reception via local log socket; # local messages are retrieved through imjournal now.
module(load="imjournal" # provides access to the systemd journalStateFile="imjournal.state") # File to store the position in the journal
#module(load="imklog") # reads kernel messages (the same are read from journald)
#加载imklog模块,为内核登录提供支持
#module(load"immark") # provides --MARK-- message capability
#加载immark模块,提供标记信息的能力# 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")
#加载UDP模块,允许使用UDP的514端口接收采用UDP协议转发的日志# 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")
#加载TCP模块,允许使用TCP的514端口接收采用TCP协议转发的日志#### GLOBAL DIRECTIVES ####
#定义全局设置# Where to place auxiliary files
global(workDirectory="/var/lib/rsyslog")
#工作目录位置# Use default timestamp format
module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")
#定义日志的时间使用默认的时间戳格式# Include all config files in /etc/rsyslog.d/
include(file="/etc/rsyslog.d/*.conf" mode="optional")
#包含/etc/rsyslog.d/目录中的所有以conf子配置文件#### RULES ##### Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
#所有日志存放在messages文件内,除了邮件、认证、定时任务# The authpriv file has restricted access.
authpriv.* /var/log/secure
#认证日志记录在secure文件内# Log all the mail messages in one place.
mail.* -/var/log/maillog
#邮件日志记录在maillog文件内# Log cron stuff
cron.* /var/log/cron
#定时任务记录在cron文件内# Everybody gets emergency messages
*.emerg :omusrmsg:*
#所有疼痛级别日志全网通知# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler# Save boot messages also to boot.log
local7.* /var/log/boot.log# ### sample forwarding rule ###
#action(type="omfwd"
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#queue.filename="fwdRule1" # unique name prefix for spool files
#queue.maxdiskspace="1g" # 1gb space limit (use as much as possible)
#queue.saveonshutdown="on" # save messages to disk on shutdown
#queue.type="LinkedList" # run asynchronously
#action.resumeRetryCount="-1" # infinite retries if host is down
# Remote Logging (we use TCP for reliable delivery)
# remote_host is: name/ip, e.g. 192.168.0.1, port optional e.g. 10514
#Target="remote_host" Port="XXX" Protocol="tcp")
4、日志轮替
日志轮替的作用就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超过保存的范围之后,就会进行删除,那么旧日志文件改名之后,命令规范即参考下面配置文件内容;
若配置文件中有 dateext 参数,则日志文件名称不会重叠,此参数不需要日志文件改名,只需要保存指定的日志个数,删除多余的日志文件即可;
[root@Redhat8 log]# ll | grep -w secure
-rw-------. 1 root root 1790 Sep 14 21:50 secure
-rw-------. 1 root root 12375 Aug 21 22:59 secure-20210822
-rw-------. 1 root root 82846 Aug 28 02:19 secure-20210829
-rw-------. 1 root root 7135 Sep 3 21:00 secure-20210905
-rw-------. 1 root root 6715 Sep 11 01:50 secure-20210912
若没有 dateext ,那么日志文件就需要进行改名了,第一次进行日志轮替时,当前的 secure 日志会自动改名为 secure.1 ,然后新建 secure 日志用来保存新的日志,当第二次进行轮替时, secure.1 会自动改名为 secure.2 ,当前的 secure 日志会自动改名为 secure.1 然后也会新建 secure 日志,用来保存新日志,以此类推;
(1)配置文件内容详解
[root@Redhat8 log]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# 每周对日志文件进行一次轮替
# keep 4 weeks worth of backlogs
rotate 4
#最多保存四次轮替文件,产生第5个文件则删除第一个备份日志文件
# create new (empty) log files after rotating old ones
create
#在日志轮替时,自动新建新的日志文件
# use date as a suffix of the rotated file
dateext
#以日期作为日志文件后缀进行命名# uncomment this if you want your log files compressed
#compress
#日志文件是否压缩,如果取消注释,则日志会在转存储过程时进行压缩
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
#包含子目录/etc/logrotate.d中的所有配置文件# system-specific logs may be also be configured here.[root@Redhat8 logrotate.d]# ll /etc/logrotate.d/
total 80
-rw-r--r--. 1 root root 91 Dec 11 2019 bootlog
-rw-r--r--. 1 root root 130 Feb 19 2018 btmp
-rw-r--r--. 1 root root 160 May 10 2019 chrony
-rw-r--r--. 1 root root 71 Feb 15 2020 cups
-rw-r--r--. 1 root root 212 Nov 25 2019 dnf
-rw-r--r--. 1 root root 194 Dec 2 2019 httpd
-rw-r--r--. 1 root root 172 Nov 5 2019 iscsiuiolog
-rw-r--r--. 1 root root 165 Mar 16 2020 libvirtd
-rw-r--r--. 1 root root 142 Mar 16 2020 libvirtd.qemu
-rw-r--r--. 1 root root 492 Aug 16 2019 mariadb
-rw-r-----. 1 root named 514 Feb 27 2020 named
-rw-r--r--. 1 root root 106 Jun 2 2015 numad
-rw-r--r--. 1 root root 408 Aug 13 2018 psacct
-rw-r--r--. 1 root root 155 Feb 13 2020 samba
-rw-r--r--. 1 root root 237 Mar 17 2020 sssd
-rw-r--r--. 1 root root 71 Apr 3 2020 subscription-manager
-rw-r--r--. 1 root root 226 Dec 11 2019 syslog
-rw-r--r--. 1 root root 32 Feb 19 2018 up2date
-rw-r--r--. 1 root root 100 Nov 4 2019 wpa_supplicant
-rw-r--r--. 1 root root 145 Feb 19 2018 wtmp
(2)logrotate配置文件的主要参数
- daily :日志的轮替周期是每天;
- weekly :日志的轮替周期是每周;
- monthly :日志的轮替周期是每月;
- rotate number :保留日志文件的个数,0代表无备份;
- compress :日志轮替时旧日志文件是否进行压缩;
- create mode owner group :创建新日志文件时是否指定日志的权限、所属者、所属组;
- mail address :当日志轮替时,输出内容通过邮件外发到指定地址;
- missingok :如果日志不存在,则忽略该日志的告警信息;
- notifempty :如果日志文件为空,则不进行日志轮替;
- minsize number :日志轮替最小值,达到该值才会进行轮替;
- size number :设置轮替为指定大小,超过此大小则进行轮替,取消时间轮替;
- dateext :以日期作为日志轮替的文件后缀;
- sharedscripts :在此关键字之后的脚本只执行一次;
- prerotate/endscript :在日志轮替之前执行脚本命令,endscript表示脚本结束;
- posttrotate/endscript :在日志轮替之后执行脚本命令,endscript表示脚本结束;
(3)案例解析
[root@Redhat8 logrotate.d]# cat ./syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{missingoksharedscripts#以下脚本执行一次postrotate#在日志轮替之后执行脚本/usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true#重启rsyslog服务,并将结果返回为空 endscript#脚本执行结束
}
prerotate与posttrotate主要用于在日志轮替的同时,执行指定的脚本文件,一般用于日志轮替之后重启服务,需要强调的是,如果日志是写入rsyslog服务的配置文件的,那么把新日志加入logrotate后,一定要重启rsyslog服务,否则你会发现虽然新日志建立了,但是数据还是写入了旧的日志当中,那是因为logrotate文件知道日志轮替了,但是rsyslog服务却不知道,因此就需要重启服务来使得rsyslog服务知道日志轮替了来满足将数据写入新日志文件内;
这里可以使用chattr给文件加入a属性,如果系统文件加入了a属性,那么这个文件就只能增加数据,不能删除和修改已有的数据(root用户也不能修改或删除),此方法可以保护日志文件不被恶意修改;
#chattr
[root@Redhat8 shell]# touch test
[root@Redhat8 shell]# ll
total 0
-rw-r--r--. 1 root root 0 Sep 14 23:51 test
[root@Redhat8 shell]# chattr +a test
[root@Redhat8 shell]# ll
total 0
-rw-r--r--. 1 root root 0 Sep 14 23:51 test
[root@Redhat8 shell]# echo aaa > test
-bash: test: Operation not permitted
[root@Redhat8 shell]# rm -rf test
rm: cannot remove 'test': Operation not permitted
[root@Redhat8 shell]# chattr -a test
[root@Redhat8 shell]# echo aaa > test
[root@Redhat8 shell]# cat test
aaa
Linux ❀ Rsyslog(Syslog)服务与配置文件参数详解相关推荐
- Linux网卡配置文件-参数详解
Linux网卡配置文件-参数详解 DEVICE=eth0 #指出网卡名称比如这个是eth0 NM_CONTROLLED=yes #network mamager的参数,实时生效,不需要重启,表示是否受 ...
- 5、SAMBA服务一:参数详解
①:SAMBA服务一:参数详解 ②:SAMBA服务二:配置实例 一.SAMBA简介 samba指SMB(Server Message Block,服务器信息块)协议在网络上的计算机之间远程共享Linu ...
- Linux服务器,服务管理--systemctl命令详解,设置开机自启动
Linux服务器,服务管理--systemctl命令详解,设置开机自启动 syetemclt就是service和chkconfig这两个命令的整合,在CentOS 7就开始被使用了. 摘要: syst ...
- CI流水线配置文件参数详解(二)
文章目录 4. 参数详解(二) 4.9 git tag打标签的使用 4.10 ``allow_failure`` 4.11 ``when`` 关键字用于实现在作业失败时或发生故障时运行的作业 (whe ...
- CI流水线配置文件参数详解(一)
文章目录 4. 参数详解(一) 4.1 ``script`` 4.2 ``image`` 指定使用Docker镜像.如 ``iamge:name`` ,暂时忽略. 4.3 ``before_scrip ...
- MySQL配置文件参数详解
[client] port = 3307 socket = /usr/local/mysql5_6/mysql.sock default-character-set=utf8 [mysql] prom ...
- Rsync 服务部署与参数详解
Rsync 简介 rsync 是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix/linux/windows等多种操作系统平台. 传统的 ...
- compose配置文件参数详解
本文介绍compose配置文件参数的使用,熟练编写compose文件 [root@docker lnmp]# cat lnmp.yaml version: '3' services:nginx:bui ...
- mysql配置文件参数详解 my.cnf
My.cnf My.cnf配置选项详解: mysqld程序--目录和文件 basedir = path使用给定目录作为根目录(安装目录). character-sets-dir = path给出存放 ...
最新文章
- Flutter Exception降到万分之几的秘密
- 计算机丢失faultrep.dll,faultrep.dll是什么文件?
- 如何使html中的din居中,HTML+CSS--position大法好
- ElasticSearch搜索实例含高亮显示及搜索的特殊字符过滤
- 软件c#语言调用摄像头,C#调用摄像头的几种方式
- 外设驱动库开发笔记30:宇电AI-BUS通讯驱动
- linux c++程序,阐述Linux下C++编程进行学习
- ftp服务器web里有个文件,web实现ftp服务器文件
- Matlab二维曲线之fplot函数
- 清华同方计算机教程,清华同方电脑u盘重装系统win10教程
- vmware虚拟机启动失败
- HTML文件mhl,比HDMI更强!MHL与HDMI技术解析
- java飞机代码_java实现飞机游戏代码
- 医院管理源码 排队叫号管理源码
- c word to html 走样,打印机打印效果走样解决办法.pptx
- JavaScript简餐——关于盗用构造函数
- 加州大学欧文分校 计算机专业,加州大学欧文分校信息与计算机科学
- VMware workstation搭建华为FusionCompute实验环境(二)保姆级安装教程,可运行虚拟机
- css文本溢出时候,如何把多余的文字显示省略号
- Centos6.9 下的 CM(Cloudera Manager)CDH 大数据环境部署
热门文章
- moto g2 android 6.0,MOTO G2和MOTO G哪个好
- 非常成功的人会做的八件事
- RocketMQ 简单梳理 及 集群部署笔记
- 通过简单的计算理解sumproduct函数(图文)
- linux定时备份数据库到远程ftp,Linux下自动备份MySQL数据库并上传到远程FTP服务器...
- Mathtype生成的公式插入word中时缩成一团的解决办法
- GitHub上标星75k+超牛的《Java面试突击版》,java开发实战经典第二版答案
- **Wampsever运行时不是绿色的解决**
- 微信小程序实现两个页面之间的跳转
- 小米辟谣35岁以上员工只保留10%,网友:“请公开数据!”