Centos6.3下利用rsyslog+loganalyzer+mysql部署日志服务器

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

 作为一名系统运维工程师,平时查看分析LINUX系统日志我觉得是我们每天必做的功课,但时间长了会发现每次查看站点日志都得挨个进后台,几台服务器还可以这么对付,但如果管理成百上千台线上服务器,这种方法就捉襟见肘了。

     后来想了想能不能有一台日志服务器集中管理日志,并以WEB形式将日志显示到前台方便查看,顿时码字的想法油然而生,呵呵。

     本人有一个习惯,那就是会把群里或者网上看到的圈内比较认可的LINUX系统软件先保存在备忘录,等闲下来研究研究,刚好前段时间有位朋友提到rsyslog+loganalyzer集中管理日志,所以今天刚好就抽空研究了下,过程虽有曲折(网上的文档各种坑跌),最后还是利用一天时间搞定,将自己的理解分享给搭建,仅供参考。


我的博客新站已经建好,更多新的内容即将在新站更新。。

欢迎访问     http://www.showerlee.com



     本文档是利用rsyslog+loganalyzer+mysql将网内所有LINUX服务器的系统日志集中到日志服务器进行管理,所有日志会保存在mysql数据库表中

注:loganalyzer在获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中,本文档推荐后者


解决方案:


一.环境部署


操作系统:        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  

*.* :ommysql: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


三.安装loganalyzer

# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.3.tar.gz

# tar zxvf loganalyzer-3.6.3.tar.gz

# cd loganalyzer-3.6.3

# mkdir -p /usr/local/apache2/htdocs/loganalyzer

复制loganalyzer源代码到apache的DocumentRoot下loganalyzer目录

# cp -r src/*   /usr/local/apache2/htdocs/loganalyzer

# cp -r contrib/*  /usr/local/apache2/htdocs/loganalyzer

# chown -R daemon.daemon /usr/local/apache2/htdocs/loganalyzer

通过web向导安装loganalyzer前,必须先执行以下两个脚本

# cd /usr/local/apache2/htdocs/loganalyzer/

# sh configure.sh

# sh secure.sh

注:该脚本实际上是创建该目录下的config.php,并配置该文件权限。


在浏览器输入网址,进入安装向导

http://192.168.7.201/loganalyzer

1.提示没有配置文件,点击here利用向导生成


2.NEXT



3.按照如图输入配置,点击NEXT:

注:点击NEXT时若报错,后台执行如下命令后继续

# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock


4.开始写入数据库,NEXT


5.提示写入成功,NEXT


6.设置管理员账户,配置完毕NEXT


7.设置监控日志保存到mysql数据库中,按照如图配置后NEXT


8.完成配置,FINISH


9.进入登陆界面:

10.进入主界面:

查看loganalyzer是否获取192.168.7.201和192.168.7.74系统日志


利用navicat查看rsyslog服务端和客户端系统日志是否都写入数据库Syslog-SystemEvents表



---------- 大功告成------------


后记:

1.本人在loganalyzer安装向导配置的web后台账户,在登陆界面无法登陆,提示账号或密码错误,不知道是什么原因?最后是在向导一处去掉登陆认证才勉强通过,有遇到相同问题的朋友望帮忙解答。

经过一位朋友指点,终于找到了原因

首先利用以下命令守株待兔

# tail -f /usr/local/mysql/log/mysql.log

然后在loganalyzer向导STEP6输入web后台账号密码后,点击NEXT

查看到mysql.log日志里出现了一条INSERT语句

然后将该语句复制到后台手动执行,看报什么错误

# mysql -uroot -p123456;

> INSERT INTO logcon_users (username, password, is_admin) VALUES ('admin', '00a1f187721cxxxxxxx6bf791e69382c', 1);

ERROR 1364 (HY000): Field 'last_login' doesn't have a default value

提示'last_login'栏不能为空值

OK,直接登录navicat,将这栏设置为允许空值保存即可

从新执行这条语句

> INSERT INTO logcon_users (username, password, is_admin) VALUES ('admin', '00a1f187721cxxxxxxx6bf791e69382c', 1);

Query OK, 1 row affected (0.06 sec)

显示执行成功

利用navicat 查看后台该表,显示成功插入一条记录

重新利用该账号即可成功登录loganalyzer web后台


看来是mysql在执行该语句时,发现last_login栏默认为非空,所以拒绝这条insert语句执行,解决办法就是将该栏设置为允许空值即可

博主在线上老版本mysql-5.0.56无需进行上述手动操作,即可成功登录后台

但本篇出现的问题则是在mysql-5.6.10版本上

看来这应该不算是loganalyzer的BUG,应该是mysql在高版本执行insert语句提高了严谨性

这里给卡在这里的朋友点思路,仅供参考。

在此感谢longeleven11朋友的提点。。。。



2.安装rsyslog可谓是过程曲折,之前本想全部编译安装,最后才发现网上的文档各种误导,编译rsyslog最后花了2个小时安装了其6个依赖包,全部找的老外的文档挨个测试,装完网上给出的文档又不能合理给出如何与系统自带的rsyslog共存保证不冲突,也就是编译的rsyslog的启动方法如何与系统自带的区别,索性就yum吧,实属无奈之举,还有吐槽下google各种间歇性抽风,至于原因,大家都懂的。。。


3.Windows客户端安装(win2008 server 64bit)

1.下载evtsys

http://eventlog-to-syslog.googlecode.com/files/Evtsys_4.4.3_64-Bit.zip


2.解压文件将包内64-Bit文件夹下的所有文件复制C:\Windows\System32下


3.开启evtsys服务

运行- cmd

> cd c:\Windows\System32

> evtsys -i -s 10 -h 192.168.7.11 -p 514

> net start evtsys


4.验证效果

如图:







     本文转自 showerlee 51CTO博客,原文链接:http://blog.51cto.com/showerlee/1231160,如需转载请自行联系原作者


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
348
分享
相关文章
|
14天前
|
CentOS 7.9系统备份:每日定期发送最新备份文件到另一台服务器。
注意,这个解决方案忽略了很多细节,例如错误处理和通知、备份版本控制、循环处理旧的备份文件等等。此外,你也应该尽量保持源服务器和目标服务器之间快速,稳定且安全的网络连接,并且目标服务器应该有足够的空间用于存放每天的备份文件。如果你需要更高级的备份解决方案,可能需要考虑一下使用专门的备份工具或者服务。
49 18
【Syslog】Centos下的syslog服务器配置
通过本文的配置指导,您不仅学会了如何安装和配置 `rsyslog`,还掌握了如何在防火墙中开放必要的端口,并验证服务器的配置是否正确。希望这些知识能够帮助您更好地管理和维护您的Linux系统。
99 15
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
服务器数据恢复—云服务器上mysql数据库数据恢复案例
某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本在生产库上执行,导致生产库上部分表被truncate,还有部分表中少量数据被delete。
87 25
如何解决 MySQL 数据库服务器 CPU 飙升的情况
大家好,我是 V 哥。当 MySQL 数据库服务器 CPU 飙升时,如何快速定位和解决问题至关重要。本文整理了一套实用的排查和优化套路,包括使用系统监控工具、分析慢查询日志、优化 SQL 查询、调整 MySQL 配置参数、优化数据库架构及检查硬件资源等步骤。通过一个电商业务系统的案例,详细展示了从问题发现到解决的全过程,帮助你有效降低 CPU 使用率,提升系统性能。关注 V 哥,掌握更多技术干货。
237 0
【PUSDN】centos查看日志文件内容,包含某个关键字的前后5行日志内容,centos查看日志的几种方法
【PUSDN】centos查看日志文件内容,包含某个关键字的前后5行日志内容,centos查看日志的几种方法
223 0
|
11月前
|
百度搜索:蓝易云【centos系统应用日志文件被删,空间无法释放怎么办】
通过以上方法,你应该能够解决应用日志文件被删除但空间无法释放的问题,并恢复磁盘空间。
100 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等