syslogng配置

摘要:
1Mar1320:32:56s061090.cm5moximoximosyslog ng有一个有趣的功能,即它支持目标中的程序,并支持对合格日志(如警报)的操作。如果不更改此配置,netstat将显示由syslog ng_WAIT导致的大量TIMESyslog ng支持模板模板的定义。以后可以修改模板,这非常方便。Syslog ng是syslogd的升级版本。它是由一家公司开发的。除了开源的免费版本,还有一个高级版本。有一篇好文章:对syslog-ng2.0开发者BalazsScheidler的独家采访。Rsyslog是最年轻的。作者希望构建一个日志系统来与syslog ng竞争。

绚丽也尘埃 » syslog-ng配置

syslog-ng配置

syslog-ng的配置非常简单直观,于是乎配置好看看怎么用它实时收集日志。有两台服务器,一台服务器盯着error_log文件,一旦发现其有新数据,立即将日志发到另一台收集服务器。

client服务器配置如下。

1
2
3
4
5
6
7
8
9
#将文件作为src
source s_blender_error_log {
file("/home/admin/kingso/logs/error_log_blender");
};
#收集到的日志发送给172.25.61.92
destination d_blender_error_log { tcp("172.25.61.92" port(514)); };
log { source(s_blender_error_log); destination(d_blender_error_log);};

server服务器配置如下。

01
02
03
04
05
06
07
08
09
10
11
#监听514端口
source s_kingso {
tcp(ip(0.0.0.0) port(514));
};
#设置输入文件及其相关的属性
destination d_kingso {
file("/home/admin/error.log" owner(admin) group(admin) perm(0755));
};
log { source(s_kingso); destination(d_kingso); };

最后收集到的日志如下。

1
Mar 13 20:32:56 s061090.cm5 moximoximoximoximoxi

syslog-ng有一个很有意思的功能,那就是在destination里面支持program,可以对符合条件的日志支持操作,比如报警等等。下面这个配置会将所有包含error的日志输出到一个指定的文件中。为了提高性能,建议这个程序从标准输入读入数据,如果没有数据就阻塞等待,不要轻易退出。

1
2
3
destination d_kingso {
program("grep error >> /tmp/eerroorr.log");
};

filter支持内容过滤,比如要把服务器上所有core信息都收集到一台服务器上,只要判断kern信息中是否有segfault就可以,配置如下。

1
2
3
4
filter f_kingso_core {
facility(kern) and
match("segfault" value("MESSAGE"));
}

如果要用syslog-ng收集大集群的日志,需要设置下max-connections这个参数,它的默认值是10,实在是太小了。如果不改这个配置,netstat会出现syslog-ng导致的大量TIME_WAIT。将其放大之后,可以算一下ESTABLISHED的链接数是不是和集群服务器数量相同。

syslog-ng服务器默认情况下收集到的日志是:”Apr 1 17:42:33 hostname blabla”。月份后面可能有一个空格(大于10号)也可能有两个空格(小于10号),这样对消息的切分就会有问题,这个时候必须通过template来规范消息的格式。syslog-ng支持定义一个template模版,以后的template都可以使用改模版,非常方便。下面这个配置就是program和file两个destination共用一个t_kingso模版。

1
2
3
4
5
6
template t_kingso { template("$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC\t$FULLHOST\t$MSGHDR$MSG\n"); };
destination d_kingso_blender {
program("exec python -u /home/henshao/log_monitor/log_monitor.py -c /home/henshao/log_monitor/log_monitor.conf -m blender >> /tmp/log_monitor.log 2>&1" template(t_kingso) );
file( "/home/admin/logs/blender.log.$S_YEAR-$S_MONTH-$S_DAY" create_dirs(yes) owner(admin) group(admin) perm(0755) template(t_kingso) );
};

我发现RHEL5上默认安装了syslogd、syslog-ng和rsyslog。syslogd历史最为悠久,wikipedia上的资料上讲它当初是sendmail项目的一部分,因为非常有用,所以逐渐成为所有unix-like系统的标准组件。syslog-ng则是syslogd的升级版本,是一个公司开发的,除了开源免费版还有收费的高级版,有一篇不错的文章: 专访syslog-ng 2.0开发人员Balazs Scheidler。rsyslog则最为年轻,作者想做一个log系统和syslog-ng竞争。

推荐一些不错的资料。

1、Syslog-ng

2、syslog-ng v2.0 reference manual

免责声明:文章转载自《syslogng配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇集合(上) Colection方法 并发修改异常sdk manager闪退下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

运行 FreeSWITCH

读到本章,你应该对 FreeSWITCH 有了一个比较全面的了解,迫切地想实验它强大的功能了。让我们从最初的运行开始,一步一步进入 FreeSWITCH 的神秘世界。 命令行参数 一般来说,FreeSWITCH 不需要任何命令行参数就可以启动,但在某些情况下,你需要以一些特殊的参数启动。在此,仅作简单介绍。如果你知道是什么意思,那么你就可以使用,如果...

rm命令删除文件时排除特定文件

删除文件时排除特定文件 www.python  tab.com/html/2013/linuxkaiyuan_0205/214.html 删除当前目录下所有 *.txt文件,除了test.txt 1 2 3 4 5 6 7 8 rm `ls *.txt|egrep -v test.txt` #或者 rm `ls *.txt|awk '{if(...

adb logcat 基本用法

入门android ,至少需要了解 adb 吧,那么打 log 也是必不可少的了。 下面简单介绍一下 adb logcat 基本用法: Usage: logcat [options] [filterspecs]options include:  -s              Set default filter to silent.           ...

go第三方日志系统-seelog-Basic sections

https://github.com/cihub/seelog 文档学习:https://github.com/cihub/seelog/wiki 1.安装: go get github.com/cihub/seelog 2.快速启动 Seelog的设计非常方便。它的默认配置和包级别的日志记录器是现成的,所以开始你只需要两行代码: package main...

js如何读写txt文件?(曲线救国篇)

。emmm,不存在的。做不到的。 但是,你可以继续往下阅读,或许能实现你想要的功能。 前言:一般我们需要用js来实现文件读写,都是一些比较小的,离线的应用(因为如果可以联网,什么json什么db都任意操作再也没那么多麻烦事情了)。 但是,就是只能离线,还就想要把js运行过程中生产的数据保存到文本文件中,要怎么办呢? js是不能直接读写文件的。我先下面要介绍...

logging获取日志

获取日志并保存有两种写法,分别如下 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019-07-03 16:36 # @File : logging_test.py ''' logging获取日志 longging模块包括logger,Handler,Filter,Formatter lo...