Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >构建可视化日志管理服务器

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

作者头像
星哥玩云
发布于 2022-09-15 07:29:05
发布于 2022-09-15 07:29:05
54700
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

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

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

如何解决这个问题呢?

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

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

rsyslog+mariadb+loganalyzer

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

server端的环境准备和设置

setp 1 安装所需要的软件包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zutuanxue ~]# dnf install mariadb mariadb-server rsyslog-mysql -y

step 2 启动mariadb服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zutuanxue ~]# systemctl restart mariadb
[root@zutuanxue ~]# systemctl status mariadb

**step 3 设置mariadb **

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
##将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
代码运行次数:0
运行
AI代码解释
复制
#允许一个叫syslogroot的用户从127.0.0.1192.168.1.55192.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
代码运行次数:0
运行
AI代码解释
复制
[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
代码运行次数:0
运行
AI代码解释
复制
[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
代码运行次数:0
运行
AI代码解释
复制
##安装软件包
[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
代码运行次数:0
运行
AI代码解释
复制
[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
代码运行次数:0
运行
AI代码解释
复制
[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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux 日志服务器搭建(rsyslog+loganalyzer)
环境:CentOS 5.3 x32 日志服务器环境:nginx php mysql rsyslog rsyslog-mysql loganalyzer 日志客户端环境:rsyslog 日志服务器        192.168.0.100 日志客户端服务器  192.168.0.101
星哥玩云
2022/06/30
1.7K0
rsyslog+mysql+loganalyzer 环境搭建日志服务器
# mysql -u syslog -h 192.168.2.11 -p      # 输入密码123456,测试是否能正常访问
保持热爱奔赴山海
2019/09/18
1.2K0
rsyslog+mysql+loganalyzer 环境搭建日志服务器
linux日志服务器部署
如果你负责管理数台的 Linux,你得登录每一台Linux 后,才能阅读其中的信息! 这样是不是很麻烦?? 那有没有什么更好的方案呢?
星哥玩云
2022/09/15
7960
在RHEL6.X上安装(rsyslog+mysql+loganalyzer+evtsys)日志服务
1、rsyslog是RHEL或CentOS系统6.x版本的日志服务,代替以前系统的syslog服务。在这个架构中rsyslog服务主要是收集日志的功能,把日志归类,写入数据库。
星哥玩云
2022/06/28
4680
[ELK入门到实践笔记] 一、通过rsyslog搭建集中日志服务器
ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,这是我在ELK学习和实践过程写下的笔记,整理成了一个ELK入门到实践的系列文章,分享出来与大家共勉。本文为该系列文章的第一篇,通过rsyslog搭建集中日志服务器,收集linux和window系统日志。
Bypass
2019/11/07
2.9K0
Rsyslog开源日志服务器
为满足《网络安全法》和《网络安全等级保护》针对安全日志审计的要求,遂作者在对比可多款( syslog、syslog-ng和rsyslog )的日志记录服务器工具后,最终选择了 rsyslog 日志工具来完成企业内部日志收集,并采用 Loki & Promtail 进行日志采集,最后使用Grafana 通过 LogQL 语法进行采集数据查询以及展示,此文深入浅出讲解了从rsyslog初识到实践配置使用,可以让各位运维的同道中人可以快速为企业搭建收集各类网络日志服务器,以满足合规要求!
章工运维
2024/02/29
1.8K0
Rsyslog开源日志服务器
Linux基础——rsyslog日志管理
一、实验要求 搭建日志服务器,rsyslog同mariadb数据库结合,实现将日志条目存储于数据库,(收集两台以上服务器日志,包括message,secure,boot日志) 二、实验
L宝宝聊IT
2018/06/27
1.5K0
ELK 部署可视化网络日志分析监控平台
随着机房内的服务器和网络设备增加,日志管理和查询就成了让系统管理员头疼的事。系统管理员通常面临问题如下:
Kevin song
2020/02/19
4.2K0
rsyslog日志管理[通俗易懂]
rsyslog是一个快速的日志处理系统,具有卓越的性能和出色的安全性,采用模块化设计,他可以从各种数据源中接收输入、转换数据再将结果输出到指定的位置。他不仅适用于企业,也适用于小型系统。
全栈程序员站长
2022/11/08
2K0
rsyslog+loganalyzer日志服务器部署记录
日志功能对于操作系统是相当重要的,在日常运维工作中,无论是系统还是应用等出了任何问题,我们首先想到的便是分析日志,查找问题原因。自从CentOS 6系统开始,CentOS便开始使用rsyslog做为日志收集服务了,相对于之前的syslog它能够支持多线程,数据库存储,支持更多了传输协议等等优点。之前介绍了Linux下rsyslog日志收集服务环境部署记录,下面再结合LogAnalyzer进行部署说明。 LogAnalyzer则是一款基于 PHP 开发的 syslog 日志和其他网络事件数据的 Web 前端。
洗尽了浮华
2018/07/03
2.1K0
从日志服务配置到日记审计溯源
目录 1、 利用rsyslog服务建立日志服务器 1 构建LAMP 1 配置日志服务器数据库 1 配置rsyslogd日志服务器主配置文件 1 配置防火墙 1 客户端安装rsy
天钧
2019/10/14
8300
从日志服务配置到日记审计溯源
部署zabbix监控平台
通过前面的课程我们知道了zabbix的官网给我们提供了一个安装的指导流程,那我们按照这个流程来部署一下zabbix
星哥玩云
2022/09/15
8450
部署zabbix监控平台
MySQL 8.0 数据库审计日志平台部署
数据库审计平台(简称DB Audit),实时记录用户操作数据库的行为,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行实时告警。通过对用户访问数据库行为记录、分析和汇报,来帮助DBA事后生成合规报告、事故追根溯源,同时通过搜索技术提供高效查询审计报告,定位事件原因,以便日后查询、分析、过滤,实现加强内外部数据库网络行为的监控与审计,提高数据资产安全。
贺春旸的技术博客
2023/11/13
1.5K0
MySQL 8.0 数据库审计日志平台部署
MySQL存储日志并使用Loganalyzer作为前端展示
为什么要使用日志 在生产环境中我们可能需要一个较为完整的日志系统来查看运行中主机服务的状态和所作出的操作,我们可以在较大型的网络架构中使用ELK来实现对日志的收集、检索、前端显示,但是中小型架构中使用rsyslog足以对所有服务器的日志进行收集和检索来达到实时分析数据流量的目的。 本文目标 使用rsyslog将两台主机的日志信息存储到MySQL数据库中,并且编译安装Loganalyzer对MySQL中的日志信息使用httpd+php在前端进行展示。 实验拓扑图 实验环境 主机名
小小科
2018/05/04
1.1K0
rsyslog将日志记录于MySQL中并web显示
rsyslog将日志记录于MySQL中 ABC三台机器 A web显示 B 建数据库 C 日志文件 按编号顺序执行 B机器 (1) 准备MySQL Server 并启动 yum install mariadb-server (3) 为rsyslog创建数据库及表; [root@centos7 ~]#mysql >createDB.sql 或者 [root@centos7 ~]#mysql MariaDB [(none)]> source createDB.sql (4) 授权
咻一咻
2020/05/29
1.5K0
【老金知道】Zabbix日志监控前传:rsyslog收集网络设备日志
2. yum install rsyslog-mysql -y #rsyslog使用此模块将数据传入MySQL数据库,必须安装
Zabbix
2021/02/03
5.8K0
日志服务器(1)
当系统或应用很分散时,日志就会很分散,给日志分析带来一定不便,awk,sed,grep 等工具的局限性愈发明显,ELK 可以很好解决这个问题,感兴趣可以参考之前的 ELK 搭建 ,ELK 可以高效且有针对性地解决这类问题,同时也有其复杂度和相应的基础开销,有时对于一套相对较小的系统用起来会有点重,这时使用系统自带的 rsyslog 结合 LogAnalyzer 就可以很方便的满足需求
franket
2021/10/19
8820
rsyslog配置_ssh host key verification fail
Rsyslog的全称是 rocket-fast system for log,它提供了高性能,高安全功能和模块化设计。rsyslog能够接受从各种各样的来源,将其输入,输出的结果到不同的目的地。rsyslog可以提供超过每秒一百万条消息给目标文件。
全栈程序员站长
2022/11/08
5040
zabbix监控mysql主从
更改server、agent1、master、slave主机的/etc/hosts文件
Alone-林
2023/03/17
9420
zabbix监控mysql主从
集中化的日志管理
把日志放到node节点的主机目录上,在到主机目录上配置rsyslog收集到专门的日志服务器。 从这个日志服务器启一个logstash或者filebeat写入es。 不建议直接从每个节点直接写入es。因为日志量大的时候可能es就会被弄死,另外这么多的filebeat也是要占用不少资源的。 如果觉得麻烦,就每个node写个文件监控。自动添加rsyslog的配置然后重启rsyslog。 这样可以保证日志不丢,还能有序插入es不会因为业务高峰把es弄死,还可以利用logstash再进行一些日志格式化的需求。 目前用这个方案,把istio的所有envoy访问日志、traefik、应用程序日志收集到es上稳定的很。现在每15分钟大概150万条记录。
崔哥
2022/05/25
4640
集中化的日志管理
推荐阅读
相关推荐
Linux 日志服务器搭建(rsyslog+loganalyzer)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验