使用php的syslog函数,调用本地的syslog服务,然后从本地syslog发送到中央syslog服务器进行分析整理,配置如下
首先我们先写一个php的测试文件
<?php
define_syslog_variables();
openlog(“TextLog”, LOG_PID, LOG_LOCAL0);
$data = date(“Y/m/d H:i:s”);
syslog(LOG_DEBUG,”Messagge: $data”);
closelog();
?>
注意,我们用local0这个openlog所以在本地的syslog.conf中需配置local0具体配置如下
vi /etc/syslog.conf
local0.* @index-server
保存退出以后/etc/init.d/syslog restart
index-server是中央服务器的hostname也可以是IP地址
然后我们配置中央服务器的syslog
vi /etc/sysconfig/syslog
将SYSLOGD_OPTIONS=”-m 0″改成SYSLOGD_OPTIONS=”-m 0 -r”
存盘退出
vi /etc/syslog.conf
local0.* /var/log/php.log
#这里就是从各个机器打过来的log放在哪个文件里。。这个文件可能会比较大,建议对这个文件作每日存档
#还有local0.debug 可以打在/var/log/php_debug.log中类似这种。。。可以自由发挥。。
存盘退出以后/etc/init.d/syslog restart
在远端机执行t.php
Sep 2 04:17:58 app01 TextLog[2408]: Messagge: 2010/09/02 04:17:56
你看。。app01的log已经写入index-server的php.log文件中了!是不是很简单,很好用??至于t.php如何封装一下,优化一下。。这个也太简单了。。自己琢磨吧