设为首页 收藏本站
查看: 1751|回复: 0

[经验分享] Rsyslog+MySQL+LogAnalyzer部署日志服务器

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-4 08:37:00 | 显示全部楼层 |阅读模式
实验要求

  • 搭建可视化日志搜集分析平台,用于集中搜集日志,并通过可视化日志分析工具呈现;
  • Apps Server是要搜集日志的Nodes,可以有多台,这里我只用1台Node;
  • Rsyslog Server是统一接收各Nodes提交过来的日志,监听在TCP/UDP 514节点;
  • MySQL Server是用于存储提交的日志信息,做独立服务器,也可做Cluster;
  • LogAnalyzer是一款基于LAMP的可视化日志分析工具,后端查询数据库,将结果整理输出;


拓扑如下:

wKioL1Y4QdqQYF0qAAjhMN3X8AA023.jpg

实现机理

Linux上的Rsyslogd能将产生的日志提交到远程日志服务器上,Rsyslog Server不仅可以将日志写入本地文件,还可以通过rsyslog-mysql模块将日志写入数据库中。LogAnalyzer能够对日志信息进行分析并可视化呈现出现,显然通过查询MySQL数据库中存储的日志信息即可完成!


实验步骤1.部署MySQL Server

1.1 安装MySQL
  这里不再赘述安装过程,参考 MariaDB通用二进制部署手册
1.2 创建Rsyslog依赖的数据库
  由于该架构中Rsyslog和MySQL是分离的,MySQL要想接受Rsyslog Server传来的有特定格式的日志信息,那么必须得有特定的数据库,而且该数据库中的表有特定字段去接收特定日志信息。当然这不需要我们来定义。Rsyslog-mysql模块就已经自带了一个createDB.sql语句,能够自动创建特定数据库。

1
2
yum -y install rsyslog-mysql
mysql -h localhost -u root -pzxczxc < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql



这个SQL执行脚本的具体位置可能不同,使用rpm -ql /rsyslog-mysql可以查询到位置!
1.3 为Syslog数据库授权
  默认情况MySQL不允许来自远程的连接,这里我们创建一个专门的用户来对Syslog数据库有全部管理权限,并且可以从远程连接
1
2
mysql>GRANT ALL PRIVILEGES ON Syslog.* TO 'abc'@'10.134.140.65' IDENTIFIED BY 'zxczxc';
mysql>FLUSH PRIVILEGES;



QQ截图20151104083503.png

实验步骤2.部署Rsyslog Server

1.1 安装rsyslogd,安装rsyslog-mysql模块
  默认主流发行版都已安装主程序,无需再安装,若没有#yum -y install rsyslogd
1
yum -y install rsyslog-mysql



1.2 编辑主配置文件
1
2
3
4
5
6
vim /etc/rsyslog.conf
#### MODULES ####
$ModLoad onmysql     --->加载连接mysql数据库模块
authpriv.* :onmysql:10.134.140.65,Syslog,abc,zxczxc
$ModLoad imudp
$UDPServerRun 514    --->监听在udp514搜集nodes日志



QQ截图20151104083520.png
1.3 重启服务即可
1
service rsyslog restart



实验步骤3.部署Nodes


所谓Nodes,即需要搜集信息的Servers,只需要编辑主配置文件即可
1
2
3
4
vim /etc/rsyslog.conf
在最后行,添加你要搜集并提交给日志服务器的日志分类.级别

authpriv.* @10.134.140.64



保存并重启服务!
请注意:这里的含义是将authpriv.*的日志信息提交给日志服务器10.134.140.64,目的端口默认就是步骤2中配置的udp514。

  • rsyslog.conf默认的配置选项日志搜集仍然会生效!只不过保存在本地,如果不想保存在本地了,只需要注释掉那行,只保留 @10.134.140.64 即可;
  • 搜集日志信息是以 facility.priority 来规定的,如authpriv.*表示认证授权类的所有级别都搜集

具体的分类和级别可以使用man手册。

实验步骤3.简单测试

现在一套简单的日志搜集模型搭建完毕,所有的nodes上登录认证授权日志信息会被记录提交给Rsyslog Server,并写入数据库中,那么我们尝试错误登录10.134.140.63这台机器,然后查看数据库呢!
3.1 模拟2次错误登录

wKiom1Y4TFOSX8c2AAU88DgnSpI893.jpg
3.2 查询MySQL数据库
这里为了显示直观,我使用了Navicat For MySQL连接工具查看
QQ截图20151104083528.png

成功,接下来我们只需要整合LogAnalyzer即可!

实验步骤4.整合LogAnalyzer并测试

LogAnalyzer自身是PHP语言写的,需要PHP引擎,显然要和Apache结合,而日志源在后端MySQL Server上,所以需要php-mysql驱动,所以直接搭建一套LAMP环境即可。可以参考博文 编译安装LAMP
这里我直接使用yum来安装!
4.1 安装LAMP环境

1
yum -y install httpd php php-mysql php-gd



我这里yum源为Aliyun的Centos-6,安装的LAMP版本如下
QQ截图20151104083536.png
4.2 下载LogAnalyzper并解压到网站根目录
LogAnalyzper的官网是http://loganalyzer.adiscon.com/
此处我选择了最新版4.1.3来做试验
1
2
3
4
5
6
7
8
9
wget
tar -zxvf loganalyzer-4.1.3.tar.gz
cp -r loganalyzer-4.1.3/src /var/www/html/log
cp loganalyzer-4.1.3/contrib/* /var/www/html/log
cd /var/www/html/log
chmod +x configure.sh secure.sh
./configure.sh
./secure.sh
chmod 666 config.php



4.3 启动httpd并进行初始化安装配置

1
service httpd start



接着打开浏览器,访问http://10.134.140.66/log/install.php 具体目录可依据实体情况更改。
QQ截图20151104083546.png

Next,确定配置文件
QQ截图20151104083553.png

Next,配置日志显示信息等
wKioL1Y4Y33zBTm0ABS3MPBoWTs044.jpg

Next,指明后端MySQL数据库连接信息
『这里我理解出错了,这里如果Enable User Database会将LoyAnalyzper自身产生的数据保存到后端数据库中,会在后端数据库中插入相关表,而不是指定搜集到的日志源,日志源配置真正实在Setp 7』

wKiom1Y4ZCKgO8pdAAIPFLcgwq0353.jpg

Next,在后端MySQL数据库中创建表
wKiom1Y4ZXWAvf_jABGayDPfRWg861.jpg

Next,创建用于管理LogAnalyzper的账号密码

wKioL1Y4Zb-A7-GRABAyaK9BrIc385.jpg

Next,在后端MySQL数据库中创建第一条测试日志消息
『真正指定搜集日志源的地方,这里指定我们的MySQL Server』
wKioL1Y4Zl_wRUWhABb9YDFh2y8937.jpg

Next,完成!
wKioL1Y4ZkSwaLFwAA6hCOIJIYs265.jpg

4.4 通过网页日志记录吧!
QQ截图20151104083606.png

几点小结:

  • 这个架构中数据库角色其实可以直接装在Rsyslog Server上,但是出于测试的目的,这是是剥离的
  • Rsyslog Server既可以监听在TCP514也可以UDP514,不过通常推荐在UDP514,你懂的;
  • 请注意:如果Nodes上指明了提交给Rsyslog Server搜集,那么建议将/etc/rsyslog.conf中其他无关行注释掉,即仅提交给远程服务器,当然可以适当指定一些高级别日志信息再存放一份于本地;
  • MySQL远程链接要授权,MySQL远程链接要授权,MySQL远程链接要授权,重要的话说三遍。
  • 小规模的系统日志搜集这种架构还可以,但是对于WEB服务器日志收集显然不适合,这种架构不适合大并发日志模型,中小型可以参考ELK日志架构!



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-134747-1-1.html 上篇帖子: rsyslog+mysql+loganalyzer 环境搭建日志服务器 下篇帖子: CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器 服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表