日志SYSLOGD_OPTIONS 参数

SYSLOGD_OPTIONS 参数

l  在“SYSLOGD_OPTIONS”行上加“-r”选项以允许接受外来日志消息。

l  -s ip 表示只允许接收来自指定ip的日志消息,提高安全性。多个ip之间使用冒号分隔,例如:SYSLOGD_OPTIONS=’-r -s 192.168.0.2:192.168.0.3′ 

l  -x 表示禁止中央日志服务器解析远程主机的FQDN(fully qualified domain name,完整域名)。默认情况下,当有其他机器向自己发送日志消息时,中央日志服务器将尝试解析该机器的FQDN。如果syslog守护进程无法解析出那个地址,它将继续尝试,这种毫无必要的额外负担将大幅降低日志记录工作的效率,应该禁止。

l  -m 0表示给日志添加– MARK –标记,0表示关闭标记。举例,-m 240,表示每隔240分钟(每天6次)在日志文件里增加一行时间戳消息。日志文件里的“–MARK–”消息可以让你知道中央日志服务器上的syslog守护进程没有停工偷懒。

=========================================================================

rsyslog可以理解为增强版的syslog,在syslog的基础上扩展了很多其他功能,如数据库支持(Mysql, PostgreSQL、Oracle等)、日志内容筛选、定义日志格式模板等。除了默认的udp协议外,rsyslog还支持tcp协议来接收日志。
安装过程比较简单,需要注意的是Version 6以上需要libestr>=0.1.2和libee-0.1.2支持。装完这两个库之后,在编译rsyslog可能来还会报错找不到libestr或libee。这里我们需要手工来指定PKG_CONFIG_PATH, 如果你安装libestr和libee没有特别指定过路径,默认如下

1

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ ./configure
--prefix=/usr/local/rsyslog --enable-mysql

安装好了之后,我们可以用它来替代系统自带的syslog。步骤也很简单:
1. 将安装包下的rsyslog.conf拷贝到/etc下面
2. 修改syslog的启动脚本/etc/init.d/syslog,把其中的sbin修改为rsyslog的路径,conf路径修改为rsyslog.conf的路径。当然如果你对自己的操作没把握的话,也可以拷贝/etc/init.d/syslog到/etc/init.d/rsyslog,单独建个启动脚本,这样即使rsyslog没装好,也不会影响原先的syslog。

rsyslog功能很丰富,我只测了一部分,但这已经能够满足我的需求

a. mysql支持
rsyslog很多功能都是以模块的形式实现的,比如这个mysql支持,首先在编译的时候我们必须将这个模块编译进去,然后在/etc/rsyslog.conf加载”$ModLoad ommysql“,然后在指定哪些日志需要存放在数据里。在使用mysql模块前,我们需要手工建库、定义表,这些步骤手册里都有详细说明,操作起来也不难。

b. filter(日志筛选)
filter是rsyslog的一大亮点,通常情况下,我们并不是所有的日志都要收集,比如我们只需要error以下级别的日志、或者我们再要包含特定内容的日志。灵活运用filter我们可以很轻易地实现这些需求。下面举几个例子,使用方法手册里有详细介绍:

1
2

:msg, contains,

"test_message"
 
/
var/log/test.log

&~

如果日志内容包含”test_message”就存放在/var/log/test.log中,”&~”的意思是丢弃,不做后续处理。即使后面还有”:msg, contains, “test_message” /var/log/test2.log”,这条日志也不会再存在test2.log中。

1
2

if

$msg

contains

'test_message'

then /
var/log/test.log

&~

上面的例子的另一种写法,用if的好处是可以定义一些复杂的条件匹配
filter非常的实用,syslog中仅仅定义的local0~local7几个用户自定义的facility。使用filter我们轻松解决自定义facility不够用的问题

c. template
使用template定义日志格式模板,可以规范不通的类型的日志,很方便我们查看,使用起来也很简单,但是template的定义必须放在rsyslog.conf的顶端。

1
2

$template

myFormat,
"%timestamp% 
%hostname%  %pri-text% 
%msg%\n"

$ActionFileDefaultTemplate

myFormat

第一行我们定义了一个名为myFormat的模板,第二行的意思是把我们定义的myFormat作为rsyslog的默认模板。如果只是需要在特定日志上套用这个模板可以这样写

1


$template

myFormat,
"%timestamp% 
%hostname%  %pri-text% 
%msg%\n"
;Format

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92894

(1)
野人斯不拉古大师野人斯不拉古大师
上一篇 2018-03-26 17:31
下一篇 2018-03-26 17:47

相关推荐

  • Linux命令总结

      1、登陆和开关机       关机    halt    poweroff    init 0    重启    reboot    init 6    shutdown    shutdown -r 重启    shutodwn -h 关机    shutdown -c 取消计划关机    shutdown +0 马上关机    +1 一分钟后关机  …

    2017-09-11
  • 防火墙之iptables使用

    一、防火墙简介           Firewall:防火墙,隔离工具;工作于主机或网络边缘,对于进出本主机或本网络的报文根据事先定义的检查规则作匹配检测,对于能够被规则匹配到的报文作出相应处理的组件;        软件防火墙(软件逻辑):一般寄生在操作系统…

    2017-06-18
  • 文件查找作业

    1、查找/var目录下属主为root,且属组为mail的所有文件 [root@wzc ~]# find /var/ -user root -a -group mail /var/spool/mail /var/spool/mail/root 2、查找/var目录下不属于root、…

    Linux干货 2016-08-15
  • class 11 压缩软件(二)、shell编程(三)和软件包管理(一)

    一、压缩软件(二) tar tar [OPTION]… (1) 创建归档     tar -c -f / PATH/TO/SOMEFILE .tar FILE…     tar cf…

    Linux干货 2016-08-21
  • linux软件包管理(开始上正菜了)

    linux程序包管理:     API:数据接口     ABI:应用程序二进制接口        库级别的虚拟化:             linux:wine    …

    Linux干货 2017-03-07