ameimeng 发表于 2018-12-22 11:40:30

Apache+PHP+mysql+syslog-ng+php-syslog-ng统一管理日志


  Apache+PHP+mysql+syslog-ng+php-syslog-ng统一管理日志


    1. 首先安装好LAMP这一个组合,在安装的过程中重点关注PHP的安装
  ./configure --prefix=/usr/local/php5 --enable-mbstring--with-apxs2=/usr/local/apache2/bin/apxs--with-mysql=/usr/local/mysql   --with-config-file-path=/usr/local/php5 --with-zlib
  make ;make install
  安装完成后:
  cp php-dist.ini /usr/localphp5/php.ini
  vi /usr/localphp5/php.ini
  修改:session.save_path = "/tmp"
  apachectl restart
Installation syslog-ng
下载php-syslog-ng
官方地址:http://sourceforge.net/projects/php-syslog-ng/
在解压路径找到作者提供的数据库模板,将其导入数据库,操作如下:
shell> mysql -uroot -p syslog< /your/tar/path/install/dbsetup.sql
这里需要先建立syslog库
下载syslog-ng server & clinet,官方地址:http://www.balabit.com
Configure syslog-ng
安装日志服务端,如:
1.rpm -ivh syslog-ng-3.0.9-1.rhel5.i386.rpm
2.vi /syslog-ng/etc /syslog-ng.conf.
  source s_all {
internal();
unix-stream(&quot;/dev/log&quot;);
file(&quot;/proc/kmsg&quot; program_override(&quot;kernel&quot;));
      udp(
                ip(put.your.server.ip)
                port(514)
      );
      tcp(
                ip(put.your.server.ip)
                port(514)
      );
};
destination d_mysql {
  pipe(&quot;/var/log/mysql.pipe&quot;
  template(&quot;INSERT INTO logs
  (host, facility, priority, level, tag, datetime, program, msg)
  VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC',
  '$PROGRAM', '$MSG' );\n&quot;) template-escape(yes));
  };

log {
  source(s_all);
  destination(d_mysql);
  };
以上内容也可以从php-syslog-ng中获得如:/your/tar/path/scripts/syslog.conf
3.创建管道文件,此文件主要作用是把syslog-ng接收到的日志信息内容转移至数据库中去。
vi /scripts/syslog2myssql.sh
#!/bin/bash

if [ ! -e /var/log/mysql.pipe ]
then
      mkfifo /var/log/mysql.pipe
fi
while [ -e /var/log/mysql.pipe ]
do
      mysql -u syslogfeeder --password=PW_HERE syslog < /var/log/mysql.pipe >/dev/null
done
sh /scripts/syslog2myssql.sh &
/etc/init.d/syslog-ng restart
以上内容也可以从php-syslog-ng中获得如:/your/tar/path/scripts/syslog2mysql.sh
在做完这里以后,可以登录数据库查看syslogs.logs表,此表就是记录接收到的日志。
  Installation syslog-ng-client(Add a log client)
  rpm -ivh syslog-ng-client-3.0.9-1.rhel5.i386.rpm
  vi /opt/syslog-ng/etc/syslog-ng.conf
  destination d_logserver { udp(&quot;your.log.server.ip&quot;);};
  log {
  source(s_local);
  destination(d_logserver);
  };
  /etc/init.d/syslog-ng restart
Installation php-syslog-ng
下载php-syslog-ng
官方地址:http://code.google.com/p/php-syslog-ng/downloads/list?q=label:Deprecated
解压至apache的网页目录如:/usr/local/apache/htdocs/syslog
Chown –R daemon.daemon /usr/local/apache2/htdocs/syslog
在IE输入http://yourserverip/syslog/install
根据页面的要求及提示输入数据库的密码等完成安装
完后访问http://yourserverip/syslog/index.php
注:在此第一步对应的页面有红色警告的话最好是解决完后再前进,以免导致莫名其妙的错误码出现,另外需要保证config/config.php是空白而且对于启用apache的程序用户(daemon)需要有写的权限,不然打开页面的时候就只会停留在帮助页面上。
  至此大功告成。

页: [1]
查看完整版本: Apache+PHP+mysql+syslog-ng+php-syslog-ng统一管理日志