ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 转载:使用php-syslog-ng查看syslog-ng的信息

转载:使用php-syslog-ng查看syslog-ng的信息

原创 Linux操作系统 作者:vcdone 时间:2008-06-17 09:44:04 0 删除 编辑

转载:http://www.linuxfly.org/post/172_1_1.htm

 

官方最新版本安装指南:http://nms.gdd.net/index.php/Installation_Guide

   

编者注:安装部分仅供参考,因系统环境而异,另外,php-syslog-ng因版本不同,一些脚本名称或用法也不同;原文中的所有图片未转载,图文并茂版本请查看原文:http://www.linuxfly.org/post/172_1_1.htm

 

    正如前面提到的,syslog-ng是可用于替代系统原来的sysklog日志服务器。其配置简单,并且支持多种不同的日志目的导向方式,包括mysql数据库。以下再配合php-syslog-ng套件,即可从浏览器实现日志的观察和过滤,相当方便。

 

一、原理

要实现用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的情况。

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、更新包下载

下面是我已经编译好的包: (略)

sourceforge地址http://sourceforge.net/projects/php-syslog-ng/

官方网站:http://freshmeat.net/redir/php-syslog-ng/33874/url_homepage/php-syslog-ng

最新版本下载地址:http://php-syslog-ng.gdd.net/current.tgz

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环境[/b] 为配合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    ServerName syslog.linuxfly.org    ServerAdmin linuxing@linuxfly.org

   DocumentRoot /var/www/html/php-syslog-ng/html           Options FollowSymLinks        AllowOverride All              # pcw No directory listings        # Options Indexes FollowSymLinks MultiViews        Options -Indexes FollowSymLinks MultiViews        AllowOverride All        Order allow,deny        allow from all              Deny from all   

   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

然后,重启apache:

# service httpd restart

 

5、安装数据库(图片略)

访问http://syslog.linuxfly.org进行数据库安装:

 

校验系统环境,有问题,参考上面的步骤是否有错。

查看协议: 

配置数据库参数:

其中需要注意:

MySQL User Name:填入数据库管理用户,其必须有创建数据库和分派权限的能力; MySQL Password:数据库管理用户的密码; MySQL Database Name:php-syslog-ng使用的数据库命令,安装程序会使用上面的用户自动创建; MySQL Port:数据库使用的端口 MySQL Table Prefix:表的前缀,但不要使用'old_',其代表备份表; Syslog User Name:php-syslog-ng用这个用户读取数据库信息; Syslog User Password:其密码; Syslog Admin Name:php-syslog-ng用这个用户写入数据库信息; Syslog Admin Password:其密码; Drop Existing Tables:是否删除已存在的表; Backup Old Tables:是否备份旧的表; Install Sample Data:是否安装示例数据; Install CEMDB Data:是否安装用于收集Cisco ERROR TABLE的数据。

 

如果你选择安装CEMDB数据,这需要花费一定的时间:

 

输入网页的标题: 

输入php-syslog-ng的管理信息:

可输入管理员的Email地址,以及管理员密码。

php-syslog-ng会自动创建一个随机密码,你可以修改之,但请紧急。

安装完成,并会提示你管理员的信息: 

 

 至此Web部分已经完成。但因为,syslog-ng还未把数据导向mysql,所以,此时网页中并没有数据的。

6、配置脚本, 进入scripts目录,并运行:

# cd /var/www/html/php-syslog-ng/scripts/ # perl -i -pe 's/\/www\/php-syslog-ng/\/var\/www\/html\/php-syslog-ng/g' * Can't do inplace edit: cemdb is not a regular file, <> line 30.

 

最后的信息是提示cemdb是个目录,不能替换。该目录中的文件不要修改,所以,该信息可以忽略。

接下来,需要配置syslog-ng,把日志信息导向mysql的pipe接口。

7、配置syslog-ng

 

 其配置文件在:/etc/syslog-ng.conf

加入:

destination d_mysql {        pipe("/var/log/mysql.pipe"        template("INSERT INTO logs        (host, facility, priority, level, tag, datetime, program, msg)        VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC','$PROGRAM', '$MSG' );\n") template-escape(yes)); }; log {        source(s_sys);        destination(d_mysql); };

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15453509/viewspace-510280/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-08-25

  • 博文量
    397
  • 访问量
    173379