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

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

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

如何解决这个问题呢?

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

高性能的日志收集、存储、分析架构,同时也是一个可以使用 web 页面查看日志的可视化架构:
rsyslog + mariadb + loganalyzer

一、 server 端的环境准备 和 设置

1.1、安装软件包

bash 复制代码
[root@long90 ~]# dnf install mariadb mariadb-server rsyslog-mysql-8.2102.0-5.el8.x86_64 -y

1.2、配置 mariadb 服务

bash 复制代码
[root@long90 ~]# systemctl restart mariadb.service
[root@long90 ~]# systemctl status mariadb.service
● mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2022-11-28 19:47:31 CST; 21s ago

设置 mysql root 密码

bash 复制代码
[root@long90 ~]# mysqladmin -u root password Tangyulong90?
[root@long90 ~]# cd /usr/share/doc/rsyslog/

测试 mariadb

bash 复制代码
[root@long90 rsyslog]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.28-MariaDB MariaDB Server
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.001 sec)

导入 日志数据库架构 Syslog

bash 复制代码
[root@long90 rsyslog]# mysql -u root -p < mysql-createDB.sql
Enter password:
[root@long90 rsyslog]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.3.28-MariaDB MariaDB Server
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| Syslog             |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.001 sec)

配置用户跟权限

bash 复制代码
MariaDB [(none)]> create user 'syslogroot'@'%';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> grant all on Syslog.* to 'syslogroot'@'127.0.0.1' identified by 'syslogpasswd';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> grant all on Syslog.* to 'syslogroot'@'192.168.8.86' identified by 'syslogpasswd';
Query OK, 0 rows affected (0.000 sec)
MariaDB [none]> grant all on Syslog.* to 'syslogroot'@'192.168.8.8' identified by 'syslogpasswd';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> grant all on Syslog.* to 'syslogroot'@'192.168.8.1' identified by 'syslogpasswd';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> quit;

物理机 win11 ip 192.168.8.1

1.3、 修改 rsyslog 服务的配置文件

服务器端:192.168.8.8

bash 复制代码
[root@long90 rsyslog]# vim /etc/rsyslog.conf
22 # Provides TCP syslog reception
23 # for parameters see http://www.rsyslog.com/doc/imtcp.html
24 module(load="imtcp") # needs to be done just once
25 input(type="imtcp" port="514")
26 module(load="ommysql")

66
67 # 使用 ommysql 模块,将日志信息发送到日志服务192.168.8.8中的 Syslog 数据库
68 *.*     :ommysql:192.168.8.8,Syslog,syslogroot,syslogpasswd

[root@long90 rsyslog]# systemctl restart rsyslog.service

二、测试

2.1、测试数据能否记录到数据库中

bash 复制代码
[root@long90 ~]# logger "this is a test from 192.168.8.8."

MariaDB [Syslog]> select * from SystemEvents\G
*************************** 1. row ***************************
                ID: 1
        CustomerID: NULL
        ReceivedAt: 2022-11-28 20:48:11
DeviceReportedTime: 2022-11-28 20:48:11
          Facility: 1
          Priority: 5
          FromHost: long90
           Message: this is  a test 192.168.8.8; # 看到之前使用 logger 产生的日志信息及代表 rsyslog 可以将日志信息存入数据库中
        NTSeverity: NULL

2.2、设置 客户端 192.168.8.86

bash 复制代码
[root@rhel8 ~]# yum install rsyslog-mysql.x86_64 -y
[root@rhel8 ~]# vim /etc/rsyslog.conf
22 # Provides TCP syslog reception
23 # for parameters see http://www.rsyslog.com/doc/imtcp.html
24 module(load="imtcp") # needs to be done just once
25 input(type="imtcp" port="514")
26 module(load="ommysql")

local7.*                                                /var/log/boot.log
*.*     @192.168.8.8
#*.*    @@192.168.8.8
*.*     :ommysql:192.168.8.8,Syslog,syslogroot,syslogpasswd
[root@rhel8 ~]# systemctl restart rsyslog.service

2.3、在服务端 192.168.8.8 查看数据是否保存到数据库 Syslog 中

bash 复制代码
MariaDB [Syslog]> select * from SystemEvents\G
...
          FromHost: rhel8
           Message: hello this is a test from 192.168.8.86.
        NTSeverity: NULL
...

三、sever (192.168.8.8)端 安装支持 web 页面查看日志的工具 loganalyzer

3.1、下载 loganalyzer-4.1.8.tar.gz

3.2、搭建 LAMP

bash 复制代码
dnf install httpd php php-mysqlnd php-gd -y
tar xf loganalyzer-4.1.8.tar.gz
cd loganalyzer-4.1.8/
cp -r src/* /var/www/html/
cp contrib/* /var/www/html/
cd /var/www/html/
sh configure.sh
systemctl restart httpd
# 创建 loganalyzer 数据库
mysql -u root -p
MariaDB [(none)]> create database loganalyzer;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> create user 'loganalyzer'@'%';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> grant all on loganalyzer.* to loganalyzer@'192.168.8.8' identified by 'loganalyzer';
Query OK, 0 rows affected (0.001 sec)

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

3.3、打开浏览器,部署 loganalyzer











相关推荐
feng_you_ying_li5 分钟前
linux之网络层
linux·运维·网络
未来之窗软件服务13 分钟前
Linux 运维日志删除的多种方式—东方仙盟
linux·运维·服务器·仙盟创梦ide·东方仙盟
卓豪终端管理15 分钟前
IT 运维视角下的终端数据安全:能力框架与落地清单
运维
小雉系统25 分钟前
BcoreOS实战:用一个升级包,让Rocky Linux跑进Debian服务器
linux·运维·服务器·debian
甜到心里的蛋糕33 分钟前
从 QQ 机器人到 B 站 AI 运营:一套可复现的视频流水线踩坑实录
运维·人工智能·python·自动化·视频制作
QYR-分析44 分钟前
26.2% 高增!场内及园区无人物流车,厂内短驳自动化的 L4 货运载体
运维·自动化
熊猫钓鱼>_>1 小时前
鸿蒙 PC 三方库适配复盘:libfvad 1.0 —— 把 WebRTC VAD 做成能装进采集链路的静态库
服务器·开发语言·华为·harmonyos·openharmony·适配·鸿蒙pc
java_logo1 小时前
Docker 部署 DPanel:轻松搭建轻量容器管理平台
运维·docker·容器·podman·容器管理·dpanel·轩辕镜像
时间售卖铺1 小时前
Oracle DQL精髓:从基础到高级实战
运维·数据库·云原生·oracle
分布式存储与RustFS1 小时前
CI 老被 Docker Hub 的 429 卡住,自建 Registry 把镜像搬进内网
运维·docker·开源·镜像仓库·对象存储·ci·rustfs