Nov 14

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

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


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);
};

或使用scripts的脚本:
# cat syslog.conf  >> /etc/syslog-ng/syslog-ng.conf

※注意:需把源驱动器的s_all修改为s_sys。

8、创建mysql的pipe通道
首先确认一下scripts目录中,syslog2mysql.sh脚本来的配置文件路径是否正确,若没问题,运行它:
# /var/www/html/php-syslog-ng/scripts/syslog2mysql.sh >> /var/log/php-syslog-ng/mysql.log 2>&1 &

若日志没有报错,即可。

9、重启syslog-ng服务
若syslog未关闭,请执行:
# service syslog stop
# service syslog-ng start
# chkconfig syslog off
# chkconfig --level 2345 syslog-ng on

从Web进入php-syslog-ng,应可正常使用:
点击在新窗口中浏览此图片

四、配置计划任务
若使用php-syslog-ng对日志进行集中管理,其数据量可能是相当巨大的,必须考虑日志循环的问题。可以使用计划任务实现。
1、配置计划任务
使用crontab -e加入:
引用
# PHP-Syslog-NG
@daily php /var/www/html/php-syslog-ng/scripts/logrotate.php >> /var/log/php-syslog-ng/logrotate.log
@daily find /var/www/html/php-syslog-ng/html/jpcache/ -type f -atime 1 -exec rm -f '{}' ';'
@reboot /var/www/html/php-syslog-ng/scripts/syslog2mysql.sh >> /var/log/php-syslog-ng/mysql.log 2>&1
0,5,10,15,20,25,30,35,40,45,50,55 * * * * php /var/www/html/php-syslog-ng/scripts/reloadcache.php >> /var/log/php-syslog-ng/reloadcache.log

或确认scripts脚本中的crontab文件路径正确后,运行:
# cat crontab >> /var/spool/cron/root

※注意:
1、请把运行dbgen.pl的命令删除,该脚本只是用于产生演示数据,详见后面说明。
2、执行php脚本的时候可能会包oci8.so错误,后面也有说明。
3、原find语句存在Bug,请加入-type f选项,否则会报如下的错误:
rm: cannot remove `/var/www/html/php-syslog-ng/html/jpcache/': Is a directory


2、配置日志循环
# cp logrotate.d /etc/logrotate.d/php-syslog-ng


至此,php-syslog-ng已经全部配置完成。后面讲解其他的一些脚本的功能。
内文分页: [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
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]