集中式日志管理的优势 在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分。查看服务器、交换机、路由器和其他网络设备的日志,可以帮助网管员迅速了解和诊断问题。通过使用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/
启动httpd和mysqld服务并设置开机启动 为防止在默认配置下出现错误提示,修改/etc/hosts文件添加本机的IP和hostname的对应关系 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数据库并授权给用户 [iyunv@sta4 html]# mysql mysql> CREATE DATABASE loganalyzer; mysql> GRANT ALL ON loganalyzer.* TO'userlog'@'localhost' IDENTIFIED BY 'redhat'; mysql> FLUSH PRIVILEGES;
创建所需的表
创建表完成,点击下一步创建用户;
创建管理员用户
创建一个存储日志的数据库: 首先用系统自带的脚本进行初始化 [iyunv@sta2 ~]# mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql 查看生成的数据库和表
[iyunv@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.", 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服务器,这里暂不做介绍。
|