配置linux syslog日志服务器
发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,目前,linux依旧使用syslogd作为日志监控进程,而在主流的linux发行版中依旧使用sysklog这个比较老的日志服务器套件。从前一篇日志可以看到,对其进行必要的配置能减少很多麻烦,并且可更有
千家信息网最后更新 2024年11月17日配置linux syslog日志服务器目前,linux依旧使用syslogd作为日志监控进程,而在主流的linux发行版中依旧使用sysklog这个比较老的日志服务器套件。从前一篇日志可以看到,对其进行必要的配置能减少很多麻烦,并且可更有效的从系统日志监控到系统的状态。理解并完善一个syslog的配置,对于系统管理员来说显得尤为重要。
一、配置文件
以红旗DC Server 5.0为例,默认的日志服务器就是sysklog套件:
引用# rpm -qa|grep sysklogd
sysklogd-1.4.1-26_EL
其主要的配置文件有两个:
引用/etc/sysconfig/syslog
这里定义syslog服务启动时可加入的参数。
引用/etc/syslog.conf
这个是syslog服务的主要配置文件,根据定义的规则导向日志信息。
二、设置主配置文件
/etc/syslog.conf根据如下的格式定义规则:
引用facility.level action
设备.优先级 动作
facility.level 字段也被称为seletor(选择条件),选择条件和动作之间用空格或tab分割开。
#号开头的是注释,空白行会自动跳过。
1、facility
facility定义日志消息的范围,其可使用的key有:
引用auth -由 pam_pwdb 报告的认证活动。
authpriv -包括特权信息如用户名在内的认证活动
cron -与 cron 和 at 有关的计划任务信息。
daemon -与 inetd 守护进程有关的后台进程信息。
kern -内核信息,首先通过 klogd 传递。
lpr -与打印服务有关的信息。
mail -与电子邮件有关的信息
mark - syslog内部功能用于生成时间戳
news -来自新闻服务器的信息
syslog -由 syslog 生成的信息
user -由用户程序生成的信息
uucp -由 uucp 生成的信息
local0-local7 -与自定义程序使用
* 通配符代表除了 mark 以外的所有功能
除mark为内部使用外,还有security为一个旧的key定义,等同于auth,已经不再建议使用。
2、level级别
level定义消息的紧急程度。按严重程度由高到低顺序排列为:
引用emerg -该系统不可用,等同panic
alert -需要立即被修改的条件
crit -阻止某些工具或子系统功能实现的错误条件
err -阻止工具或某些子系统部分功能实现的错误条件,等同error
warning -预警信息,等同warn
notice -具有重要性的普通条件
info -提供信息的消息
debug -不包含函数条件或问题的其他信息
none -没有重要级,通常用于排错
* 所有级别,除了none
其中,panic、error、warn均为旧的标识符,不再建议使用。
在定义level级别的时候,需要注意两点:
引用1)优先级是由应用程序在编程的时候已经决定的,除非修改源码再编译,否则不能改变消息的优先级;
2)低的优先级包含高优先级,例如,为某个应用程序定义info的日志导向,则涵盖notice、warning、err、crit、alert、emerg等消息。(除非使用=号定义)
3、selector选择条件
通过小数点符号"."把facility和level连接在一起则成为selector(选择条件)。
可以使用分号";"同时定义多个选择条件。也支持三个修饰符:
引用* - 所有日志信息
= - 等于,即仅包含本优先级的日志信息
! - 不等于,本优先级日志信息除外
4、action动作
由前面选择条件定义的日志信息,可执行下面的动作:
引用file-指定日志文件的绝对路径,默认为直接写入磁盘文件;但可以在路径前加上"减号" ,表示先放到缓存中,达到一定数量后再写入磁盘,这样能提高性能;但若期间机器出现问题,这些日志数据可能会丢失;因此,只建议用于日志数量大,但非必要的日志文件中,例如mail 等。
terminal 或 print -发送到串行或并行设备标志符,例如/dev/ttyS2
@host -远程的日志服务器
username -发送信息本机的指定用户信息窗口中,但该用户必须已经登陆到系统中
named pipe -发送到预先使用 mkfifo 命令来创建的 FIFO 文件的绝对路径
※注意,不能通过"|/var/xxx.sh"方式导向日志到其他脚本中处理。
5、举例
例如:
引用*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages
#把除邮件、新闻组、授权信息、计划任务等外的所有通知性消息都写入messages文件中。
mail,news.=info -/var/adm/info
#把邮件、新闻组中仅通知性消息写入info文件,其他信息不写入;并且先放到缓存中,累积到一定程度后再写入文件。
mail.*;mail.!=info /var/adm/mail
#把邮件的除通知性消息外都写入mail文件中,。
mail.=info /dev/tty12
#仅把邮件的通知性消息发送到tty12终端设备
*.alert root,joey
#如果root和joey用户已经登陆到系统,则把所有紧急信息通知他们
*.* @finlandia
#把所有信息都导向到finlandia主机(通过/etc/hosts或dns解析其IP地址)
※注意:每条消息均会经过所有规则的,并不是唯一匹配的。
也就是说,假设mail.=info信息通过上面范例中定义的规则时,/var/adm/info、/var/adm/mail、/dev/tty12,甚至finalandia主机都会收到相同的信息。这样看上去比较烦琐,但可以带来的好处就是保证了信息的完整性,可供不同地方进行分析。
6、测试
部分情况下,上述规的实际执行结果和定义的预想结果可能会有出入。这时,可使用logger程序辅助测试:
# logger -p user.notice 'Hello World!'
日志显示:
引用Nov 12 13:40:04 dc5test root: Hello World!
其表示意思如下:
引用第一列:日志产生时间
第二列:产生此日志的主机名称
第三列:产生此日志的应用程序或用户名称
第四列:日志信息
7、自定义日志级别
正如前面所说的,应用程序的日志级别是由应用程序所决定的。部分应用程序可通过配置,定义其日志级别。
例如,/etc/ssh/sshd_config文件中就有:
引用#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO
把sshd的日志定义在authpriv.info级别。配合syslog.conf中的:
引用authpriv.* /var/log/secure
则日志文件被写入/var/log/secure文件中。
◎我们修改为:
引用SyslogFacility local0
配合在syslog.conf中增加:
引用local0.* /var/log/sshd.log
保存后,重新启动sshd或syslog服务,则以后sshd服务的所有日志都会单独的放到sshd.log文件中了。
三、设置服务参数
默认情况下,syslog进程是不能接受其他日志服务器发过来的消息的。而通过修改其启动参数,可实现日志的大集中功能。
修改/etc/sysconfig/syslog文件:
引用-r : 打开接受外来日志消息的功能,其监控514 UDP端口;
-x : 关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦;
-m : 修改syslog的内部mark消息写入间隔时间(0为关闭),例如240为每隔240分钟写入一次"--MARK--"信息;
-h : 默认情况下,syslog不会发送从远端接受过来的消息到其他主机,而使用该选项,则把该开关打开,所有接受到的信息都可根据syslog.conf中定义的@主机转发过去。
通过man syslogd可获得更详细的帮助,而具体到实际配置文件为:
引用SYSLOGD_OPTIONS="-r-x-m 0"
保存后,重启服务即可:
# service syslog restart
此时,客户机只要通过修改syslog.conf,定义动作为@主机或IP,即可发送日志信息到本服务器中。
(在构建集中的日志服务器时,请务必配合ntp时间服务,以保证信息的有效性,避免不必要的麻烦)
另外,/etc/sysconfig/syslog配置文件中,还定义有klogd服务的启动参数:
引用KLOGD_OPTIONS="-x"
详细帮助,请参考man 8 klogd或man klogd。
四、参考
http://www.rhce.com.tw/rhel/syslog/
http://blog.chinaunix.net/u1/33592/showart_351061.html
http://server.it168.com/server/2007-10-28/200710281631265_1.shtml
http://linux.tcpip.com.cn/article/index.php?func=detail&par=3&parentid=2438&start=96&s=0
一、配置文件
以红旗DC Server 5.0为例,默认的日志服务器就是sysklog套件:
引用# rpm -qa|grep sysklogd
sysklogd-1.4.1-26_EL
其主要的配置文件有两个:
引用/etc/sysconfig/syslog
这里定义syslog服务启动时可加入的参数。
引用/etc/syslog.conf
这个是syslog服务的主要配置文件,根据定义的规则导向日志信息。
二、设置主配置文件
/etc/syslog.conf根据如下的格式定义规则:
引用facility.level action
设备.优先级 动作
facility.level 字段也被称为seletor(选择条件),选择条件和动作之间用空格或tab分割开。
#号开头的是注释,空白行会自动跳过。
1、facility
facility定义日志消息的范围,其可使用的key有:
引用auth -由 pam_pwdb 报告的认证活动。
authpriv -包括特权信息如用户名在内的认证活动
cron -与 cron 和 at 有关的计划任务信息。
daemon -与 inetd 守护进程有关的后台进程信息。
kern -内核信息,首先通过 klogd 传递。
lpr -与打印服务有关的信息。
mail -与电子邮件有关的信息
mark - syslog内部功能用于生成时间戳
news -来自新闻服务器的信息
syslog -由 syslog 生成的信息
user -由用户程序生成的信息
uucp -由 uucp 生成的信息
local0-local7 -与自定义程序使用
* 通配符代表除了 mark 以外的所有功能
除mark为内部使用外,还有security为一个旧的key定义,等同于auth,已经不再建议使用。
2、level级别
level定义消息的紧急程度。按严重程度由高到低顺序排列为:
引用emerg -该系统不可用,等同panic
alert -需要立即被修改的条件
crit -阻止某些工具或子系统功能实现的错误条件
err -阻止工具或某些子系统部分功能实现的错误条件,等同error
warning -预警信息,等同warn
notice -具有重要性的普通条件
info -提供信息的消息
debug -不包含函数条件或问题的其他信息
none -没有重要级,通常用于排错
* 所有级别,除了none
其中,panic、error、warn均为旧的标识符,不再建议使用。
在定义level级别的时候,需要注意两点:
引用1)优先级是由应用程序在编程的时候已经决定的,除非修改源码再编译,否则不能改变消息的优先级;
2)低的优先级包含高优先级,例如,为某个应用程序定义info的日志导向,则涵盖notice、warning、err、crit、alert、emerg等消息。(除非使用=号定义)
3、selector选择条件
通过小数点符号"."把facility和level连接在一起则成为selector(选择条件)。
可以使用分号";"同时定义多个选择条件。也支持三个修饰符:
引用* - 所有日志信息
= - 等于,即仅包含本优先级的日志信息
! - 不等于,本优先级日志信息除外
4、action动作
由前面选择条件定义的日志信息,可执行下面的动作:
引用file-指定日志文件的绝对路径,默认为直接写入磁盘文件;但可以在路径前加上"减号" ,表示先放到缓存中,达到一定数量后再写入磁盘,这样能提高性能;但若期间机器出现问题,这些日志数据可能会丢失;因此,只建议用于日志数量大,但非必要的日志文件中,例如mail 等。
terminal 或 print -发送到串行或并行设备标志符,例如/dev/ttyS2
@host -远程的日志服务器
username -发送信息本机的指定用户信息窗口中,但该用户必须已经登陆到系统中
named pipe -发送到预先使用 mkfifo 命令来创建的 FIFO 文件的绝对路径
※注意,不能通过"|/var/xxx.sh"方式导向日志到其他脚本中处理。
5、举例
例如:
引用*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages
#把除邮件、新闻组、授权信息、计划任务等外的所有通知性消息都写入messages文件中。
mail,news.=info -/var/adm/info
#把邮件、新闻组中仅通知性消息写入info文件,其他信息不写入;并且先放到缓存中,累积到一定程度后再写入文件。
mail.*;mail.!=info /var/adm/mail
#把邮件的除通知性消息外都写入mail文件中,。
mail.=info /dev/tty12
#仅把邮件的通知性消息发送到tty12终端设备
*.alert root,joey
#如果root和joey用户已经登陆到系统,则把所有紧急信息通知他们
*.* @finlandia
#把所有信息都导向到finlandia主机(通过/etc/hosts或dns解析其IP地址)
※注意:每条消息均会经过所有规则的,并不是唯一匹配的。
也就是说,假设mail.=info信息通过上面范例中定义的规则时,/var/adm/info、/var/adm/mail、/dev/tty12,甚至finalandia主机都会收到相同的信息。这样看上去比较烦琐,但可以带来的好处就是保证了信息的完整性,可供不同地方进行分析。
6、测试
部分情况下,上述规的实际执行结果和定义的预想结果可能会有出入。这时,可使用logger程序辅助测试:
# logger -p user.notice 'Hello World!'
日志显示:
引用Nov 12 13:40:04 dc5test root: Hello World!
其表示意思如下:
引用第一列:日志产生时间
第二列:产生此日志的主机名称
第三列:产生此日志的应用程序或用户名称
第四列:日志信息
7、自定义日志级别
正如前面所说的,应用程序的日志级别是由应用程序所决定的。部分应用程序可通过配置,定义其日志级别。
例如,/etc/ssh/sshd_config文件中就有:
引用#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO
把sshd的日志定义在authpriv.info级别。配合syslog.conf中的:
引用authpriv.* /var/log/secure
则日志文件被写入/var/log/secure文件中。
◎我们修改为:
引用SyslogFacility local0
配合在syslog.conf中增加:
引用local0.* /var/log/sshd.log
保存后,重新启动sshd或syslog服务,则以后sshd服务的所有日志都会单独的放到sshd.log文件中了。
三、设置服务参数
默认情况下,syslog进程是不能接受其他日志服务器发过来的消息的。而通过修改其启动参数,可实现日志的大集中功能。
修改/etc/sysconfig/syslog文件:
引用-r : 打开接受外来日志消息的功能,其监控514 UDP端口;
-x : 关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦;
-m : 修改syslog的内部mark消息写入间隔时间(0为关闭),例如240为每隔240分钟写入一次"--MARK--"信息;
-h : 默认情况下,syslog不会发送从远端接受过来的消息到其他主机,而使用该选项,则把该开关打开,所有接受到的信息都可根据syslog.conf中定义的@主机转发过去。
通过man syslogd可获得更详细的帮助,而具体到实际配置文件为:
引用SYSLOGD_OPTIONS="-r-x-m 0"
保存后,重启服务即可:
# service syslog restart
此时,客户机只要通过修改syslog.conf,定义动作为@主机或IP,即可发送日志信息到本服务器中。
(在构建集中的日志服务器时,请务必配合ntp时间服务,以保证信息的有效性,避免不必要的麻烦)
另外,/etc/sysconfig/syslog配置文件中,还定义有klogd服务的启动参数:
引用KLOGD_OPTIONS="-x"
详细帮助,请参考man 8 klogd或man klogd。
四、参考
http://www.rhce.com.tw/rhel/syslog/
http://blog.chinaunix.net/u1/33592/showart_351061.html
http://server.it168.com/server/2007-10-28/200710281631265_1.shtml
http://linux.tcpip.com.cn/article/index.php?func=detail&par=3&parentid=2438&start=96&s=0
日志
信息
文件
服务
消息
条件
配置
程序
服务器
优先级
级别
主机
功能
应用程序
系统
应用
选择
动作
用户
邮件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
编程软件开发视频教程
数据库sql语句类型
4g网络技术需要卫星吗
华为云服务器ip在哪查找
软件开发时间一般多久
查询数据库是否坏了
服务器如何布置应用软件
英语网络安全议论文
我的世界服务器死亡不掉落怎么关
常州网站建设服务器
服务器的并发性能
日语网络技术
线路服务器
青岛上海网络技术有限公司
恒捷互联网科技有限公司招聘
计算机应用软件开发英文翻译
网络安全的作文开头排比
网络安全十二条规定
数据库狼人杀
数据库access
山东综合软件开发报价表
如何维护网络安全多选题
广州银行软件开发怎么样
有关网络安全的口语对话
网络安全措施有哪些国家方面
民警讲网络安全
服务器上复制东西吗
2020网络技术应用知识点
深圳互联网软件开发费用是多少
激战2服务器怎么了