> CentOS > CentOS服务器 > 环境配置 >

CentOS 6.5+Syslog-ng+LogZilla搭建中央日志服务器(5)



 

问题整理

报错

Unable to open 'lpd_graph.jpeg' for writing: Permission denied in /var/www/html/php-syslog-ng/html/includes/blocks/graph-logs_per_day.php on line 164

调整权限/var/www/html/php-syslog-ng/html/lpd_graph.jpeg权限为777

点击"Graph"的时候,报错:

JpGraph Error Font file "/usr/share/fonts/corefonts/verdana.ttf" is not readable or does not exist.

原因是,新版的php-syslog-ng考虑到旧版字库版权的问题,使用了verdana.ttf字库。而当前系统目录该字库。

解决办法:从Windows\Fonts目录中拷贝到上述的路径即可;

mkdir -p /usr/share/fonts/truetype/msttcorefonts/

上传文件

图例:

 

由于PHP版本过高,报错

Deprecated: Function split() is deprecated

将问题页面的plit("\n",$txt)方法替换为preg_split('/\n/',$txt)方法

Deprecated: Function ereg() is deprecated

将问题页面的ereg("\n",$txt)方法替换为preg_match('/\n/',$txt)方法

Deprecated: Function session_unregister()

替换为$_SESSION = NULL

 

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
logs表无数据,运行../php-syslog-ng/scripts/contrib/dbgen/dbgen.pl

# perl dbgen.pl

Can't locate Net/MySQL.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at dbgen.pl line 22.

BEGIN failed--compilation aborted at dbgen.pl line 22.

该脚本用于产生一些演示数据,在测试php-syslog-ng是否正常时可以运行,其会插入大量数据到mysql中。
因其使用perl编写,故需要使用Net::MySQL模块。
安装模块及运行:

# cp MySQL.pm /usr/lib64/perl5/Net/
#perl /var/www/html/php-syslog-ng/scripts/dbgen.pl

示例:


※注意:这个脚本只是演示而已,实际没什么用的。而官方提供的crontab文件里是每小时执行一次的,应把它删掉。

(责任编辑:IT)