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

刘天斯 , 2010/07/24 14:28 , Linux , 评论(13) , 阅读(868) , 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就可以了。
效果图:
点击在新窗口中浏览此图片

参考文献:http://nms.gdd.net/index.php/LogZilla_Installation_Guide
prometheus
2010/08/18 16:55
请教刘大师 这个玩意怎么进行备份啊~ 最好可以按天备份,要不数据太大了
刘天斯 回复于 2010/08/18 17:37
平台会每天进行分表,可以将旧表进行归档。
prometheus
2010/08/04 10:40
有一个不是很明白~ 这2个源为什么名称都相同?source s_local {  internal();  unix-stream("/dev/log");  file("/proc/kmsg" program_override("kernel: "));  };  source s_local {          udp(ip(0.0.0.0) port(514));  };
刘天斯 回复于 2010/08/04 11:34
syslog-ng支持这种写法,处理时是叠加。
prometheus
2010/08/04 10:36
原来都有HOHO
prometheus
2010/08/03 16:08
我在其他的文章中以及自己测试过程中还发现一个问题帮你补充上吧~ 因为本人没BOLG所以没地方发,之前的GOOGLEDOC和FACEBOOK被封四、使用问题1、打开页面不能显示图形点击"Graph"的时候,报错:引用JpGraph Error Font file "/usr/share/fonts/corefonts/verdana.ttf" is not readable or does not exist.原因是,新版的php-syslog-ng考虑到旧版字库版权的问题,使用了verdana.ttf字库。而当前系统目录该字库。解决办法:1)从Windows\Fonts目录中拷贝到上述的路径即可;2)从安装包中下载,并放到上述目录下安装完毕后正常
刘天斯 回复于 2010/08/03 23:35
谢谢prometheus,本文在后续问题1中已经说明了。
prometheus
2010/08/03 16:07
使用dbgen.pl测试完毕后,会发现实际情况可能取不到值,找来找去终于找到原来还是PERL库的问题,log插入数据库脚本运行测试# perl db_insert.pl Can't locate Text/LevenshteinXS.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi …………/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at db_insert.pl line 22.BEGIN failed--compilation aborted at db_insert.pl line 22.[root@monitor scripts]# cpan -i Net::LevenshteinXS数据正常插入
刘天斯 回复于 2010/08/03 23:33
感谢prometheus 提供的案例,本文中的#cpan Date::Calc Text::LevenshteinXS String::CRC32就是安装LevenshteinXS及CRC32模块:)
prometheus
2010/08/02 19:45
问题找到了,谢谢
刘天斯 回复于 2010/08/02 20:13
恭喜~请分享你的解决方法:)
prometheus
2010/08/02 18:19
现在所有的服务都正常运行了~ 但是就是数据库无法得到客户机发来的数据而客户机发来按文件存放缺正常。并且我用了自带的测试脚本测试,数据库也可以正常接收,请问这个是什么问题呢?谢谢
prometheus
2010/07/30 11:09
我用源码包编译的好像也没提示需要
刘天斯 回复于 2010/07/30 11:15
syslog-ng服务能正常提供就OK
prometheus
2010/07/29 19:14
我看别的文档都有libol-0.3.18.tar.gz 您的没有是不是说这个不用装了
刘天斯 回复于 2010/07/29 20:09
本文syslog-ng采用安装方式是rpm,不需要安装libol。
godsoul Email
2010/07/26 17:14
还有一个这个错误
syntax error in /opt/syslog-ng/etc/syslog-ng.conf at line 2
汗。做小白真不容易啊。。。
刘天斯 回复于 2010/07/26 17:57
不好意思,没有复制全,已修正:)
分页: 1/2 第一页 1 2 下页 最后页
发表评论

昵称

网址

电邮

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