Nov
14
[原]使用php-syslog-ng查看syslog-ng的信息
正如前面提到的,syslog-ng是可用于替代系统原来的sysklog日志服务器。其配置简单,并且支持多种不同的日志目的导向方式,包括mysql数据库。以下再配合php-syslog-ng套件,即可从浏览器实现日志的观察和过滤,相当方便。
演示环境:http://syslog.linuxfly.org
用户名和密码都是:demo
一、原理
要实现用php-syslog-ng查看syslog-ng的日志信息,需满足以下条件:
二、安装新版syslog-ng套件
为配合php-syslog-ng,并修复一些已经的Bug。建议升级syslog-ng套件。
系统平台:
红旗DC Server 5.0 for x86
1、获取源码包
可以从官方网站获取源码包。但我一直都建议尽量用rpm管理系统中的软件的,所以,我使用src.rpm咯。
Douglas E. Warner在www.silfreed.net提供了rhel 4的2.0.4版本rpm下载,和fedora的2.0.5下载。
我只是修改了其中一些配置文件,以适合红旗DC Server 5.0的情况。
源码包:
(其中,eventlog套件是编译syslog-ng的时候需要的)
2、编译及安装
解压:
编译及安装eventlog:
编译及安装syslog-ng:
※为兼容系统自带syslog-ng套件,该rpm包,已把原来的/etc/syslog-ng.conf路径修改为/etc/syslog-ng/syslog-ng.conf。
另外,编译时,还需依赖libnet包。虽然红旗上默认已经安装,但编译前请再次确认。
3、更新包下载
下面是我已经编译好的包:
三、安装php-syslog-ng
sourceforge地址:点击
官方网站:点击
最新版本下载地址:点击
本地下载:
1、解压
※因为php-syslog-ng中的scripts脚本会引用很多html中的配置,所以,请务必把php-syslog-ng中的html和scripts目录放在同一根目录下。否则,需手工修改源码。
2、修改php环境
为配合php-syslog-ng对php环境的要求,请修改/etc/php.in中的内容为:
上述不是必须的,但作为建议选项。另外,新版php-syslog-ng已在.htaccess中定义magic_quotes_gpc和register_globals选项,可不修改全局配置。
3、创建日志目录
4、加入apache虚拟主机
这部分,请根据您的apache实际情况操作。以我的系统为例,所有虚拟主机配置文件都放在/etc/httpd/conf目录中,以vhost开头的配置文件内。所以,在该目录加入文件内容:
# cat vhost_php-syslog-ng.conf
然后,重启apache:
演示环境:http://syslog.linuxfly.org
用户名和密码都是:demo
一、原理
要实现用php-syslog-ng查看syslog-ng的日志信息,需满足以下条件:
引用
1、配置syslog-ng,把指定的log信息insert到mysql数据库中;
2、配置apache和php,让php-syslog-ng可以从web浏览器使用。
2、配置apache和php,让php-syslog-ng可以从web浏览器使用。
二、安装新版syslog-ng套件
为配合php-syslog-ng,并修复一些已经的Bug。建议升级syslog-ng套件。
系统平台:
红旗DC Server 5.0 for x86
1、获取源码包
可以从官方网站获取源码包。但我一直都建议尽量用rpm管理系统中的软件的,所以,我使用src.rpm咯。
Douglas E. Warner在www.silfreed.net提供了rhel 4的2.0.4版本rpm下载,和fedora的2.0.5下载。
我只是修改了其中一些配置文件,以适合红旗DC Server 5.0的情况。
源码包:
下载文件
(其中,eventlog套件是编译syslog-ng的时候需要的)
2、编译及安装
解压:
# tar xzvf syslog-ng-2.0.5.src.tar.gz
# rpm -ivh eventlog-0.2.5-1.src.rpm
# rpm -ivh syslog-ng-2.0.5-1.src.rpm
# rpm -ivh eventlog-0.2.5-1.src.rpm
# rpm -ivh syslog-ng-2.0.5-1.src.rpm
编译及安装eventlog:
# cd /usr/src/asianux/RPMS/SPECS
# rpmbuild -bb eventlog.spec
# cd /usr/src/asianux/RPMS/i386/
# rpm -ivh eventlog-devel-0.2.5-1.i386.rpm eventlog-0.2.5-1.i386.rpm
# rpmbuild -bb eventlog.spec
# cd /usr/src/asianux/RPMS/i386/
# rpm -ivh eventlog-devel-0.2.5-1.i386.rpm eventlog-0.2.5-1.i386.rpm
编译及安装syslog-ng:
# cd /usr/src/asianux/RPMS/SPECS
# rpmbuild -bb syslog-ng.spec
# rpm -Uvh syslog-ng-2.0.5-2qk.i386.rpm syslog-ng-vim-2.0.5-2qk.i386.rpm
# rpmbuild -bb syslog-ng.spec
# rpm -Uvh syslog-ng-2.0.5-2qk.i386.rpm syslog-ng-vim-2.0.5-2qk.i386.rpm
※为兼容系统自带syslog-ng套件,该rpm包,已把原来的/etc/syslog-ng.conf路径修改为/etc/syslog-ng/syslog-ng.conf。
另外,编译时,还需依赖libnet包。虽然红旗上默认已经安装,但编译前请再次确认。
3、更新包下载
下面是我已经编译好的包:
下载文件
三、安装php-syslog-ng
sourceforge地址:点击
官方网站:点击
最新版本下载地址:点击
本地下载:
下载文件
1、解压
# mkdir /var/www/html/php-syslog-ng/
# tar xzvf php-syslog-ng-2.9.3l.tgz -C /var/www/html/php-syslog-ng/
# cd /var/www/html/php-syslog-ng/
# chown -R apache.apache html/
# tar xzvf php-syslog-ng-2.9.3l.tgz -C /var/www/html/php-syslog-ng/
# cd /var/www/html/php-syslog-ng/
# chown -R apache.apache html/
※因为php-syslog-ng中的scripts脚本会引用很多html中的配置,所以,请务必把php-syslog-ng中的html和scripts目录放在同一根目录下。否则,需手工修改源码。
2、修改php环境
为配合php-syslog-ng对php环境的要求,请修改/etc/php.in中的内容为:
引用
;display_errors = Off
display_errors = On
; magic_quotes_gpc = Off
magic_quotes_gpc = On
; memory_limit = 8M
memory_limit = 256M
; max_execution_time = 30
max_execution_time = 90
display_errors = On
; magic_quotes_gpc = Off
magic_quotes_gpc = On
; memory_limit = 8M
memory_limit = 256M
; max_execution_time = 30
max_execution_time = 90
上述不是必须的,但作为建议选项。另外,新版php-syslog-ng已在.htaccess中定义magic_quotes_gpc和register_globals选项,可不修改全局配置。
3、创建日志目录
# mkdir -p /var/log/httpd/php-syslog-ng
# mkdir -p /var/log/php-syslog-ng
# mkdir -p /var/log/php-syslog-ng
4、加入apache虚拟主机
这部分,请根据您的apache实际情况操作。以我的系统为例,所有虚拟主机配置文件都放在/etc/httpd/conf目录中,以vhost开头的配置文件内。所以,在该目录加入文件内容:
# cat vhost_php-syslog-ng.conf
引用
# PHP-SYSLOG-NG
<VirtualHost *:80>
ServerName syslog.linuxfly.org
ServerAdmin linuxing@linuxfly.org
DocumentRoot /var/www/html/php-syslog-ng/html
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/php-syslog-ng/html>
# pcw No directory listings
# Options Indexes FollowSymLinks MultiViews
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<Directory /var/www/html/php-syslog-ng/html/config>
Deny from all
</Directory>
ErrorLog /var/log/httpd/php-syslog-ng/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/httpd/php-syslog-ng/access.log combined
ServerSignature On
</VirtualHost>
<VirtualHost *:80>
ServerName syslog.linuxfly.org
ServerAdmin linuxing@linuxfly.org
DocumentRoot /var/www/html/php-syslog-ng/html
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/php-syslog-ng/html>
# pcw No directory listings
# Options Indexes FollowSymLinks MultiViews
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<Directory /var/www/html/php-syslog-ng/html/config>
Deny from all
</Directory>
ErrorLog /var/log/httpd/php-syslog-ng/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/httpd/php-syslog-ng/access.log combined
ServerSignature On
</VirtualHost>
然后,重启apache:
# service httpd restart
warning: require_once(includes/html_header.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/html/php-syslog-ng/html/includes/login.php on line 100
Fatal error: require_once() [function.require]: Failed opening required 'includes/html_header.php' (include_path='/usr/local/lib/php') in /var/www/html/php-syslog-ng/html/includes/login.php on line 100
怎么我安装了syslog-ng后我的514端口一直是打不开的阿?
謝謝你提供的解決方向,我已經完全解決相關問題,(原來是 udp 514 被其他人關掉了...)
雖然會出現奇奇怪怪的 host,但是基本上運作都很正常
太感謝!!
我確定"2.9.8k"這個版本運作2.5天後就會停止收集 syslog,這已經是我第二次遇到這個問題了。應該不是腳本的問題,因為在今天 11:30 分之前都還是正常運作,過了這個時間之後的 syslog 完全收不到,完全沒有變動任何軟硬體設定...
我用的 OS 版本是 CentOS 5.2,不知道您是否有遇到這種狀況。
還是說用舊版的 php-syslog-ng 就好呢? 真的蠻不好意思的,我實在找不到誰來問,只好一直麻煩您。若是方便的話是否可以跟您通 mail 呢?
我的 mail : weine814#gmail.com
謝謝您!
就我对php-syslog-ng的理解,它仅是一个syslog-ng的前端而已,就是给方便查看日志提供了一个Web界面,没有什么太深奥的东西的。按道理来说,即使完全停止httpd服务,也不应该影响syslog-ng收集其他日志的功能的。因为,日志都是写入mysql中了。
建议您不要管php-syslog-ng,而是去看mysql中收集日志的情况,再不行,就干脆暂时不要写入mysql,然后看本机日志中是否有其他机器的日志。这应该不难排查的。
有问题,可发邮件到这里给我:emos#linuxfly.org
我單獨執行過 @daily script,並沒有報錯。我功力實在不夠深不太會使用mysql,我只是到mysql 的目錄下檢查檔案,看起來都有正常被產生。
我檢查是否有正常收到其他主機的 syslog ,發現好像是都收不到。
我確認 udp 514 有開,各項daemons 正常運作。
後來我決定重來一次,我重裝了 OS、php-syslog-ng,一模一樣的環境,又可以正常運作了。我想可能是我前次安裝時又甚麼地方沒處理好吧!!
重點來了...我在網頁的右上角發現了一行文字 "The code you support today may turn out to be SkyNet tomorrow... " <---難道是被天網turn out 了嗎?? Oh!! my God ~~~該不會是要付費吧....
我的 php-syslog-ng 版本是 "2.9.8k" 最新 Release Version.
目前我先就目前狀況運作個一星期,若是發生同樣問題再向板主請教囉!!
一直打擾您真的是不好意思,先向您說聲謝謝,萬分感謝!!
可是用了三天後,就沒辦法收到 其他主機的syslog file,我檢查了各項 script 及 syslon-ng 、mysql daemons 都正常運作,但在 php-syslog-ng 首頁中host只能看到本機名稱,不知道是否有方法可以 debug.
希望您可以幫忙謝謝!!
若是的话,你可以误会了,php-syslog-ng实际上就是一个用php写的B/S界面而已,其数据来源自syslog-ng,其没有太多的分析功能的,更加没有监控。排除出来的信息,需要人工进行分析工作。
至于你提到的监控软件产生的日志,一般ftp等软件只会把部分日志写入系统日志中,大部分的日志都会根据自己的定义的格式写入某些文件(或增加sql模块,写入数据库中等)。
关于日志分析的工具,建议你看看logwatch、awstats、cacti等利用perl来分析、监控的软件,相信对你有帮助的。
yincaichina@163.com
还有就是如果用一台机器做log server. 使用syslogd接受远程主机日志, 使用log server上syslog-ng从/dev/log中读取数据写入数据库. 请问这种方式是否支持
syslog-ng作为服务端,只是syslog发过来的日志流。
我现在已全部导入mysql(有11台主机的日志),但不知如何设置轮转?
长此下去,用不了两个月,就要撑破我的硬盘;
drop-old-tables.php就是清空就日志表的脚本。