syslog日志服务学习

参考 https://blog.csdn.net/LLZK_/article/details/69945366

       https://www.jianshu.com/p/5563fc09952b

配置文件

syslog日志服务的主要文件有以下两个:
1、/var/log --- 日志文件保存在此目录下
根据不同的类型,分有不同的日志文件:
dmesg  内核引导信息日志
message 标准系统错误信息日志 (上述分析的日志格式就是按照此类型分析的)
maillog 邮件系统信息日志
cron 计划任务日志
secure 安全信息日志

2、/etc/syslog.conf或者/etc/rsyslog.conf  ---- 配置文件

主要内容如下:

# rsyslog v5 configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
#$ModLoad immark  # provides --MARK-- message capability

# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# Provides TCP syslog reception   ## 指明syslog服务提供TCP网络日志的接受
#$ModLoad imtcp
#$InputTCPServerRun 514  ## 端口514


#### GLOBAL DIRECTIVES ####

# 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/
$IncludeConfig /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
# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure
# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog
# Log cron stuff
cron.*                                                  /var/log/cron
# Everybody gets emergency messages
*.emerg                                                 *
# 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

#1

$template RemoteLogs,"/var/log/devicelog/%HOSTNAME%/%PROGRAMNAME%.log"

#2

*.* ?RemoteLogs

#3

& ~

 

#将所有从远程客户端接受到的消息写入到一个以它们的IP地址命名的单个文件中

第一行#1 $template 定义模板名称RemoteLogs(“RemoteLogs” 可以为其它名字),日志存入到/var/log/devicelog路径下。而日志文件名则依据发送远程日志的机器名及应用程序名来定义。

第二行#2 *.*  ?RemoteLogs暗含运行用模板RemoteLogs于所有的接收日志。

第三行#3 & ~则告诉rsyslog后台进程停止进一步去处理日志信息,即不对它们进行本地化写入,它是代表一个重定向规则。如果没有这一行,则意味着接收到的日志会写入两次,一次如前两行写的方式写,第二次则以本地日志记录的方式写入。运行这个规则的另一个结论则是日志服务器自己的日志信息只会写入到依照机器主机名命名的文件中。)

重启下服务,并加入开机启动


注意,我用加粗标注的信息,每条信息都可分为两部分,日志类型----存放路径。
日志类型可分为两个字段:选择条件,重要级。两者之间用点(.)隔开。
选择条件:
选择条件是对消息类型的一种分类,这种分类便于人们把不同的消息发送到不同的位置。syslog配置上允许出现一个以上的选择条件,不同条件之间必须以分好(;)隔开。

kern                内核信息;
user                用户进程信息;
mail                电子邮件相关信息;
daemon          后台进程相关信息;
authpriv            包括特权信息如用户名在内的认证活动;
cron                计划任务信息;
syslog          系统日志信息
lpr             打印服务相关信息。
news            新闻组服务器信息
uucp                uucp 生成的信息
local0----local7        本地用户信息

重要级:
表示消息的紧急程序。下面按严重程度由低到高。

debug       不包含函数条件或问题的其他信息
info            提供信息的消息
none        没有重要级,通常用于排错
notice      具有重要性的普通条件
warning     预警信息
err         阻止工具或某些子系统部分功能实现的错误条件
crit            阻止某些工具或子系统功能实现的错误条件
alert           需要立即被修改的条件
emerg       该系统不可用
不同的服务类型有不同的优先级,数值较大的优先级涵盖数值较小的优先级,比如,只指定了一个“notice”,而没有指定其他,其实默认涵盖了“debug”“info”“none”。

存放路径
日志信息可被记录到多个文件里,还可以发送端命名管道,其他程序深圳另一台机器。
主要如下:
file                    指定文件的绝对路径
terminal 或 prin        完全的串行或并行设备标志符
@host(@IP地址)    远程的日志服务器

posted @ 2019-06-11 15:46  zsls-lang  阅读(443)  评论(0编辑  收藏  举报