您的位置:首页 > 运维架构 > Linux

logger(二):linux下syslog & syslog-ng 详解

2016-01-12 17:19 603 查看
Linux下的sysylog与syslog-ng

一台服务器的日志对系统工程师来说是至关重要的,一旦服务器出现故障或被入侵,我们需要查看日志来定位问题的关键所在,所以说对于线上跑的服务器而言日志应该合理的处理及管理.下面来介绍下linux系统的syslog日志服务器.

一、syslog详解

1.1syslog简介

syslog 是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。UNIX的系统日志是通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。syslog 系统日志记录着linux系统启动及运行的过程中产生的信息, RHEL 5.x系统上默认自带了syslog 的配置文件是/etc/syslog.conf. syslog默认有两个守护进程,klogd,syslogd。klogd 进程是记录系统运行的过程中内核生成的日志,而在系统启动的过程中内核初始化过程中 生成的信息记录到控制台(/dev/console)当系统启动完成之后会把此信息存放到/var/adm或/var/log/目录下的信息文件中(messages.*)。一个典型的syslog记录包括生成程序的名字和一个文本信息。它还包括一个设备和一个优先级范围。 通过使用syslog.conf文件,可以对生成的日志的位置及其相关信息进行灵活的配置。

Syslogd 进程是记录非内核以外的信息: centos 6.x的syslogd被改名为rsyslogd,其默认的配置文件是/etc/rsyslog.conf

2.syslog配置详解:

该配置文件指明了syslogd守护程序记录日志的行为,该程序在启动时查询配置文件。该文件由不同程序或消息分类的单个条目组成,每个占一行。对每类消息提供一个选择域和一个动作域。

这些域由tab隔开:选择域指明消息的类型和优先级;动作域指明syslogd接收到一个与选择标准相匹配的消息时所执行的动作.

每个选择域都是由消息类型和优先级组成.当指明一个优先级时,syslogd将记录一个拥有相同或者更高优先级的消息。

Syslog.conf基本语法格式:

[facility].[priority] [action]

消息类型.优先级 动作域

2.1 Facility可以理解为日志来源或类别,消息类型

1. auth # 认证相关的

2. authpriv # 权限,授权相关的

3. cron # 任务计划相关的

4. daemon # 守护进程相关的

5. kern # 内核相关的

6. lpr # 打印相关的

7. mail # 邮件相关的

8. mark # 标记相关的

9. news # 新闻相关的

10. security # 安全相关的,与auth 类似

11. syslog # syslog自己的

12. user # 用户相关的

13. uucp # unix to unix cp 相关的

14. local0 到 local7 # 用户自定义使用

15. * # *表示所有的facility

2.2 priority优先级,从高到低

1.emerg/oanic # 会导致系统不可用的

2.alert # 必须马上处理的

3.crit # 比较严重的

4.err/error # 错误信息

5.warning/warn # 可能影响系统功能,需要提醒用户的重要事件

6.notice # 不影响正常功能,需要注意的消息

7.info # 一般信息

8.debug # 程序或系统的调试信息

9.* # 表示所有的日志级别

10.none # 跟* 相反,表示啥也没有

例如:“mail.*”将把所有优先级的消息都发送到操作动作指定的/var/log/mail文件里。使用“*”限定符与使用“debug”优先级的效果完全一样,后者也将把所有类型的消息发送到指定地点。

2.3 action表示日志记录位置

1. 系统上的绝对路径 # 普通文件 如: /var/log/xxx

2. | # 管道 通过管道送给其他的命令处理

3. 终端 # 终端 如:/dev/console

4. @HOST # 远程主机 如: @10.0.0.1

5. 用户 # 系统用户 如: root

6. * # 登录到系统上的所有用户,一般emerg级别的日志是这样定义的

2.4 一些例子:

1.mail.info /var/log/mail.log # 表示将mail相关的,级别为info及 info以上级别的信息记录到/var/log/mail.log文件中

2.auth.=info @10.0.0.1 # 表示将auth相关的,基本为info的信息记录到10.0.0.1主机上去,前提是10.0.0.1要能接收其他主机发来的日志信息

3.user.!=error # 表示记录user相关的,不包括error级别的信息

4.user.!error # 与user.error相反

5.*.info # 表示记录所有的日志信息的info级别

6.mail.* # 表示记录mail相关的所有级别的信息

7.*.* # 你懂的.

8.cron.info;mail.info # 多个日志来源可以用";" 隔开

9.cron,mail.info # 与cron.info;mail.info 是一个意思

10.mail.*;mail.!=info # 表示记录mail相关的所有级别的信息,但是不包括info级别的

11.uucp,news.crit /var/log/spooler #UUCP和news设备能产生许多外部消息。它把这些消息存到自己的日志(/var/log/spooler)中并把级别限为\"err\"或更高

12. **.emerg @linuxaid.com.cn #当一个紧急消息到来时,可能想让所有的用户都得到。也可能想让自己的日志接收并保存。

13.#kern.* /dev/console #有时syslogd将产生大量的消息。例如内核(\"kern\"设备)可能很冗长,用户很难看得清楚明了,那么用户可能想把内核消息记录到/dev/console中。表明内核日志记录被注释掉了

2.5 如下解析一下rhel5.x系统上自带的syslog的配置文件/etc/syslog.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

# 表示将所有facility的info级别,但不包括mail,authpriv,cron相关的信息,记录到 /var/log/messages文件

*.info;mail.none;authpriv.none;cron.none /var/log/messages

# 表示将权限,授权相关的所有基本的信息,记录到/var/log/secure文件中.这个文件的权限是600

authpriv.* /var/log/secure

# 表示将mail相关的所有基本的信息记录到/var/log/maillog文件中,可以看到路径前面有一个"-"

# "-" 表示异步写入磁盘,

mail.* -/var/log/maillog

# 表示将任务计划相关的所有级别的信息记录到/var/log/cron文件中

cron.* /var/log/cron

# 表示将所有facility的emerg级别的信息,发送给登录到系统上的所有用户

*.emerg *

# 表示将uucp及news的crit级别的信息记录到/var/log/spooler文件中

uucp,news.crit /var/log/spooler

# 表示将local7的所有级别的信息记录到/var/log/boot.log文件中,

# 上面说过local0 到local7这8个是用户自定义使用的,这里的local7记录的是系统启动相关的信息

local7.* /var/log/boot.log

如果需要重新启动syslog守护进程(/etc/syslog.conf的修改只有在syslog守护进程重新启动后才会生效),并且只想重新启动syslog守护进程而不是整个系统,在Red Hat Linux机器上,执行以下两条命令之一即可:/etc/rc.d/init.d/syslogstop;/etc/rc.d/init.d/syslogstart/etc/rc.d/init.d/syslogrestart

2.6 使用syslog接口

加载sys/syslog.h文件

openlog:打开日志设备,以供读取和写入,与文件系统调用的open类似;

syslog:写入日志,与文件系统调用的write类似;

closelog:关闭日志设备,与文件系统调用的close类似;

vsyslog:它和syslog功能一样,负责写入日志,只是参数格式不同。

(1)openlog函数

该函数的声明如下:

void openlog(const char *ident, int option, int facility);

此函数用来打开一个到系统日志记录程序的连接,打开之后就可以用syslog或vsyslog函数向系统日志里添加信息了。而closelog函数就是用来关闭此连接的。

第一个参数ident是一个标记,ident所表示的字符串将固定地加在每行日志的前面以标识这个日志,通常就写成当前程序的名称以作标记。

第二个参数 option一般是下列选项值取“与”运算(使用“|”表示,如“LOG_CONS | LOG_PID”)的结果:

LOG_CONS:如果送到system logger时发生问题,直接写入系统终端;

LOG_NDELAY:立即开启连接,通常连接是在第一次写入消息时才打开的;

LOG_PERROR:将消息也同时送到stderr设备;

LOG_PID:将进程PID含入所有消息中。

第三个参数facility指明记录日志的程序的类型,它主要具有如下几类日志类型:

LOG_AUTH :安全/授权消息

LOG_AUTHPRIV:安全/授权消息

LOG_CRON:时间守护进程(cron和at)专用

LOG_DAEMON:其它系统守护进程

LOG_KERN:核心消息

LOG_LOCAL0到LOG_LOCAL7:系统保留

LOG_LPR:printer子系统

LOG_MAIL:mail子系统

LOG_NEWS:USENET新闻子系统

LOG_SYSLOG:syslogd进程内部所产生的消息

LOG_USER(缺省):一般使用者缺省使用消息

LOG_UUCP:UUCP子系统

LOG_FTP:FTP子系统使用

(2)syslog函数

syslog函数的声明如下:

void syslog(int priority, const char * message, ...);

第一个参数是消息的紧急级别priority,第二个参数是消息及其格式,之后是格式对应的参数,如同C语言里面printf输出函数一样使用,具体的格式这里就不再详述,它不是本书介绍的重点。

这里还需要详细介绍一下第一个参数priority,它是由severity level和facility组成的。Facility已经在上面介绍了,下面介绍一下severity level,也就是消息的重要级别,它主要包括:

LOG_EMERG:紧急状况

LOG_ALERT:高优先级问题,比如说数据库崩溃等,必须要立即采取反应行动

LOG_CRIT:重要状况发生,比如硬件故障

LOG_ERR:错误发生

LOG_WARNING:警告发生

LOG_NOTICE:一般状况,需要引起注意

LOG_INFO:信息状况

LOG_DEBUG:调试消息

在实际使用中,如果我们的程序要使用系统日志功能,只需要在程序启动时使用openlog函数来连接syslogd程序,后面随时用syslog函数写日志就行了。

(3)closelog函数

相对上述2个函数来说,该函数非常简单,其声明如下:

void closelog( void );

值得注意的是,虽然该函数的使用和调用情况非常简单,但是是必不可少的,因为在Linux系统中,打开的日志也是资源,如果只使用openlog函数打开日志,而忘记使用closelog关闭日志的话,当打开的日志数量累积到一定程度,便会造成内存不足,从而引起系统问题。所以,提醒用户在使用中特别注意

3.syslog-ng配置详解:

syslog-ng (syslog-Next generation) 是syslog的升级版,syslog-ng有两个版本,一个是收费的,一个是开源的,那么作为syslog的下一代产品,功能是可想而知,肯定比syslog的功能强大的多,如

高性能 可靠的传输 支持多平台 高可靠性 众多的用户群体 强大的日志过滤及排序 事件标签和关联性 支持最新的IETF标准 等....

3.1 syslog-ng 的设计原则:

通过正规表达式协助,除支持原facitily/level方式,还支持内容过滤等以建立更好的消息过滤机制;

支持主机链,即使日志消息经过多重网络转发,仍可找到原发出主机的信息和整个消息链;

支持强大的自定义配置,并且清晰、明了。

开源版本的主页 http://www.balabit.com/network-security/syslog-ng/opensource-logging-system/overview

3.2 syslog-ng 安装:

1.rhel5.x的系统上安装方法:

yum install gcc*

cd /usr/src

wget http://www.balabit.com/downloads/files/syslog-ng/sources/3.2.4/source/eventlog_0.2.12.tar.gz
wget http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/3.3.5/source/syslog-ng_3.3.5.tar.gz
tar xvf eventlog_0.2.12.tar.gz

cd eventlog-0.2.12

./configure --prefix=/usr/local/eventlog

make

make install

cd /usr/src

tar xvf syslog-ng_3.3.5.tar.gz

cd syslog-ng-3.3.5

export PKG_CONFIG_PATH=/usr/local/eventlog/lib/pkgconfig

./configure --prefix=/usr/local/syslog-ng

make

make install

2.Ubuntu 2.6.x上的安装方法

Sudo apt-get install syslog-ng

3.3 syslog-ng 原理:

LOG STATEMENTS『SOURCES - FILTERS -DESTINATIONS』

消息路径 『消息源 - 过滤器 - 目的站』

也就是说,通过定义多个消息源,把匹配上若干个过滤器的消息导向到指定的目的地,从而组成一个消息路径。

3.4 syslog-ng 配置详解:

文件:$/etc/syslog-ng.conf

1. syslog-ng.conf文件里的内容有以下几个部分组成,

2. # 全局选项,多个选项时用分好";"隔开

3. options { .... };

4. # 定义日志源,

5. source s_name { ... };

6. # 定义过滤规则,规则可以使用正则表达式来定义,这里是可选的,不定义也没关系

7. filter f_name { ... };

8. # 定义目标

9. destination d_name { ... };

10. # 定义消息链可以将多个源,多个过滤规则及多个目标定义为一条链

11. log { ... };

12. 详解如下

13. ----------------------------------------------------------------

14. options { long_hostnames(off); sync(0); perm(0640); stats(3600); };

15. 更多选项如下

16. chain_hostnames(yes|no) # 是否打开主机名链功能,打开后可在多网络段转发日志时有效

17. long_hostnames(yes|no) # 是chain_hostnames的别名,已不建议使用

18. keep_hostname(yes|no) # 是否保留日志消息中保存的主机名称

19. use_dns(yes|no) # 是否打开DNS查询功能,

20. use_fqdn(yes|no) # 是否使用完整的域名

21. check_hostname(yes|no) # 是否检查主机名有没有包含不合法的字符

22. bad_hostname(regexp) # 可通过正规表达式指定某主机的信息不被接受

23. dns_cache(yes|no) # 是否打开DNS缓存功能

24. dns_cache_expire(n) # DNS缓存功能打开时,一个成功缓存的过期时间

25. dns_cache_expire_failed(n) # DNS缓存功能打开时,一个失败缓存的过期时间

26. dns_cache_size(n) # DNS缓存保留的主机名数量

27. create_dirs(yes|no) # 当指定的目标目录不存在时,是否创建该目录

28. dir_owner(uid) # 目录的UID

29. dir_group(gid) # 目录的GID

30. dir_perm(perm) # 目录的权限,使用八进制方式标注,例如0644

31. owner(uid) # 文件的UID

32. group(gid) # 文件的GID

33. perm(perm) # 文件的权限,同样,使用八进制方式标注

34. gc_busy_threshold(n) # 当syslog-ng忙时,其进入垃圾信息收集状态的时间一旦分派的对象达到这个数字,syslog-ng就启动垃圾信息收集状态。默认值是:3000。

35. gc_idle_threshold(n) # 当syslog-ng空闲时,其进入垃圾信息收集状态的时间一旦被分派的对象到达这个数字,syslog-ng就会启动垃圾信息收集状态,默认值是:100

36. log_fifo_size(n) # 输出队列的行数

37. log_msg_size(n) # 消息日志的最大值(bytes)

38. mark(n) # 多少时间(秒)写入两行MARK信息供参考,目前没有实现

39. stats(n) # 多少时间(秒)写入两行STATUS信息,默认值是:600

40. sync(n) # 缓存多少行的信息再写入文件中,0为不缓存,局部参数可以覆盖该值。

41. time_reap(n) # 在没有消息前,到达多少秒,即关闭该文件的连接

42. time_reopen(n) # 对于死连接,到达多少秒,会重新连接

43. use_time_recvd(yes|no) # 宏产生的时间是使用接受到的时间,还是日志中记录的时间;建议使用R_的宏代替接收时间,S_的宏代替日志记录的时间,而不要依靠该值定义。

44.

45. source s_name { internal(); unix-dgram("/dev/log"); udp(ip("0.0.0.0") port(514)); };

46.

47. file (filename) # 从指定的文件读取日志信息

48. unix-dgram (filename) # 打开指定的SOCK_DGRAM模式的unix套接字,接收日志消息

49. unix-stream (filename) # 打开指定的SOCK_STREAM模式的unix套接字,接收日志消息

50. udp ( (ip),(port) ) # 在指定的UDP端口接收日志消息

51. tcp ( (ip),(port) ) # 在指定的TCP端口接收日志消息

52. sun-streams (filename) # 在solaris系统中,打开一个(多个)指定的STREAM设备,从其中读取日志消息

53. internal() # syslog-ng内部产生的消息

54. pipe(filename),fifo(filename) # 从指定的管道或者FIFO设备,读取日志信息

55.

56. filter f_name { not facility(news, mail) and not filter(f_iptables); };

57. 更多规则函数如下

58. facility(..) # 根据facility(设备)选择日志消息,使用逗号分割多个facility

59. level(..) # 根据level(优先级)选择日志消息,使用逗号分割多个level,或使用“..”表示一个范围

60. program(表达式) # 日志消息的程序名是否匹配一个正则表达式

61. host(表达式) # 日志消息的主机名是否和一个正则表达式匹配

62. match(表达式) # 对日志消息的内容进行正则匹配

63. filter() # 调用另一条过滤规则并判断它的值

64. 定义规则的时候也可以使用逻辑运算符and or not

65.

66. destination d_name { file("/var/log/messages"); };

67. 更多动作如下

68. file (filename) # 把日志消息写入指定的文件

69. unix-dgram (filename) # 把日志消息写入指定的SOCK_DGRAM模式的unix套接字

70. unix-stream (filename) # 把日志消息写入指定的SOCK_STREAM模式的unix套接字

71. udp (ip),(port) # 把日志消息发送到指定的UDP端口

72. tcp (ip),(port) # 把日志消息发送到指定的TCP端口

73. usertty(username) # 把日志消息发送到已经登陆的指定用户终端窗口

74. pipe(filename),fifo(filename) # 把日志消息发送到指定的管道或者FIFO设备

75. program(parm) # 启动指定的程序,并把日志消息发送到该进程的标准输入

76.

77. log { source(s_name); filter(f_name); destination(d_name) };

3.5 syslog-ng.conf 例子:

1. options { long_hostnames(off); sync(0); perm(0640); stats(3600); };

2.

3. source src {

4. internal();

5. unix-dgram("/dev/log");

6. # 表示日志来源为本机udp的514端口,

7. udp(ip("0.0.0.0") port(514));

8. };

9.

10. filter f_iptables { facility(kern) and match("IN=") and match("OUT="); };

11.

12. filter f_console { level(warn) and facility(kern) and not filter(f_iptables)

13. or level(err) and not facility(authpriv); };

14.

15. filter f_newsnotice { level(notice) and facility(news); };

16. filter f_newscrit { level(crit) and facility(news); };

17. filter f_newserr { level(err) and facility(news); };

18. filter f_news { facility(news); };

19.

20. filter f_mailinfo { level(info) and facility(mail); };

21. filter f_mailwarn { level(warn) and facility(mail); };

22. filter f_mailerr { level(err, crit) and facility(mail); };

23. filter f_mail { facility(mail); };

24.

25. filter f_cron { facility(cron); };

26.

27. filter f_local { facility(local0, local1, local2, local3,

28. local4, local6, local7); };

29.

30. filter f_acpid_full { match('^acpid:'); };

31. filter f_acpid { level(emerg..notice) and match('^acpid:'); };

32.

33. filter f_acpid_old { match('^\[acpid\]:'); };

34.

35. filter f_netmgm { match('^NetworkManager:'); };

36.

37. filter f_messages { not facility(news, mail) and not filter(f_iptables); };

38. filter f_warn { level(warn, err, crit) and not filter(f_iptables); };

39. filter f_alert { level(alert); };

40.

41. destination console { pipe("/dev/tty10" owner(-1) group(-1) perm(-1)); };

42. log { source(src); filter(f_console); destination(console); };

43.

44. destination xconsole { pipe("/dev/xconsole" owner(-1) group(-1) perm(-1)); };

45. log { source(src); filter(f_console); destination(xconsole); };

46.

47. destination newscrit { file("/var/log/news/news.crit"

48. owner(news) group(news)); };

49. log { source(src); filter(f_newscrit); destination(newscrit); };

50.

51. destination newserr { file("/var/log/news/news.err"

52. owner(news) group(news)); };

53. log { source(src); filter(f_newserr); destination(newserr); };

54.

55. destination newsnotice { file("/var/log/news/news.notice"

56. owner(news) group(news)); };

57. log { source(src); filter(f_newsnotice); destination(newsnotice); };

58.

59. destination mailinfo { file("/var/log/mail.info"); };

60. log { source(src); filter(f_mailinfo); destination(mailinfo); };

61.

62. destination mailwarn { file("/var/log/mail.warn"); };

63. log { source(src); filter(f_mailwarn); destination(mailwarn); };

64.

65. destination mailerr { file("/var/log/mail.err" fsync(yes)); };

66. log { source(src); filter(f_mailerr); destination(mailerr); };

67.

68. destination mail { file("/var/log/mail"); };

69. log { source(src); filter(f_mail); destination(mail); };

70.

71. destination acpid { file("/var/log/acpid"); };

72. destination null { };

73. log { source(src); filter(f_acpid); destination(acpid); flags(final); };

74.

75. log { source(src); filter(f_acpid_full); destination(null); flags(final); };

76.

77. log { source(src); filter(f_acpid_old); destination(acpid); flags(final); };

78.

79. destination netmgm { file("/var/log/NetworkManager"); };

80. log { source(src); filter(f_netmgm); destination(netmgm); flags(final); };

81.

82. destination localmessages { file("/var/log/localmessages"); };

83. log { source(src); filter(f_local); destination(localmessages); };

84.

85. destination messages { file("/var/log/messages"); };

86. log { source(src); filter(f_messages); destination(messages); };

87.

88. destination firewall { file("/var/log/firewall"); };

89. log { source(src); filter(f_iptables); destination(firewall); };

90.

91. destination warn { file("/var/log/warn" fsync(yes)); };

92. log { source(src); filter(f_warn); destination(warn); };

93.

94. filter f_ha { facility(local5); };

95. destination hamessages { file(/var/log/ha); };

96. log { source(src); filter(f_ha); destination(hamessages); };

3.6 syslog-ng 的扩展项:

syslog-ng除了有全局选项参数外,不同的函数还可以定义其参数,其中包括:

1、扩展file的宏 引用

HOST 日志消息的源发主机名。如果日志消息穿过几个主机,并且chain_hostname()功能已经打开,就使用第一个主机名。

FACILITY :日志消息来自的日志设备

PRIOPRITY/LEVEL :日志消息的优先级

PROGRAM :发送日志消息的程序

YEAR :发送日志消息的年份,这个宏既可以指定日志消息送出的时间,也可以指定日志消息收到的时间。这由use_time_recvd()选项控制

MONTH :发送日志消息的月份

DAY :发送日志消息的日子

HOUR :小时

MIN : 分钟

SEC :秒

2、file的参数

例如:log_file_size()、sync()、owner()、perm()等,请参考上面的全局设定

3、tcp和upd的参数 引用

ip(xxx.xxx.xxx.xxx): 定义绑定的IP地址

port(n):定义绑定的端口

max-connections(n) : 定义最大连接数

※TCP基于连接方式传输,不会造成日志丢失,而UDP则不同。但因为传统的syslog基于UDP的514端口,所以,UDP方式也经常会使用到。

另外,514也是rshell的默认端口,请注意冲突。

举例:

destination d_mail { file("/var/log/maillog" sync(10)); };

这里定义的sync(10)会覆盖全局配置,表示若写入的日志数量达到10,才写入maillog文件。

3.6 syslog-ng 的扩展项template选项用法:

1.例1:設定存入資料庫的目的:

destination d_mysql {pipe("/tmp/mysql.pipe"template("INSERT INTO logs (host, facility, priority, level, tag, date, time, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") template-escape(yes));};

#temple定义输出格式(时间,日志级别,信息),具体参考file宏

2.例2:

template ws_fmt {template("$DATE $PRIORITY $MSG\n"); template_escape(no); };

3.7 syslog-ng 关于垃圾收集状态:

当满足一定的条件,syslog-ng即会进入垃圾收集状态,而暂时不再接受日志信息。这时,会造成非连接的传输协议的日志丢失(例如UDP)。通过设置下面两个选项可以控制:

gc_idle_threshold(n) :

意思是,一旦被分派的对象到达这个数字,并且当syslog-ng空闲时(100微秒内没有日志消息到达)。此时,syslog-ng就会启动垃圾信息收集状态。

已分配的对象可通过-v命令行参数指定其的最小值。而syslog-ng这个值应该比较小,但比已分配的对象要大即可。

例如,空闲状态,syslog-ng会显示:

Nov 13 16:35:35 syslogng syslog-ng[4510]: STATS: dropped 0

Nov 13 16:45:35 syslogng syslog-ng[4510]: STATS: dropped 0

当忙时:

gc_busy_threshold(n) :当syslog-ng忙时,一旦分派的对象达到这个数字,syslog-ng就进入垃圾信息收集状态的时间。该值应该比较高,以保证正常情况下不会打断日志消息的收取。

3.8 使用方法及案例:

如:

1.安装:ubuntu下安装方法: apt-get install syslog-ng

2.配置syslog-ng.conf文件,在目录:/etc/syslog-ng/syslog-ng.conf

3.将配置好的syslog-ng.conf替换源文件

4.配置syslog-ng文件,在目录:/etc/logrotate.d/syslog-ng

5.启动log服务:/etc/init.d/syslog-ng restart

若不增加其他设定,可以通过下面的简单命令即可替换原syslog服务:

# service syslog stop

# service syslog-ng start

3.9 参考资料:

man syslog-ng.conf

man 8 syslog-ng
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: