Nov 14

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

linuxing , 13:13 , 网络服务 » 性能监控 , 评论(26) , 引用(0) , 阅读(230140) , Via 本站原创 | |


五、scripts中的脚本
对scripts目录中其他的文件讲解以下:
请留意,.sh结尾的是bash脚本,可直接执行;而.pl的是perl脚本,使用perl执行;而.php结尾的是php脚本,需使用php命令执行。(很奇怪,干嘛要这样做?)
1、logrotate.php
对php-syslog-ng中的表进行日志循环,其与系统的logrotate不同。该脚本的执行结果,是把每天的日志表备份起来,并创建一个新的日志表供读写。在crontab下,每天自动执行一次。

2、syslog2mysql.sh
该脚本是用于创建mysql的pipe管道,让syslog-ng可通过该管道写入mysql中。在crontab下,系统系统的时候自动运行。

3、reloadcache.php
该脚本的作用是,当有新的host加入syslog-ng后,更新mysql中的信息。在crontab下,每5分钟运行一次。

4、resetusers.sh
用于重置用户表,当忘记admin密码的时候,可运行它。重置后,管理员用户名和密码都是admin。

5、drop-old-tables.php
当php-syslog-ng运行一段时间后,由logrotate.php可能会产生大量的旧日志表。使用这个脚本,可删除具有相同前缀的表,例如logs_*等,可方便管理。

6、dbgen.pl
该脚本用于产生一些演示数据,在测试php-syslog-ng是否正常时可以运行,其会插入大量数据到mysql中。
因其使用perl编写,故需要使用Net::MySQL模块。
安装模块及运行:
# mkdir /usr/lib/perl5/site_perl/5.8.5/Net
# cp MySQL.pm /usr/lib/perl5/site_perl/5.8.5/Net/
# /var/www/html/php-syslog-ng/scripts/dbgen.pl

示例:
点击在新窗口中浏览此图片
※注意:这个脚本只是演示而已,实际没什么用的。而官方提供的crontab文件里是每小时执行一次的,应把它删掉。

五、其他
1、不能显示图形
点击"Graph"的时候,报错:
引用
JpGraph Error Font file "/usr/share/fonts/corefonts/verdana.ttf" is not readable or does not exist.

原因是,新版的php-syslog-ng考虑到旧版字库版权的问题,使用了verdana.ttf字库。而当前系统目录该字库。
解决办法:
1)从Windows\Fonts目录中拷贝到上述的路径即可;
2)从下面下载,并放到上述目录下:

执行:
# mkdir -p /usr/share/fonts/corefonts
# cd /usr/share/fonts/corefonts/
# wget http://www.linuxfly.org/attachment/verdana.ttf.zip
# unzip verdana.ttf.zip
# rm -f verdana.ttf.zip

图例:
点击在新窗口中浏览此图片

2、Web安全问题
若您配置虚拟主机的时候,使用php-syslog-ng的根目录作为Web根目录,请小心scripts的安全问题。
应增加类似:
引用
<Directory "/var/www/phpsyslogng/scripts">
   Deny from all
</Directory>
<Directory "/var/www/phpsyslogng/config">
   Deny from all
</Directory>

※User Manual原文中有错,请不要把"/var/www/phpsyslogng/includes"屏蔽,否则会导致网页中调用日期函数错误的。

3、命令行执行php脚本的时候报错
报错信息如下:
引用
# php /var/www/html/php-syslog-ng/scripts/reloadcache.php >> /var/log/php-syslog-ng/reloadcache.log
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/oci8.so' - /usr/lib/php/modules/oci8.so: undefined symbol: OCINlsCharSetNameToId in Unknown on line 0

原因是oci8.so(php和Oracle的接口)不能在未定义前执行,这里也不会使用到该模块。
所以,请修改/etc/php.d/oci8.ini,改为:
引用
; extension=oci8.so

重启httpd服务即可。

◎若一定要使用该模块,可把执行命令的报错信息去掉,即改为:
# php /var/www/html/php-syslog-ng/scripts/reloadcache.php >> /var/log/php-syslog-ng/reloadcache.log 2>/dev/null

但这样就不能看到错误信息了。

六、参考资料
php-syslog-ng自带的INSTALL-STEPS和TROUBLESHOOTING-INSTALL
Help里提供的php-syslog-ng User Manual
http://www.mail-archive.com/php-syslog-ng-support@lists.sourceforge.net/msg00131.html
http://www.mail-archive.com/php-syslog-ng-support@lists.sourceforge.net/msg00126.html
http://blog.mllm.org/node/184

原文备份:
内文分页: [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
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]