前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >构建可视化日志管理服务器

构建可视化日志管理服务器

作者头像
星哥玩云
发布2022-09-15 15:29:05
4270
发布2022-09-15 15:29:05
举报
文章被收录于专栏:开源部署开源部署

我们可以通过集中式日志服务器将多台机器的日志收集在一个日志服务器,然后通过脚本或者其他方式去分析,但是真正做过运维的小伙伴明白,日子收集在硬盘上,硬盘的空间有限且大文件分析起来IO压力超级大,分析日志需要高超的技术,一般运维人员分析起来会很困难,更无法实时的去查看某个机器的日志。这样的话我们的日志收集就变成了真正意义上的收集了,收集起来如何利用就变成了一个难题,总结一下主要的问题就是以下几点:

  • 日志文件巨大,硬盘IO压力大
  • 无法实时分析
  • 分析需要消耗很多计算机资源且困难

如何解决这个问题呢?

  • IO压力:我们可以将日志收集在数据库中,海量的日志通过分布式存储的底层支撑加上数据库对数据的高效管理,使得数据读写变得轻松,避免了原理日志服务器的IO压力。
  • 无法实时分析:可以部署一个日志分析系统来辅助分析,苦难的分析工作瞬间变得简单。
  • 分析需要消耗很多计算机资源:分布式处理分担处理压力

接下来我就给大家介绍一款高性能的日志收集、存储、分析架构, 同时也是一个可以使用web页面查看日志的可视化架构:

rsyslog+mariadb+loganalyzer

环境准备:与前面课程提到的集中式日志服务器的架构一样,只是这个架构是在server上搭建的,也就是IP地址为192.168.1.55的这台主机上

server端的环境准备和设置

setp 1 安装所需要的软件包

代码语言:javascript
复制
[root@zutuanxue ~]# dnf install mariadb mariadb-server rsyslog-mysql -y

step 2 启动mariadb服务

代码语言:javascript
复制
[root@zutuanxue ~]# systemctl restart mariadb
[root@zutuanxue ~]# systemctl status mariadb

**step 3 设置mariadb **

代码语言:javascript
复制
##将mariadb的管理员密码设置为‘123456’
[root@zutuanxue ~]# mysqladmin -u root password 123456


##建立日志服务需要用到的数据库
[root@zutuanxue ~]# cd /usr/share/doc/rsyslog/
[root@zutuanxue rsyslog]# mysql -u root -p < mysql-createDB.sql 
Enter password: 


##进入到mariadb中验证一下是否有一个叫Syslog的数据库,如果有就代表前面的操作成功
[root@zutuanxue rsyslog]# mysql -u root -p
Enter password: 
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| Syslog             |

step 4 为后面将要用到的用户进行授权,允许用户访问mairadb中的Syslog库

代码语言:javascript
复制
#允许一个叫syslogroot的用户从127.0.0.1、192.168.1.55、192.168.1.18这三个ip地址访问我的数据库,密码为syslogpass,设置完成之后刷新一下并退出(如果你的架构中还有其它的主机,只要修改数据库语句中的IP地址即可)
MariaDB [(none)]> grant all on Syslog.* to 'syslogroot'@'127.0.0.1'identified by 'syslogpass';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> grant all on Syslog.* to 'syslogroot'@'192.168.1.55'identified by 'syslogpass';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> grant all on Syslog.* to 'syslogroot'@'192.168.1.18'identified by 'syslogpass';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> quit
Bye

setp 5 修改rsyslog服务的配置文件

代码语言:javascript
复制
[root@zutuanxue ~]# vim /etc/rsyslog.conf 
7 #### MODULES ####
.
.
.
 24 module(load="imtcp") # needs to be done just once
 25 input(type="imtcp" port="514")
 26 module(load="ommysql")#加载一个叫ommysql的模块是日志服务可以连接mariadb
 .
 .
 65 local7.*                 /var/log    /boot.log
 66 
 #告诉日志服务通过ommysql模块,将日志信息发送到192.168.1.55的Syslog库中,使用的用户名和密码就是我们在前一步设置的syslogroot,syslogpass
 67 *.*     :ommysql:192.168.1.55,Syslog,syslogroot,syslogpass
 
 ##重启日志服务
 [root@zutuanxue ~]# systemctl restart rsyslog

step 6 测试一下日志信息能否记录到数据库中

代码语言:javascript
复制
[root@zutuanxue ~]# logger "hello test test test"
[root@zutuanxue ~]# mysql -u root -p
Enter password: 
MariaDB [(none)]> use Syslog;
Database changed
MariaDB [Syslog]> select * from SystemEvents\G
*************************** 8. row ***************************
                ID: 8
        CustomerID: NULL
        ReceivedAt: 2019-12-07 03:22:31
DeviceReportedTime: 2019-12-07 03:22:31
          Facility: 1
          Priority: 5
          FromHost: localhost
           Message: hello test test test
###如果可以看到我们之前使用logger产生的日志信息及代表rsyslog可以将日志信息存入数据库中

step 7 设置client(192.168.1.18),此步骤是唯一一步需要对client的做出的设置

代码语言:javascript
复制
##安装软件包
[root@zutuanxue ~]# dnf install rsyslog-mysql -y

##修改服务的配置文件添加相应内容(与server端添加的内容一致)
[root@zutuanxue ~]# vim /etc/rsyslog.conf
module(load="ommysql")
*.*     :ommysql:192.168.1.55,Syslog,syslogroot,syslogpass
[root@zutuanxue ~]# systemctl restart rsyslog

###测试一下client的日志信息能否在server端的数据库中查看
###client
[root@zutuanxue ~]# logger "hello this is a test from client 18"


####server端使用与刚才相同的方法去查看内容
MariaDB [Syslog]> select * from SystemEvents\G
*************************** 28. row ***************************
                ID: 28
        CustomerID: NULL
        ReceivedAt: 2019-12-07 03:30:28
DeviceReportedTime: 2019-12-07 03:30:28
          Facility: 1
          Priority: 5
          FromHost: localhost
           Message: hello this is a test from client 18

step 8 server端安装支持web页面查看日志的工具loganalyzer

代码语言:javascript
复制
[root@zutuanxue ~]# dnf install httpd php php-mysqlnd php-gd -y
[root@zutuanxue ~]# tar fx loganalyzer-4.1.8.tar.gz 
[root@zutuanxue ~]# cp -r loganalyzer-4.1.8/src/* /var/www/html/
[root@zutuanxue ~]# cp loganalyzer-4.1.8/contrib/* /var/www/html/
[root@zutuanxue ~]# cd /var/www/html/
[root@zutuanxue html]# sh configure.sh 
[root@zutuanxue html]# systemctl restart httpd

step 9 在mariadb中创建lyzeruser工具需要用到的库、用户并授权

代码语言:javascript
复制
[root@zutuanxue html]# mysql -u root -p
Enter password: 
MariaDB [(none)]> create database loganalyzer;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> grant all on loganalyzer.* to lyzeruser@'192.168.1.55' identified by 'lyzeruser';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> quit
Bye

step 10 打开浏览器,部署loganalyzer

image20191207164609190.png
image20191207164609190.png
image20191207164635046.png
image20191207164635046.png
image20191207164704698.png
image20191207164704698.png
image20191207164929730.png
image20191207164929730.png
image20191207164950624.png
image20191207164950624.png
image20191207165010297.png
image20191207165010297.png
image20191207165056960.png
image20191207165056960.png
image20191207165711728.png
image20191207165711728.png
image20191207165220988.png
image20191207165220988.png
image20191207165748067.png
image20191207165748067.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • rsyslog+mariadb+loganalyzer
  • server端的环境准备和设置
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档