Nov 14

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

linuxing , 13:13 , 网络服务 » 性能监控 , 评论(26) , 引用(0) , 阅读(230129) , 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]
napfish
2008/04/03 17:45
安装php-syslog-ng的时候 界面上显示
Session save path  Not set, Unwriteable
这个怎么解决啊
linuxing 回复于 2008/04/08 15:28
应该是没有使用perl脚本修改参数吧。提示目录不正确。
qywang
2008/03/06 11:20
原来CEMDB.class这个文件有版本问题
检查安装排错文档,有提示去google的源码站下载
唉,还是要仔细啊。

感谢楼主的文章。
linuxing 回复于 2008/03/08 00:08
^_^,能解决就好。
qywang
2008/03/06 10:14
博主你好:我按照你的步骤安装php-syslog-ng

显示日志的时候会报
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /www/php-syslog-ng/html/includes/CEMDB.class.php on line 11
无法显示日志。
用php-syslog-ng生成的sql 在mysql执行到时可以select出数据。 在安装时我没有选择CEMDB。  能帮我解答一下吗
linuxing 回复于 2008/03/06 11:08
如果我没记错,CEMDB应该是和Cisco日志相关的东西,如果没有考虑把这些设备日志拿过来,那应该是不需要安装的。
至于您提到的报错,是否php-syslog-ng的版本不同?或配置上打开了CEMDB?
(php-syslog-ng不同版本的Bug挺多的,换个版本试试吧)
xxiao
2008/01/06 10:44
php-syslog-ng你有修改过吗?我装好的和你的不一样呢!表的选择和其他有点不一样..而且查询的时候有些时候一页只能显示二三条不能完整显示..不知道你这个是不是也这样..能提供你的这个php-syslog-ng吗?还有就是每天备份数据库为当天日期的你是用什么实现的?是计划任务之类的吗?希望能和你联系QQ:9529219
邮箱:9529219@qq.com或chfreedom@163.com
linuxing 回复于 2008/01/07 10:25
php-syslog-ng使用的是原来的版本,并没有修改过的。上面的日志中就有该版本的本地下载啊。
至于查询的时候,只能显示一两条记录,是否你在选择参数的时候,没有选中Include,而默认是Exclude的,所以会只有一些很少的记录咯。
那个每天备份数据库为当天日期的功能是软件中自带的,使用php实现的,用计划任务每天执行。部分系统,php在命令行脚本中允许会报错,解决了就可用。
要联系我,可联系这个邮箱:emos#linuxfly.org,QQ少用,暂时不提供了。
PPx
2008/01/03 16:28
有windows版本的,但是只限于client。
linuxing 回复于 2008/01/04 10:20
哦。很久没有研究过windows下的软件了。^_^
学习
2007/12/13 15:38
windows下也可以么?
奇怪你弹出的窗口怎么是windows ie呢?
linuxing 回复于 2007/12/17 10:44
windows的日志可以通过工具发送到syslog-ng服务器上,但syslog-ng本身是不能装在windows上的。(它只有bsd、linux等类unix版本)
若日志发送到syslog-ng服务器上,就可以用php-syslog-ng进行管理和监控了。
弹出窗口指的是我安装的界面吧?这个没关系啊,我是在windows通过ie去远程安装的,当然弹出窗口也是ie咯。
分页: 3/3 第一页 上页 1 2 3 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]