LAMP+logzilla2.9.9+syslog-ng实现集中日志管理(第二版)[原创] 不指定

刘天斯 , 2010/07/24 14:28 , Linux , 评论(69) , 阅读(93932) , Via 本站原创 | |
一、前言
       为什么要引入第二版?由于第一版是基于Logzilla3.0,作者在Logzilla3.0以后做了licensed限制,可以从作者回复邮件的内容得到证实[图1]。因此需要定期去更新license.txt来达到延长使用期限的目的,个人感觉比较麻烦,同时还有主机及日志数的限制,这也是整理第二版的原因,当然,你也可以通过以下途径获取免费、无限制的licensed,见How to get a free, unlimited, license of LogZilla。但这不是本文所要讨论的话题:),第二版中本人采用logzilla2.9.9版来搭建一个免费、无限制的日志集中管理平台,功能上与3.0差异不大,好了,废话少说,我们开始吧!
[图1]

点击在新窗口中浏览此图片

平台截图
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

二、平台初始化
部署LAMP平台(略)
引用

#yum install libdbi* libnet
#cpan Date::Calc Text::LevenshteinXS String::CRC32
#cpan -i Digest::SHA1
#cpan -i Net::MySQL

三、下载相关包
引用

#cd /home/install
#mkdir logzilla;cd logzilla
#wget http://www.balabit.com/downloads/files/eventlog/0.2/eventlog_0.2.9.tar.gz
#wget http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/3.0.3/setups/rhel-5-i386/syslog-ng-3.0.3-1.rhel5.i386.rpm

四、开始安装
引用

# cp eventlog_0.2.9.tar.gz /usr/src/redhat/SOURCES/
# tar zxvf  eventlog_0.2.9.tar.gz
# cd eventlog-0.2.9/
# rpmbuild --ba eventlog.spec.bb
# cd /usr/src/redhat/RPMS/x86_64
# rpm -Uvh libevtlog*

#cd /home/install/logzilla
#rpm -Uvh syslog-ng-3.0.3-1.rhel5.i386.rpm

五、安装logzilla
引用

#cd /www/webroot/
#wget http://php-syslog-ng.googlecode.com/files/logzilla_v2.9.9o.tgz
#tar xzvf logzilla_v2.9.9o.tgz
#mkdir -p /var/log/logzilla

六、配置Mysql
引用

# mysql -u -p
mysql> SELECT @@event_scheduler;
+-------------------+
| @@event_scheduler |
+-------------------+
| OFF               |
+-------------------+
1 row in set (0.00 sec)


低于Mysql5.1版本会提示如下,如不打算升级到logzilla3.0,没有关系,可以略过此步骤。
mysql> SELECT @@event_scheduler;
ERROR 1193 (HY000): Unknown system variable 'event_scheduler'

激活event_scheduler
引用

mysql> SET GLOBAL event_scheduler = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @@event_scheduler;
+-------------------+
| @@event_scheduler |
+-------------------+
| ON                |
+-------------------+
1 row in set (0.00 sec)

mysql> quit;

七、修改Syslog-ng配置
#vi /opt/syslog-ng/etc/syslog-ng.conf

八、修改apache配置
#vi httpd.conf

重启apache服务:/etc/init.d/apache2 restart

九、修改php.ini
Vi /usr/local/php/lib/php.ini

十、配置日志分隔
cp /www/webroot/php-syslog-ng/scripts/contrib/system_configs/logrotate.d /etc/logrotate.d/logzilla

十一、添加作业
引用

@daily /usr/local/php/bin/php /www/webroot/php-syslog-ng/scripts/logrotate.php >> /var/log/php-syslog-ng/logrotate.log
@daily /usr/bin/find /www/webroot/php-syslog-ng/html/jpcache/ -atime 1 -exec rm -f '{}' ';'
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/php/bin/php /www/webroot/php-syslog-ng/scripts/reloadcache.php >> /var/log/php-syslog-ng/reloadcache.log

十二、开始平台安装
# /etc/init.d/syslog-ng restart
http://192.168.0.100/logs/来进行安装
步骤如下:
点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

十三、替换脚本路径
引用

cd /www/wewroot/php-syslog-ng/scripts
./fixpaths.sh

或者直接用sed来修改
引用

#sed -i -e "{ s@/path_to_logzilla@/www/webroot/php-syslog-ng@}" *.*

#/etc/init.d/syslog-ng restart

十四、客户端配置
在最后添加以下,其中syslog.admin.com.cn为主机域名,也可以直接用IP代替。
#vi /etc/syslog.conf
*.emerg;*.err;*.warning         @syslog.admin.com.cn
#/etc/init.d/syslog restart

测试:logger -p local4.err "This is a local.err test message."

十五、后续问题
问题一、点击[Graph]时会提示“JpGraph Error Font file "/usr/share/fonts/truetype/msttcorefonts/verdana.ttf" is not readable or does not exist.”
解决方法:
mkdir -p /usr/share/fonts/truetype/msttcorefonts/
上传windows XP/2003/vista/下的字体文件verdana.ttf到/usr/share/fonts/truetype/msttcorefonts/即可。

问题二、logs表无数据,运行/www/webroot/php-syslog-ng/scripts/contrib/dbgen/dbgen.pl
提示:Cannot determine peer address at /usr/lib/perl5/site_perl/5.8.5/Net/MySQL.pm line 277

解决方法:
1、是logzilla2.9.9安装时一个bug,新建的mysql的syslogadmin、sysloguser用户权限没有成功赋予,手工添加上就OK了,感谢【杭州】FIGO提供的故障案例。
2、如第1步不成功,尝试修改/www/webroot/php-syslog-ng/html/config/config.php文件mysql主机地址localhost为127.0.0.1。

问题三、搜索缓存图表只显示两天的数据,最近三天没有数据?
解决方法:
由于search_cache表采用的是MEMORY存储引擎,有大小的限制,修改一下/etc/my.cnf,在[MYSQLD]添加:
tmp_table_size=1G
max_heap_table_size = 1G
再重启mysql就可以了。
效果图:
点击在新窗口中浏览此图片

问题四、不能显示日志当中带有"<"、">"的问题,如思科系统的日志。
感谢[常州]老高提供的故障案例。
解决方法:
在tailresult.php和regularresult.php中查找

在里面添加

即可。

问题五、客户端日志无法入库。
感谢[北京]永远飞扬提供的故障案例。
系统环境:
CentOS release 5.5 (Final) i386 2.6.18-194.el5
LAMP (系统rpm默认安装)
Mysql:5.0.77
Php:PHP 5.1.6
Apache:2.2.3

原因:
perl for mysql驱动异常,直接采用bin/mysql+insert sql语句入库。

解决方法:
#vi /opt/syslog-ng/etc/syslog-ng.conf

*注:配置中的相关参数需根据个人实际环境进行修改。


全世界都在找logzilla_v2.9.9o.tgz包,打包线上的包放上来(修复原先一些小bug)
下载文件 (已下载 3841 次)


参考文献:http://nms.gdd.net/index.php/LogZilla_Installation_Guide

如大家有什么疑问或感兴趣的话题可以通过weibo与我交流:http://t.qq.com/yorkoliu
jeff_jzf
2016/03/09 12:12
我准备安装这个服务,但在安装logzilla时它直接出现的登录页面,而不是安装页面。这是什么情况?
小宝
2015/03/26 13:44
看是看官方文档吧 nms.gdd.net/index.ph/LogZilla_Installation_Guide
园林假山别墅 Homepage
2014/08/12 21:03
谢谢刘哥分享
变压器 Email
2014/08/09 14:40
谢谢,博主
Gold
2013/11/14 17:27
刘兄,我搭建好了,感谢!
mzwindy Email
2013/08/27 15:34
很多软件已不能打开链接了,无法下载,能否分享软件,谢谢
刘天斯 回复于 2013/08/27 15:43
文章底下有下载链接。http://blog.liuts.com/attachment.php?fid=340
bsing584 Email Homepage
2013/04/24 04:40
我就喜欢这种人少的贴子,沉了感觉是我弄沉的,火了就占了前排,说不准还遇到好心人散个几百分的。稳赚不赔啊!!
bsing382 Email Homepage
2013/04/24 04:36
楼主的帖子,就好比黑暗中刺裂夜空的闪电,又好比撕开乌云的阳光.说得好啊!
bsing589 Email Homepage
2013/04/24 04:33
顶一个。表同意。不同意的已经非人类了。
西藏瘦猴 Email
2012/03/15 13:44
刘兄你好。我在安装Logzilla完成之后,遇到一个问题:
在点击Web界面的Graph之后,提示:
Deprecated: Function split() is deprecated in /var/www/logzilla/html/includes/jpgraph/jpgraph.php on line 6152
Deprecated: Function split() is deprecated in /var/www/logzilla/html/includes/jpgraph/jpgraph.php on line 6197
请问这是什么原因造成的,如何处理?谢谢!
刘天斯 回复于 2012/03/15 13:55
你的php版本比较新,已经不支持split函数,尝试修改jpgraph.php源码代替为preg_split()。
小k Email Homepage
2011/12/22 18:27
刘兄, 我想问一下 如何用syslog-ng 获取客户端类似nginx haproxy apache的日志。
刘天斯 回复于 2011/12/23 19:00
先了解这些程序包是否支持syslog模块。
wyw
2011/12/17 11:35
大牛,想请问一下按照你的步骤都搭建好了以后,发现首页的logs per day 显示不出来,按照问题三去修改了也没用。可能是什么问题?谢谢
MT
2011/08/30 13:02
我碰到个问题,查了很多资料也没解决,还望指导下。1.把config.php里的host从localhost修改为127.0.0.1,输入http://ip/logs,出现登陆界面,登陆后报错如下:Error in perform_query functionNo DB link for query: SELECT * FROM users WHERE username='admin' AND pwhash='4277afca1c7800b5ecd999ef8513a71c'Mysql_error: Can't connect to MySQL server on '127.0.0.1' (13)直接在本机用mysql客户端是可以连接的:mysql -h 127.0.0.1 -u root -pWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 349903Server version: 5.0.77 Source distribution还请指导下,谢谢!
GG Email Homepage
2011/05/22 10:27
您好,请问那图表绘制是用什么软件啊
琼山阿泰 Email
2011/04/17 07:53
把这句:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/php/bin/php /www/webroot/php-syslog-ng/scripts/reloadcache.php >> /var/log/php-syslog-ng/reloadcache.log

换成这句如何:
*/5 * * * * /usr/local/php/bin/php /www/webroot/php-syslog-ng/scripts/reloadcache.php >> /var/log/php-syslog-ng/reloadcache.log
刘天斯 回复于 2011/04/17 10:34
当然不行,我们要求分钟定位到整点位,*/5只能做到每隔5分钟。
lota
2011/02/28 14:54
最近才发现数据库里只有最近一个月的日志,前面的日志全没了
crontab里没有清除旧日志的计划
请问可能会是什么原因导致?
ev
2011/01/27 22:45
db_insert.pl的性能有没有做过测试?一分钟能插入多少条记录
刘天斯 回复于 2011/01/28 08:48
瓶颈不在脚本运算上,只要在数据库服务器的网卡流量、IO上。
yifan
2011/01/06 09:23
问一个问题,博主有没有遇到 Cache last updated on  这个时间有时候可以更新有时候好几天都不更新,重启一下mysql肯定会更新。
刘天斯 回复于 2011/01/06 21:15
尝试加大默认内存表大小。
Air Max 180 Email Homepage
2010/12/11 09:12
文章很好。
kevin
2010/12/02 14:13
发现这个挺麻烦哇,我现在也是用syslog-ng,不过我是悼念windows系统日志,使用cacti的一个插件syslog,我觉得挺好,就是有一点,空格被两个数字1替代了,找到了解决办法就是在syslog-ng的配置里面把那个template_escape(yes) 改成template_escape(no),但是会报一个错误,不过不影响使用,不知道你这里有没有这个问题?
刘天斯 回复于 2010/12/02 16:42
没有监控windows的服务器,多谢提供解决方案。
分页: 1/4 第一页 1 2 3 4 下页 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]