Nov 14

[原]使用php-syslog-ng查看syslog-ng的信息 晴

linuxing , 13:13 , 网络服务 » 性能监控 , 评论(26) , 引用(0) , 阅读(220553) , Via 本站原创 | |
   正如前面提到的,syslog-ng是可用于替代系统原来的sysklog日志服务器。其配置简单,并且支持多种不同的日志目的导向方式,包括mysql数据库。以下再配合php-syslog-ng套件,即可从浏览器实现日志的观察和过滤,相当方便。
演示环境:http://syslog.linuxfly.org
用户名和密码都是:demo
一、原理
要实现用php-syslog-ng查看syslog-ng的日志信息,需满足以下条件:
引用
1、配置syslog-ng,把指定的log信息insert到mysql数据库中;
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

编译及安装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

编译及安装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

※为兼容系统自带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/

※因为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

上述不是必须的,但作为建议选项。另外,新版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


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>

然后,重启apache:
# service httpd restart
内文分页: [1] [2] [3] [4]
YueMin
2009/06/17 11:26
拜读了楼主的此篇,如您所述步骤安装,在php-syslog-ng安装的最后一步:点击“View Site”后,浏览器上始终是如下的错误信息,请楼主不吝指导,先谢了

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
linuxing 回复于 2009/06/17 11:51
可能是版本问题吧。而且提示信息已经很明显了,看看对应的html_header.php是否存在,或权限是否有问题。
allen09
2009/03/30 13:42
版主
  怎么我安装了syslog-ng后我的514端口一直是打不开的阿?
linuxing 回复于 2009/03/30 15:39
使用lsof -i:514看看是否有应用占用了该端口,另外,看看日志中报什么错误信息?
alston
2009/03/23 17:51
版主
謝謝你提供的解決方向,我已經完全解決相關問題,(原來是 udp 514 被其他人關掉了...)
雖然會出現奇奇怪怪的 host,但是基本上運作都很正常
太感謝!!
linuxing 回复于 2009/03/23 23:45
能解决就好。^_^
alston
2009/03/04 17:59
版主你好
我確定"2.9.8k"這個版本運作2.5天後就會停止收集 syslog,這已經是我第二次遇到這個問題了。應該不是腳本的問題,因為在今天 11:30 分之前都還是正常運作,過了這個時間之後的 syslog 完全收不到,完全沒有變動任何軟硬體設定...
我用的 OS 版本是 CentOS 5.2,不知道您是否有遇到這種狀況。
還是說用舊版的 php-syslog-ng 就好呢? 真的蠻不好意思的,我實在找不到誰來問,只好一直麻煩您。若是方便的話是否可以跟您通 mail 呢?
我的 mail : weine814#gmail.com
謝謝您!
linuxing 回复于 2009/03/06 12:54
你好,我当初使用的是php-syslog-ng-2.9.3l版本,从写该博客日志开始到现在,一直都可以平稳运行,至今没有任何问题。但之后的版本我就没有再更新了,所以对于您提到的问题,我暂时无法给出意见咯。
就我对php-syslog-ng的理解,它仅是一个syslog-ng的前端而已,就是给方便查看日志提供了一个Web界面,没有什么太深奥的东西的。按道理来说,即使完全停止httpd服务,也不应该影响syslog-ng收集其他日志的功能的。因为,日志都是写入mysql中了。
建议您不要管php-syslog-ng,而是去看mysql中收集日志的情况,再不行,就干脆暂时不要写入mysql,然后看本机日志中是否有其他机器的日志。这应该不难排查的。
有问题,可发邮件到这里给我:emos#linuxfly.org
alston
2009/03/03 09:44
版主,您好,昨天有問您關於使用了三天後就收不到的狀況。承蒙您快速的回覆。
我單獨執行過 @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.
目前我先就目前狀況運作個一星期,若是發生同樣問題再向板主請教囉!!
一直打擾您真的是不好意思,先向您說聲謝謝,萬分感謝!!
linuxing 回复于 2009/03/03 10:15
好的,有问题欢迎再次交流。O(∩_∩)O哈哈~
alston
2009/03/02 12:04
我照著您的步驟已經完成設定,而且運作正常
可是用了三天後,就沒辦法收到 其他主機的syslog file,我檢查了各項 script 及 syslon-ng 、mysql daemons 都正常運作,但在 php-syslog-ng 首頁中host只能看到本機名稱,不知道是否有方法可以 debug.
希望您可以幫忙謝謝!!
linuxing 回复于 2009/03/02 13:42
看看是不是定时脚本出了问题?进去mysql里面看看日志是否存在?
日志研究
2008/09/28 09:29
请问这个东西的移植性怎么样?怎么用它来监控自己软件产生的日志?能否全部监控像ftp、samba、mysql等的日志呢?谢谢,希望指教,我正在做日志系统的开发
linuxing 回复于 2008/09/28 11:25
不是很明白你指的是那个软件?php-syslog-ng吗?
若是的话,你可以误会了,php-syslog-ng实际上就是一个用php写的B/S界面而已,其数据来源自syslog-ng,其没有太多的分析功能的,更加没有监控。排除出来的信息,需要人工进行分析工作。
至于你提到的监控软件产生的日志,一般ftp等软件只会把部分日志写入系统日志中,大部分的日志都会根据自己的定义的格式写入某些文件(或增加sql模块,写入数据库中等)。
关于日志分析的工具,建议你看看logwatch、awstats、cacti等利用perl来分析、监控的软件,相信对你有帮助的。
linuxfans Email
2008/08/10 12:02
楼主你好,我在安装php-syslog-ng 2.9.8总是在setp 4 时无法继续安装了,点击install CEMDB就不动了,不知道如何解决,请楼主帮帮我!
yincaichina@163.com
spookyzn Email
2008/07/23 17:38
请问syslogd和syslog-ng这2个进程可以并存吗?
还有就是如果用一台机器做log server. 使用syslogd接受远程主机日志, 使用log server上syslog-ng从/dev/log中读取数据写入数据库. 请问这种方式是否支持
linuxing 回复于 2008/07/23 17:39
按道理来说,syslogd和syslog-ng是可以并存的,因为syslog-ng可以指定端口。但因为默认端口是固定的,所以建议使用一个即可。并且,使用两个也是没必要的。
syslog-ng作为服务端,只是syslog发过来的日志流。
lingping Homepage
2008/06/17 09:12
请问楼主,你的日志设置是保存多少天呢?

我现在已全部导入mysql(有11台主机的日志),但不知如何设置轮转?

长此下去,用不了两个月,就要撑破我的硬盘;
linuxing 回复于 2008/06/17 10:36
我是每个月清空一次日志。在上面文章的最后部分,有关于scripts的脚本介绍,若你对php和perl有了解的话,可以看看。
drop-old-tables.php就是清空就日志表的脚本。
分页: 2/3 第一页 上页 1 2 3 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]