整合LAMP+loganalyzer+rsyslog搭建企业级集中式日志管理系统

集中式日志管理的优势

   在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分。查看服务器、交换机、路由器和其他网络设备的日志,可以帮助网管员迅速了解和诊断问题。通过使用rsyslog协议搭建集中日志存储,可以有效地解决日志格式不统一、存储时间短的问题,通过建立管道,预处理等技术改变了syslog日志原有的分类存放方式,实现了更为科学的日志信息分类存放,为日志的进一步分析提供了平台。


环境:RHEL 6.4

httpd

php

mysql

loganalyzer

本例采用rpm包方式安装;

1、挂载光盘:

# mount-r  /dev/cdrom  /mnt

2、新建yum

# vim  /etc/yum.repos.d/mycd.repo

[mycd]

name=mycd

baseurl=file:///mnt/Server/

enabled=1

gpgcheck=0


清除缓存

# yum clean all

安装所需软件

# yum -y install httpd php mysql-server mysql php-gd rsyslog-mysql


下载loganalyzer并解压

tar xf loganalyzer-3.6.4.tar.gz

将里面src文件夹下的所有内容复制到网站默认DocumentRoot目录下,(可以更改)

cd loganalyzer-3.6.4

cp -r src/*/var/www/html/


启动httpdmysqld服务并设置开机启动

为防止在默认配置下出现错误提示,修改/etc/hosts文件添加本机的IPhostname的对应关系

vi/etc/hosts

172.16.1.4        sta4.magedu.com      sta4


# servicehttpd start

# chkconfig  httpd  on

# servicemysqld start

#chkconfig  mysqld  on

loganalyzer建立空配置文件;

# cd  /var/www/html

# touch  config.php ;为初始化配置做准备

# chown-R apache.apache *


开始配置:在浏览器输入服务器地址进行访问,出现下面界面;


查预配置,点next


检查config.php文件是否可写;


基本配置

需事先创建loganalyzer数据库并授权给用户

[root@sta4 html]# mysql

mysql> CREATE DATABASE loganalyzer;

mysql> GRANT ALL ON loganalyzer.* TO'userlog'@'localhost' IDENTIFIED BY 'redhat';

mysql> FLUSH PRIVILEGES;




创建所需的表


创建表完成,点击下一步创建用户;


创建管理员用户


创建一个存储日志的数据库:

首先用系统自带的脚本进行初始化

[root@sta2 ~]# mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

查看生成的数据库和表

[root@sta2 ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 3348

Server version: 5.1.66 Source distribution



mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| Syslog           |

| loganalyzer        |

| mysql              |

| test               |

5 rows in set (0.02 sec)


mysql> use Syslog

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A


Database changed

mysql> show tables;

+------------------------+

| Tables_in_Syslog       |

+------------------------+

| SystemEvents         |

| SystemEventsProperties |

+------------------------+

2 rows in set (0.00 sec)




完成配置



接下来编辑rsyslog服务的配置文件:

vim /etc/rsyslog.conf

#### MODULES ####

添加rsyslog支持mysql的模块

$ModLoad ommysql


# Provides UDP syslog reception(启动UDP接收)

$ModLoad imudp

$UDPServerRun 514


#定义日志输出位置:

格式:facility.priority           Target(存放位置)

存放位置还可以是除了本地文件之外的其他地方,rsyslog支持其他输出模块,可以通过man rsyslog.conf来查看

MODULES

      Rsyslog has a modular design. Consequently, there is a growing number ofmodules. See the html documentation for

      their full description.


      omsnmp SNMP trap output module


      omgssapi   ;Output module forGSS-enabled syslog


      ommysql; Output module for MySQL,需要安装rsyslog-mysql

………

例如:

*.*                  :ommysql:localhost,Syslog,userlog,redhat

设备.日志级别         :mysql模块:日志服务器,日志数据库名称,用户,密码

# Logging much elseclutters up the screen.

#kern.*                          /dev/console ;输出到终端显示


# Log anything (exceptmail) of level info or higher.

# Don't log privateauthentication messages!

#*.info;mail.none;authpriv.none;cron.none     /var/log/messages;输出到指定目录

*.*                                                    :ommysql:localhost,Syslog,userlog,redhat


# Log all the mailmessages in one place.

mail.*                 -/var/log/maillog;支持异步写入,优化系统性能


# Everybody getsemergency messages

*.emerg                         *;表示发送给当前登录系统的用户


uuc              @172.16.1.2 表示把相应的日志发到日志服务器172.16.1.2

日志系统中相关名词解释;

#facility: 设备(或日志类型):


auth         #pam产生的日志,认证日志

authpriv     #ssh,ftp等登录信息的验证信息,认证授权认证

cron         #时间任务相关

kern         #内核

lpr          #打印

mail         #邮件

mark(syslog) #rsyslog服务内部的信息,时间标识

news         #新闻组

user         #用户程序产生的相关信息

uucp         #unix to unix copy, unix主机之间相关的通讯

local 1-7    #自定义的日志设备


#priority: 日志级别:


debug           #有调式信息的,日志信息最多

info            #一般信息的日志,最常用

notice          #最具有重要性的普通条件的信息

warning, warn   #警告级别

err, error      #错误级别,阻止某个功能或者模块不能正常工作的信息

crit            #严重级别,阻止整个系统或者整个软件不能正常工作的信息

alert           #需要立刻修改的信息

emerg, panic    #内核崩溃等严重信息

###从上到下,级别从低到高,记录的信息越来越少,如果设置的日志内性为err,则日志不会记录比err级别低的日志,只会记录比err更高级别的日志,也包括err本身的日志。

=====================================================================

Target:

 #文件, 如/var/log/messages

 #用户, root,*(表示所有用户)

 #日志服务器,@172.16.1.2

 #管道        | COMMAND

rsyslog支持通配机制:
			*:所有
			,: 列表

!

修改完成后,使用logger命令来测试:

rsyslog还可以收集windows以及路由器、交换机的日志:


1)收集windows日志:

需要安装软件,下载对应的软件分32位和64

http://code.google.com/p/eventlog-to-syslog/


解压后直接放到system32,找到cmd.exe ,以管理员身份运行

输入evtsys.exe -i -h 172.16.1.2 -l 4  启动

然后输入services.msc打开服务列表,可以看到Eventlog to Syslog服务

以后可以在cmd里使用net  evtsys  start|stop来启动或关闭了。

Usage:evtsys.exe -i|-u|-d [-h host] [-b host] [-f facility] [-p port]

      [-s minutes] [-l level] [-n]

 -i          Install service

 -u          Uninstall service

 -d          Debug: run as console program

 -h host     Name of log host

 -b host     Name of secondary log host (optional)

 -f facility Facility level of syslog message

 -l level    Minimum level to send to syslog.\n", stderr);

  0=All/Verbose, 1=Critical,2=Error, 3=Warning, 4=Info

 -n          Include only those events specified in the config file.

 -p port     Port number of syslogd

 -q bool     Query the Dhcp server to obtain the syslog/port to log to

              (0/1 = disable/enable)

 -s minutes  Optional interval between status messages. 0 = Disabled


Defaultport: 514

Defaultfacility: daemon

Defaultstatus interval: 0

Host (-h)required if installing.

效果图:

不足之处:有乱码


2)收集路由器日志以Cisco 2691为例;

Router>en

Router#configterminal

Enter configurationcommands, one per line.  End with CNTL/Z.

Router(config)#int f0/0

Router(config-if)#ipadd 172.16.1.20 255.255.0.0

Router(config-if)#no shutdown

Router(config-if)#end

Router#ping 172.16.1.2

Type escape sequence toabort.

Sending 5, 100-byteICMP Echos to 172.16.1.2, timeout is 2 seconds:

.!!!!

Router#conf t

Router(config)#logginghost 172.16.1.2

Router(config)#loggingon

Router(config)#loggingtrap notifications

Router(config)#loggingfacility local1

Router(config)#loggingsource-interface FastEthernet0/0


添加设备的主机名和IP的对应,方便显示主机名;

vi/etc/hosts

172.16.0.1  server.magelinux.com server

172.16.1.2      sta2.magedu.com www

172.16.1.20  Cisco2691


Cisco有专业的日志以及管理工具:ACS,也称AAA服务器,这里暂不做介绍。




你可能感兴趣的:(rsyslog,集中式日志管理)