Nov
14
[原]使用php-syslog-ng查看syslog-ng的信息
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的数据。
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.
# 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接口。
mcg840107@126.com
options { stats_freq (0);
flush_lines (1);
keep_hostname (yes);
time_reopen (10);
log_fifo_size (1024);
long_hostnames (off);
use_dns (no);
use_fqdn (no);
create_dirs (yes);
owner(root);
group(root);
perm(0640);
dir_perm(0755);
};
source s_sys {
file ("/proc/kmsg" log_prefix("kernel: "));
unix-stream ("/dev/log");
internal();
udp(ip(0.0.0.0) port(514));
};
这个是我的syslog-ng.conf中的options和source的设置,然后增加了你的那个配置内容。还望版主能够指点一下~~谢谢阿
我的linux版本是FC11的,然后使用yum安装好了syslog-ng和php-syslog-ng,一切都通过了。但是在web界面中没有数据,显示There appear to be no hosts in the Database yet,You can generate fake ones using scripts/dbgen.pl
查看数据库中的syslog,select * from logs,显示是空的。应该是syslog-ng没有将日志导入mysql吧?但我确实是在syslog-ng.conf中按照你的文档加入了数据库的配置。配置上唯一跟您有出入的就是6.配置脚本,他显示的是test是个目录。
还望版主指点指点。
php-syslog-ng的版本是2.9.8的~~
P.S.我在crontab上並沒有設定清除日誌的drop-old-tables.php,真令人不解阿...
sql(type(mysql)
host("127.0.0.1") username("root") password("")
database("filter_logs")
table("messages_${R_YEAR}${R_MONTH}${R_DAY}")
columns("datetime", "facility", "level", "host", "program", "pid", "message")
values("$R_DATE", "$FACILITY", "$LEVEL", "$HOST", "$PROGRAM", "$PID", "$MSGONLY")
indexes("datetime", "host", "program", "pid", "message"));
};
我手功插入了2000多W条记录,但是数据库里只插入了400多W条,有没有可能是插入太快了,而syslog-ng来不及写入mysql里?
你提到的2000W记录,在messages中也是2000W吗?messages中的数量应该与mysql中的相同。我觉得不会是插入太快的问题,但有可能存在缓存、UDP丢失等问题。
最近要装一个syslog-ng服务。
目的很简单,就是把服务器的日志文件,放入到MySQL数据库中就可以了。
然后自己写java代码和jsp页面显示出来就可以了。
但是,由于本人能力有限,弄了两个星期都没有弄成功啊。
您能不能简单的给指导一下,我应该怎么做啊。
只要把服务器的日志文件存入数据库中就可以了。
谢谢您啊。
之前问到的问题,我没管它了,直接在 login.php中调用html_header.php的部分将其注释掉。能够出现其plain的登陆页面了,但用admin登陆时,返回的消息却是:
Query failed: Table 'syslog.test_users' doesn't exist
没法,又得请教楼主了。