记一次rsyslog

最近看rsyslog在做一次日志收级的功能。

做法请参考老王blog

因为rsyslog是系统级的,所以在接收方要做一些必要的过滤

客户端(client)

1. 代码:

<?php
openlog
('yiitest', LOG_ODELAY|LOG_PID, LOG_USER); syslog(LOG_ERR, "this is a test:".memory_get_usage(true)); closelog();

2. rsyslog配置:

*.info  @server_ip:server_port

 

服务端(server):

1. rsyslog配置文件

#加载模型,这里用的udp
Module(load="imudp") #加载模板 string请参考rsyslog变量集 Template(name="msg" type="string" string="%HOSTNAME% %TIMESTAMP% %app-name% %msg:2:$%\n")
#增加一个规则 Ruleset(name
="analysis") {
  #主要是这里,有看到么。这个$app-name对应的是客户端代码openlog第一个参数,那么这样就可以很方便的过滤我们想接收的东西到指定的log文件
if $app-name == 'yiitest' then { action(type="omfile" File="/var/log/sdk.gtarcade.com.access.log" Template="msg") stop } } Input(type="imudp" port="514" ruleset="analysis")

 

你可能感兴趣的:(记一次rsyslog)