CentOS 6.3下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
时间:2014-05-18 23:36 来源:linux.it.net.cn 作者:IT网
作为一名系统运维工程师,平时查看分析LINUX系统日志我觉得是我们每天必做的功课,但时间长了会发现每次查看站点日志都得挨个进后台,几台服务器还可以这么对付,但如果管理成百上千台线上服务器,这种方法就捉襟见肘了。
后来想了想能不能有一台日志服务器集中管理日志,并以WEB形式将日志显示到前台方便查看,顿时码字的想法油然而生,呵呵。
本人有一个习惯,那就是会把群里或者网上看到的圈内比较认可的LINUX系统软件先保存在备忘录,等闲下来研究研究,刚好前段时间有位朋友提到rsyslog+loganalyzer集中管理日志,所以今天刚好就抽空研究了下,过程虽有曲折(网上的文档各种坑跌),最后还是利用一天时间搞定,将自己的理解分享给搭建,仅供参考。
本文档是利用rsyslog+loganalyzer+mysql将网内所有LINUX服务器的系统日志集中到日志服务器进行管理,所有日志会保存在mysql数据库表中
注:loganalyzer在获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中,本文档推荐后者
相关阅读:
CentOS 6.0之rsyslog部署日志服务器:http://www.centoscn.com/CentosServer/log/2013/0721/382.html
解决方案:
一.环境部署
操作系统: centos6.3 x64
rsyslog: 系统默认yum源
loganalyzer: loganalyzer-3.6.3
LAMP: httpd-2.4.4,mysql-5.6.10,php-5.4.13
rsyslog server: 192.168.7.201 lamp.example.com
rsyslog client: 192.168.7.74 www2.example.com
1.安装LAMP环境
本博传送门:http://showerlee.blog.51cto.com/2047005/1174141
2.关闭iptables和SELINUX
# service iptables stop
注:这里若要开启iptables服务增加系统安全性
服务端需添加rsyslog UDP 514端口以及loganalyzer TCP 80端口通过规则
# iptables -A INPUT -p udp –dport 514 -j ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -A INPUT -p TCP –dport 80 -j ACCEPT
客户端只需添加OUTPUT通过规则
# iptables -P OUTPUT ACCEPT
从规则可见,rsyslog server端为被动获取数据,client端为主动发送数据
关闭iptables的朋友可以无视。。
# setenforce 0
# vi /etc/sysconfig/selinux
—————
SELINUX=disabled
—————
3.同步时间
# ntpdate asia.pool.ntp.org
二.安装配置rsyslog
(rsyslog server)
# yum install rsyslog rsyslog-mysql -y
注:rsyslog-mysql为rsyslog将日志传送到mysql数据库的一个模块,这里必须安装
# cd /usr/share/doc/rsyslog-mysql-5.8.10/
# mysql -uroot -p123456 < createDB.sql
注:这里导入数据库操作其实博主最后研究了下,就是创建了Syslog库并在该库中创建了两张空表
创建rsyslog用户在mysql下的相关权限
# mysql -uroot -p123456
> grant all privileges on Syslog.* to rsyslog@localhost identified by “123456″;
> flush privileges;
> exit
配置服务端支持rsyslog-mysql模块,并开启UDP服务端口获取网内其他LINUX系统日志
# vi /etc/rsyslog.conf
在#### MODULES ####下添加这两行
——————
$ModLoad ommysql.so
*.* mmysql:localhost,Syslog,rsyslog,123456
——————
注:localhost表示本地主机,Syslog为数据库名,rsyslog为数据库的用户,123456为该用户密码
取消下面三行注释
—————–
$ModLoad immark
$ModLoad imudp
$UDPServerRun 514
—————–
重启服务:
# service rsyslog restart
(rsyslog client)
# yum install rsyslog -y
配置rsyslog客户端发送本地日志到服务端
# vi /etc/rsyslog.conf
末行添加如下内容
——————-
*.* @192.168.7.201
——————-
注:192.168.7.201 为日志服务器端IP地址
重启服务:
# service rsyslog restart
(责任编辑:IT)
作为一名系统运维工程师,平时查看分析LINUX系统日志我觉得是我们每天必做的功课,但时间长了会发现每次查看站点日志都得挨个进后台,几台服务器还可以这么对付,但如果管理成百上千台线上服务器,这种方法就捉襟见肘了。
后来想了想能不能有一台日志服务器集中管理日志,并以WEB形式将日志显示到前台方便查看,顿时码字的想法油然而生,呵呵。 本人有一个习惯,那就是会把群里或者网上看到的圈内比较认可的LINUX系统软件先保存在备忘录,等闲下来研究研究,刚好前段时间有位朋友提到rsyslog+loganalyzer集中管理日志,所以今天刚好就抽空研究了下,过程虽有曲折(网上的文档各种坑跌),最后还是利用一天时间搞定,将自己的理解分享给搭建,仅供参考。 本文档是利用rsyslog+loganalyzer+mysql将网内所有LINUX服务器的系统日志集中到日志服务器进行管理,所有日志会保存在mysql数据库表中 注:loganalyzer在获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中,本文档推荐后者 相关阅读: CentOS 6.0之rsyslog部署日志服务器:http://www.centoscn.com/CentosServer/log/2013/0721/382.html 解决方案: 一.环境部署 操作系统: centos6.3 x64 rsyslog: 系统默认yum源 loganalyzer: loganalyzer-3.6.3 LAMP: httpd-2.4.4,mysql-5.6.10,php-5.4.13
rsyslog server: 192.168.7.201 lamp.example.com rsyslog client: 192.168.7.74 www2.example.com 1.安装LAMP环境 本博传送门:http://showerlee.blog.51cto.com/2047005/1174141 2.关闭iptables和SELINUX # service iptables stop 注:这里若要开启iptables服务增加系统安全性 服务端需添加rsyslog UDP 514端口以及loganalyzer TCP 80端口通过规则 # iptables -A INPUT -p udp –dport 514 -j ACCEPT # iptables -P OUTPUT ACCEPT # iptables -A INPUT -p TCP –dport 80 -j ACCEPT 客户端只需添加OUTPUT通过规则 # iptables -P OUTPUT ACCEPT 从规则可见,rsyslog server端为被动获取数据,client端为主动发送数据 关闭iptables的朋友可以无视。。 # setenforce 0 # vi /etc/sysconfig/selinux ————— SELINUX=disabled ————— 3.同步时间 # ntpdate asia.pool.ntp.org 二.安装配置rsyslog (rsyslog server) # yum install rsyslog rsyslog-mysql -y 注:rsyslog-mysql为rsyslog将日志传送到mysql数据库的一个模块,这里必须安装 # cd /usr/share/doc/rsyslog-mysql-5.8.10/ # mysql -uroot -p123456 < createDB.sql 注:这里导入数据库操作其实博主最后研究了下,就是创建了Syslog库并在该库中创建了两张空表 创建rsyslog用户在mysql下的相关权限 # mysql -uroot -p123456 > grant all privileges on Syslog.* to rsyslog@localhost identified by “123456″; > flush privileges; > exit 配置服务端支持rsyslog-mysql模块,并开启UDP服务端口获取网内其他LINUX系统日志 # vi /etc/rsyslog.conf 在#### MODULES ####下添加这两行 —————— $ModLoad ommysql.so *.* mmysql:localhost,Syslog,rsyslog,123456 —————— 注:localhost表示本地主机,Syslog为数据库名,rsyslog为数据库的用户,123456为该用户密码 取消下面三行注释 —————– $ModLoad immark $ModLoad imudp $UDPServerRun 514 —————– 重启服务: # service rsyslog restart (rsyslog client) # yum install rsyslog -y 配置rsyslog客户端发送本地日志到服务端 # vi /etc/rsyslog.conf 末行添加如下内容 ——————- *.* @192.168.7.201 ——————- 注:192.168.7.201 为日志服务器端IP地址 重启服务: # service rsyslog restart (责任编辑:IT) |