【服务配置文件详解】补充rsyslog服务的配置文件翻译解读

学习rsyslog日志管理服务的配置文件

复制代码
# rsyslog configuration file 关于rsyslog软件的配置文件

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
想看到更多相关信息,可以去查看这个文件,rsyslog-*的*表示软件版本,我查了,可能本地没有这个文件
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
如果你遇到问题,也可以去这个网址查看,里面有常见的故障案例,等下截图演示

日志的配置文件由三部分组成:模块配置,全局配置,局部配置

第一部分:模块,可以看带哪些模块rpm -ql rsyslog 中以so结尾的,就是可提供的模块

复制代码
#### MODULES ####  

# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
支持本地系统日志记录,默认打开
$ModLoad imjournal # provides access to the systemd journal
提供systemd管理时,以journalctl这个命令查看日志信息,默认打开
#$ModLoad imklog # reads kernel messages (the same are read from journald)
表示读取内核的消息,与systemd的journal类似,默认关闭的
#$ModLoad immark  # provides --MARK-- message capability
提供mark标记功能,默认关闭

这是支持udp协议,接收日志,端口号是514
# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

支持tcp协议,接收日志,端口号是514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

这是第二部分:全局配置,通常不修改

复制代码
#### GLOBAL DIRECTIVES ####

# Where to place auxiliary files
这里是一些辅助文件(查看了,就是imjournal.state)
$WorkDirectory /var/lib/rsyslog

# Use default timestamp format
使用默认时间戳格式
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

#File syncing capability is disabled by default. This feature is usually not required,
文件的同步功能是默认关闭的,这个功能通常是不需要的
# not useful and an extreme performance hit
没有用和极端功能点
#$ActionFileEnableSync on
自动同步文件的功能打开,这里是默认关闭的

# Include all config files in /etc/rsyslog.d/
这个文件夹包含了所有日志相关功能配置文件(去查看了一下,目前只有listen.conf)
$IncludeConfig /etc/rsyslog.d/*.conf

# Turn off message reception via local log socket;
关闭本地套接字接收消息
# local messages are retrieved through imjournal now.
本地消息通过imjournal来接收,可以理解为就是journal可以统一管理,这是systemd的管理日志的一个服务软件
$OmitLocalLogging on

# File to store the position in the journal
储存journal的位置
$IMJournalStateFile imjournal.state
在这个文件,这个文件就是/var/lib/rsyslog/下面的,前面提到的辅助文件夹

这是第三部分:可以理解为存放日志的规则

复制代码
#### RULES ####

# Log all kernel messages to the console.
所有内核消息放在这个设备(console控制台的意思)
# Logging much else clutters up the screen.
记录更多的其他东西会使屏幕变得杂乱。
#kern.*                                                 /dev/console
默认关闭的状态

# Log anything (except mail) of level info or higher.
记录任何日志,除了邮件,以及安全级别在info以及以上的日志
拓展日志的8个等级:7debug调试,6info信息,5notice注意,4warning提醒,3err错误,2crit严重,1alter警告,0emerg紧急
# Don't log private authentication messages!
也不提供安全认证相关的日志
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
表示info级别以上,以及mail、authpriv、cron相关日志不记录到/var/log/messages文件中
这个是默认开启状态,也从内容分析知道,/var/log/messages基本包含了本系统大部分日志信息

# The authpriv file has restricted access.
安全认证通过的日志(如用户登录成功,ssh远程连接等)
authpriv.*                                              /var/log/secure
这里的authpriv.*中的*表示相关所有日志等级

# Log all the mail messages in one place.
邮件相关的日志
mail.*                                                  -/var/log/maillog


# Log cron stuff
与计划任务相关的日志
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
任何的紧急日志(我用find / -name :omusrmsg:*没找到相关的具体位置,可能是因为我当前系统没有紧急事项)
*.emerg                                                 :omusrmsg:*

# Save news errors of level crit and higher in a special file.
存储uucp和news设备相关,在crit级别以上的日志
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
记录/boot中设备相关日志,含有系统启动的日志信息
local7.*                                                /var/log/boot.log

总结几点rule相关的设置:

复制代码
##所有日志的存放位置都是可以自定义的
##rule部分中的所有日志,都使用1个@或者2@加ip的形式将日志通过udp或tcp传输到专门管理日志的服务器上,这个可以看之前的实操案例
##所有rule的格式都是[系统facility类型.日志级别范围   文件路径]
##关于日志facility:设施,从功能或程序上对日志进行归类
①内置分类
auth(验证), authpriv, cron(定时任务), daemon(守护进程),ftp(文件传输),kern(内核), lpr, mail, news, security(auth), user, uucp, syslog
②自定义的分类,名称只能是local,数字只能是0-7
local0-local7
自定义实操案例有ssh的服务日志独立
③关于日志级别,如果是*代表所有,如果是某个级别,表示该级别以上的
日志的8个等级:7debug调试,6info信息,5notice注意,4warning提醒,3err错误,2crit严重,1alter警告,0emerg紧急

# ### begin forwarding rule ###
设定转发日志规则之前的注意事项
# The statement between the begin ... end define a SINGLE forwarding
在开始和结束之间定义一个信号类型进行转发
# rule. They belong together, do NOT split them. If you create multiple
如果你创建多个,他们是一体的,可以不要分割他们
# forwarding rules, duplicate the whole block!
转发是复制整个内容,整个磁盘块
# Remote Logging (we use TCP for reliable delivery)
远程日志一般使用tcp进行可靠传输
#
# 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.
磁盘消息是列队进行传输的。如果远程主机关闭,消息将假脱机到磁盘,并在磁盘再次启动时发送。
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
这是脱机存信息的磁盘名称
#$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
磁盘空间可能限制为1G
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
关机的时候存在磁盘
#$ActionQueueType LinkedList   # run asynchronously
异步运行
#$ActionResumeRetryCount -1    # infinite retries if host is down
如果主机关闭,重试
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
远程主机的主机名,端口
#*.* @@remote-host:514
举例为tcp的
# ### end of the forwarding rule ###

学习官网的2个典型故障案例

复制代码
https://www.rsyslog.com/doc/v8-stable/troubleshooting/index.html
复制代码
第一种:selinux安全和firewalld需要关闭
第二种:限制打开文件的最大数量(我理解的是需要limit调优)

centos7存放日志的文件夹

复制代码
用yum或者rpm安装的软件,一般会默认将日志存放在这个文件夹中,主要还是以服务的配置文件内容说明为准
比如我下载的httpd、chrony(时间同步)

[root@localhost rsyslog]#cd /var/log
[root@localhost log]#ls
anaconda           chrony              lastlog            sa                 vmware-vgauthsvc.log.0
audit              cron                libvirt            samba              vmware-vmsvc.log
boot.log           cron-20231105       maillog            secure             vmware-vmusr.log
boot.log-20231105  cups                maillog-20231105   secure-20231105    wpa_supplicant.log
boot.log-20231106  dmesg               messages           speech-dispatcher  wtmp
boot.log-20231107  dmesg.old           messages-20231105  spooler            Xorg.0.log
boot.log-20231108  firewalld           ntpstats           spooler-20231105   Xorg.0.log.old
boot.log-20231109  gdm                 pluto              sssd               Xorg.9.log
boot.log-20231110  glusterfs           ppp                sudo               yum.log
boot.log-20231111  grubby_prune_debug  qemu-ga            tallylog
btmp               httpd               rhsm               tuned

常见的日志
/var/log/btmp:登录失败用户的日志,二进制文件,使用lastb查看
/var/log/wtmp:登录成功用户的日志,二进制文件,使用last查看
/var/log/lastlog:上一次登录的日志,二进制文件,使用lastlog查看
/var/log/dmesg:设备日志文件
/var/log/messages :系统大量的日志信息
/var/log/secure:安全认证,可读,比如ssh或者正常的用户登录,身份认证
相关推荐
Linux技术支持工程师3 分钟前
【Linux基础命令使用】pwd、cd、ls、cat、less、hostname、lscpu、free、ifconfig命令详解
linux·运维·less
设计师小聂!4 分钟前
linux常用命令(三)
linux·运维·服务器
chao_78919 分钟前
Selenium 操作表单选择控件【selenium】
运维·python·selenium·测试工具·自动化
病树前头1 小时前
如何查看服务器当前用户的权限
运维·服务器
学前端搞口饭吃2 小时前
vite如何生成gzip,并在服务器上如何设置开启
linux·运维·ubuntu
许白掰3 小时前
Linux入门篇学习——Linux 编写第一个自己的命令,make 工具和 makefile 文件
linux·运维·服务器·学习
望获linux7 小时前
【实时Linux实战系列】硬实时与软实时设计模式
linux·运维·服务器·数据库·操作系统·rtos·嵌入式软件
沉默的八哥10 小时前
Linux中LVM逻辑卷扩容
linux·运维·服务器
Otaku love travel12 小时前
实施运维文档
运维·windows·python
basketball61612 小时前
Linux C 管道文件操作
linux·运维·c语言