php利用syslog函数分布式将log集中到中央log服务器

php利用syslog函数分布式将log集中到中央log服务器


使用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如何封装一下,优化一下。。这个也太简单了。。自己琢磨吧

你可能感兴趣的:(Date,PHP,优化,服务器,测试,variables)