LAMP+logzilla+sphinx+syslog-ng实现集中日志管理(第一版)[原创]

一、前言


       目前查看系统日志比较被动,遇到系统不正常或故障时才会主动去检查服务器系统日志,这样一来不能及时了解系统的运行情况,因此部署Logzilla+sphine+syslog-ng来弥补这不足。以下为安装、部署平台详细步骤。(Logzilla是什么新东西?其实前身就是php-syslog-ng,引用作者的话“Php-syslog-ng is now known as LogZilla. Same owner, better code :-)”)

二、平台初始化


#yum install libdbi* libnet
#cpan Date::Calc Text::LevenshteinXS String::CRC32

三、下载相关包


#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_3.0.85.tgz
#tar -zxvf logzilla_3.0.85.tgz
#cd logzilla/scripts
#./install.pl

(根据实际情况来回应就OK了)

===================
        LogZilla Installation
====================
Enter the MySQL root username [root]: 
Enter the password for root [mysql]: 
Database to install to [syslog]: 
Database table to install to [logs]: 
Enter the name of the MySQL server [127.0.0.1]: 
Enter the port of the MySQL server [3306]: 
Enter the name to create as the owner of the logs database [syslogadmin]: 
Enter the password for the syslogadmin user [syslogadmin]: 
Enter the name to create as the WEBSITE owner [admin]: 
Enter the password for admin [admin]: 
Enter your email address [cdukes@cdukes.com]: 
Enter a name for your website [The home of LogZilla]: 
Enter the base url for your site (include trailing slash) [/logs/]: /
Where should log files be stored? [/var/log/logzilla]: 
How long should I keep old logs? (in days) [30]: 
========================================
        Path Updates
========================================
Getting ready to replace paths in all files with "/www/webroot/logzilla"
Ok to continue? [y]: 
Updating file paths
Modifying ../scripts/db_insert.pl
Modifying ../scripts/contrib/system_configs/logzilla.crontab
Modifying ../scripts/contrib/system_configs/syslog-ng.conf
Modifying ../scripts/contrib/system_configs/logzilla.apache
Modifying ../sphinx/indexer.sh
Modifying ../sphinx/sphinx.conf
Updating log paths
Modifying ../scripts/contrib/system_configs/logzilla.crontab
Modifying ../scripts/contrib/system_configs/logzilla.logrotate
====================
        Database Installation
====================
All data will be installed into the syslog database
Ok to continue? [y]: 
====================
        Config.php generation
====================
Generating /www/webroot/logzilla/html/config/config.php
Ok to continue? [y]: 
====================
        System files
====================
Adding LogZilla logrotate.d file to /etc/logrotate.d
Ok to continue? [y]: 
Where is your syslog-ng.conf file located? [/etc/syslog-ng/syslog-ng.conf]: /opt/syslog-ng/etc/syslog-ng.conf
Adding syslog-ng configuration to /opt/syslog-ng/etc/syslog-ng.conf
Ok to continue? [y]: 
Found 1 sources
Which source definition would you like to use? [s_all]: 
        LogZilla installation complete...
Note: you may need to enable the MySQL Event Scheduler in your /etc/my.cnf file.
Please visit http://forum.logzilla.info/index.php/topic,71.0.html for more information.
Also, please visit http://nms.gdd.net/index.php/Install_Guide_for_LogZilla_v3.0#UDP_Buffers to learn how to increase your UDP buffer size (otherwise you may drop messages).
Please run /etc/init.d/syslog-ng restart

六、安装 Sphinx


#cd logzilla/sphinx/src
#tar xzvf sphinx-0.9.9.tar.gz

#cd sphinx-0.9.9
#./configure –prefix `pwd`/../..
#make && make install

#cd /www/webroot/logzilla/sphinx
#vi sphinx.conf
#!/usr/bin/php 替换成实际php的位置,如#!/usr/local/php/bin/php
#./indexer.sh full
#bin/searchd

提示:
ERROR: index 'idx_logs': sql_query_pre[0]: Column 'max_id' cannot be null (DSN=mysql://syslogadmin:***@127.0.0.1:3306/syslog).
如果看到该信息,属正常,因为现在还没有数据:)

添加作业:

30 0 1 * */www/webroot/logzilla/sphinx/indexer.sh full >>/www/webroot/logzilla/sphinx/log/sphinx_indexer.log 2>&1
*/5 * * * */www/webroot/logzilla/sphinx/indexer.sh delta >>/www/webroot/logzilla/sphinx/log/sphinx_indexer.log 2>&1
0 0 * * */www/webroot/logzilla/sphinx/indexer.sh merge >>/www/webroot/logzilla/sphinx/log/sphinx_indexer.log 2>&1

添加rc.local
#vi /etc/rc.local

/www/webroot/logzilla/sphinx/bin/searchd -c /www/webroot/logzilla/sphinx/sphinx.conf

七、配置Mysql


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

激活event_scheduler

view plainprint?
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配置


v#i /opt/syslog-ng/etc/syslog-ng.conf

(略)

九、修改apache配置


#vi httpd.conf

view plainprint?
# LogZilla  
   Alias /logs "/www/webroot/logzilla/html/"  
   <Directory "/www/webroot/logzilla/html/">  
       Options Indexes MultiViews FollowSymLinks  
       AllowOverride All  
   Order allow,deny  
   Allow from all  
   </Directory>

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

十、IONCube授权


http://127.0.0.1/logs/login.php
1.gif
下载源码包ioncube_loaders_lin_x86-64.tar.gz

#mkdir -p /usr/local/ioncube
#tar -zxvf ioncube_loaders_lin_x86-64.tar.gz
#cd ioncube
#cp * /usr/local/ioncube/
#vi /usr/local/php/lib/php.ini
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.2.so

#/etc/init.d/apache2 restart

十一、安装完毕


http://127.0.0.1/logs/login.php
根据install.pl配置的管理员帐号密码进行登录。
1、MainPage
4.png
2、StatPage
5.png
十二、客户端配置


#vi /etc/syslog.conf
在最后添加以下,其中syslog.admin.com.cn为主机域名,也可以直接用IP代替。

*.emerg;*.err;*.warning         @syslog.admin.com.cn

#/etc/init.d/syslog restart

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

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

如大家有什么疑问或感兴趣的话题可以通过weibo与我交流:http://t.qq.com/yorkoliu

转自:http://blog.liuts.com/post/207/#entrymore

原创文章,作者:s19930811,如若转载,请注明出处:http://www.178linux.com/1753

(0)
s19930811s19930811
上一篇 2015-03-27 17:15
下一篇 2015-03-27 18:00

相关推荐

  • 网络服务基础理论

    最近学习了有关网络管理的有关知识,所以给也在学习这些知识的童鞋分享一下我的一些经验。 听了这几天课,总结了几个前提。 有关网络的通信均是基于数据传输的,且数据均是二进制格式的流式数据。 在网络中需要把大包分成小包, 每传一个包都需要有三个地址,由内向外为端口号、IP地址、MAC地址。端口号确定应用,IP确定网段,MAC确定广播域中的某个网卡。 OSI模型 &…

    Linux干货 2017-09-01
  • 创建及管理KVM工具之virsh

    一、什么是虚拟化 虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。 二、虚拟化能做什么 CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 三、虚拟化…

    Linux干货 2017-01-19
  • N28-第四周

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-30
  • shell脚本编程之数组

    bash仅支持一维数组,类型声明: declare -i    : 表示数值 declare -a  :表示普通数组(默认,可不用声明类型) declare -A :表示关联数组(必须声明类型,bash需4.0以上版本才支持,可通过bash –version查看版本) 一、普通数组(用数字为下标) 1.1数组赋值(修…

    Linux干货 2015-08-24
  • 生产环境日志审计

         日志审计,就是记录所有系统和相关用户行为的信息,并且可以自动分析,处理。在中小企业环境中,一般都是在单个服务器上记录日志,而大型企业的生产环境当中,会有专门的日志服务器乃至集群。本文通过sudo配合centos自带的rsyslog(syslog)服务,进行日志审计。    &nb…

    Linux干货 2016-10-20
  • 计算机基础及Linux基础

    计算机基础与Linux入门 计算机组成及功能 Linux常见发行版 Linux重要哲学思想 Linux文件系统层级结构及文件命名规则 如何获取Linux命令的使用帮助 Linux常用命令及示例 1.1 计算机组成及功能 1.1.1 计算机的五大部件 计算机的主要组成部分有: 1、CPU:运算器 2、控制器、寄存器(内部存储)、缓存; 3、存储器:内存,RAM…

    Linux干货 2016-12-04