部署rsyslog+loganalyzer日志服务器

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
简介:

一、简要说明 

    日志记录了对服务器系统的一切操作,因此,对服务器日志的管理,是我们每个运维人员每天的必要工作,也是评估服务器安全状况的有效手段之一,可是如何管理众多服务器的日志?如果要是一台一台看的话,怕是不止盯的眼花缭乱,累也的累坏了。

    所以,我们要搭建一台日志服务器,要把所有服务器的日志通通存到这台远程日志服务器上来,这样,不仅可以集中管理、评估各服务器的安全状况,还可以减少各服务器的磁盘占用率。

    即使所有服务器的日志都保存在一台服务器上的mysql(也可存到本地磁盘)了,如何管理、分析这些日志也是一个问题,好在有loganalyzer这个日志分析工具,它会让日志分析变得so easy!

    服务器说明:192.168.200.106是rsyslog日志服务器,其它服务器均为rsyslog客户端

二、部署rsyslog+loganalyzer日志服务器

    我们的首要工作即是配置好rsyslog服务器,接下来的任务即是部署loganalyzer这个日志分析工具,这就是一个LAMP,直接yum安装,配置配置参数就搞定了。但此次,在公司部署的时候,却碰到几个问题,导致日志服务器不能正常获取各服务器的日志数据,因此,部署过程中还是需要细心的,下面就进入正题。

1、配置rsyslog日志服务器

(1)安装软件包

    因为rsyslog要把日志存到mysql中,所以要有mysql服务器,还要有rsyslog配置文件加载连接mysql的模块

1
[root@rsyslog ~] # yum -y install rsyslog mysql-server rsyslog-mysql

(2)配置数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[root@rsyslog ~] # rpm -ql rsyslog-mysql            #首先查看rsyslog-mysql安装生成了那些文件
/lib64/rsyslog/ommysql .so
/usr/share/doc/rsyslog-mysql-5 .8.10
/usr/share/doc/rsyslog-mysql-5 .8.10 /createDB .sql    #此sql文件就是需要导入到数据库中的数据文件
#
[root@rsyslog ~] # service mysqld start             #启动mysqld服务
[root@rsyslog ~] # mysql                            #连接mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection  id  is 2
Server version: 5.1.73 Source distribution
 
Copyright (c) 2000, 2013, Oracle and /or  its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and /or  its
affiliates. Other names may be trademarks of their respective
owners.
 
Type  'help;'  or  '\h'  for  help. Type  '\c'  to  clear  the current input statement.
 
mysql> 
mysql> 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
test                |
+--------------------+
3 rows  in  set  (0.00 sec)   #此时,只有3个库
#
mysql>  source  /usr/share/doc/rsyslog-mysql-5 .8.10 /createDB .sql;    #导入rsyslog的数据文件
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Syslog             |
| mysql              |
test                |
+--------------------+
4 rows  in  set  (0.01 sec)
mysql> use Syslog;               #Syslog即是记录日志文件的数据库
Reading table information  for  completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------------+
| Tables_in_Syslog       |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
+------------------------+
2 rows  in  set  (0.00 sec)
#
#接下来,即是为rsyslog服务器授权。此处一定是rsyslog服务器的IP
#如果写成各服务器的IP,那就错了
mysql> grant all on Syslog.* to  'syslogroot' @ '127.0.0.1'  identified by  'syslogpass' ;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on Syslog.* to  'syslogroot' @ '192.168.200.106'  identified by  'syslogpass' ;
Query OK, 0 rows affected (0.04 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> \q
Bye

(3)修改rsyslog日志服务器配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@rsyslog ~] # grep -v "^$" /etc/rsyslog.conf | grep -v "^#"
$ModLoad imuxsock
$ModLoad imklog
$ModLoad imudp             #加载udp的模块
$UDPServerRun 514          #允许接收udp 514的端口传来的日志
$ModLoad imtcp             #加载tcp的模块
$InputTCPServerRun 514     #允许接收tcp 514的端口传来的日志
$ModLoad ommysql           #加载mysql的模块
$ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat
$IncludeConfig  /etc/rsyslog .d/*.conf
*.*       :ommysql:192.168.200.106,Syslog,syslogroot,syslogpass       #添加此行,所有设施的所有日志都记录到此数据库服务器的Syslog数据库中,以syslogroot用户,syslogpass密码访问数据库
local7.*                           /var/log/boot .log
$template SpiceTmpl, "%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
:programname, startswith,  "spice-vdagent"    /var/log/spice-vdagent .log;SpiceTmpl

(4)修改完成后,重启rsyslog服务

1
2
3
[root@rsyslog ~] # service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

2、配置rsyslog客户端

(1)修改配置文件

1
2
3
4
5
6
7
8
9
[root@mariadb ~] # grep -v "^$" /etc/rsyslog.conf | grep -v "^#"
$ModLoad imuxsock  # provides support for local system logging (e.g. via logger command)
$ModLoad imklog    # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig  /etc/rsyslog .d/*.conf
*.*       @192.168.200.106
*.*       :ommysql:192.168.200.106,Syslog,syslogroot,syslogpass
$template SpiceTmpl, "%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
:programname, startswith,  "spice-vdagent"    /var/log/spice-vdagent .log;SpiceTmpl

(2)修改完成后,重启rsyslog服务

1
2
3
[root@rsyslog ~] # service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

验证客户端日志文件的存放

(1)使用logger生成一条日志信息

1
[root@mariadb ~] # logger -p info "I'm mariadb"

(2)在rsyslog服务器上验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@rsyslog ~] # mysql
mysql> use Syslog;
mysql>  select  * from SystemEvents\G
*************************** 279. row ***************************
                 ID: 279
         CustomerID: NULL
         ReceivedAt: 2014-08-13 20:07:39
DeviceReportedTime: 2014-08-13 20:07:40
           Facility: 1
           Priority: 6
           FromHost: mariadb
            Message:  I'm mariadb         #我在做的时候,就是因为第二部的1的(2)中mysql授权时,写的是客户端IP,导致这里获取不到数据。
         NTSeverity: NULL                 #因此,在数据库授权的时候,要授权的是rsyslog日志服务器的IP
         Importance: NULL
        EventSource: NULL
          EventUser: NULL
      EventCategory: NULL
            EventID: NULL
    EventBinaryData: NULL
       MaxAvailable: NULL
          CurrUsage: NULL
           MinUsage: NULL
           MaxUsage: NULL
         InfoUnitID: 1
          SysLogTag: root:
       EventLogType: NULL
    GenericFileName: NULL
           SystemID: NULL
          processid: 
           checksum: 0
279 rows  in  set  (0.00 sec)

到这里,rsyslog日志服务器就部署完成了,但此时日志处于rsyslog日志服务器的mysql数据库中,并不方便查看与管理,所以我们再部署一个loganalyzer日志分析器,来减小日志管理的复杂度

三、部署loganalyzer日志分析器

1、安装LAMP环境

1
2
3
[root@rsyslog ~] # yum -y install httpd php php-mysql php-gd
[root@rsyslog ~] # mkdir /var/www/html/loganalyzer/
mkdir : created directory ` /var/www/html/loganalyzer/ '

2、解压loganalyzer源码包

1
2
3
4
5
6
7
8
9
10
11
12
[root@rsyslog ~] # tar xf loganalyzer-3.6.5.tar.gz
[root@rsyslog ~] # cd loganalyzer-3.6.5
[root@rsyslog loganalyzer-3.6.5]
[root@rsyslog loganalyzer-3.6.5] # ls
ChangeLog  contrib  COPYING  doc  INSTALL  src
[root@rsyslog loganalyzer-3.6.5] # mv src/* /var/www/html/loganalyzer/          #src下是php的网页文件
[root@rsyslog loganalyzer-3.6.5] # ls contrib/
configure.sh  secure.sh
[root@rsyslog loganalyzer-3.6.5] # mv contrib/* /var/www/html/loganalyzer/      #contrib目录下的两个脚本,可以打开看看
#
[root@rsyslog loganalyzer-3.6.5] # cd /var/www/html/loganalyzer/
[root@rsyslog loganalyzer] # sh configure.sh                                    #执行脚本

3、配置httpd

    修改DocumentRoot网页根目录

1
2
3
4
[root@rsyslog ~] # vim /etc/httpd/conf/httpd.conf 
DocumentRoot  "/var/www/html/loganalyzer"
#
[root@rsyslog ~] # service httpd start

4、配置httpd和mysql开机启动

1
2
[root@rsyslog ~] # chkconfig mysqld on
[root@rsyslog ~] # chkconfig httpd on

5、创建loganalyzer数据库,并授权

1
2
3
4
5
6
7
8
[root@rsyslog ~] # mysql
Enter password:
mysql> create database loganalyzer;
Query OK, 1 row affected (0.04 sec)
mysql> grant all on loganalyzer.* to dianyi@ '192.168.200.106'  identified by  'dianyi123' ;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

6、安装loganalyzer

(1)安装界面

wKioL1PsIlfiOLZeAABquvXDTC4299.png

(2)step 1

wKiom1PsIVTTUlnbAADM3WKzmDk997.png

(3)step 2

wKioL1PsIonz2zexAADqKOiUPOM107.png

(4)setp 3

    在这一步,需要建立一个数据库来授权监控服务器访问

1
2
3
mysql>create database loganalyzer;
mysql>grant all on loganalyzer.* to loguser@ '192.168.200.106'  identified by  'dianyi_888' ;
mysql>flush privileges;

wKiom1PsIYaixqQbAAEZ8AIpcvc759.png

(5)setp 4

wKioL1PsIraDnTUFAADZM7ZNkGk359.png

(6)setp 5

wKioL1PsIs7RkNMTAAKJgP4gbwE940.png

(7)step 6

wKioL1PsIumTCKMbAAB_sTB70ns683.png

(8)setp 7

wKioL1PsIv_ADEgwAADnh60ziIo232.png

(9)setp 8

wKiom1PsIf3SUHv8AABN8J_yFCY473.png

(10)开始报错

wKioL1PsIynRWp_OAAEdNAQ1GfY306.png

排错阶段

1、重新安装

wKioL1PsI1XjP7MxAABIUlA92OQ550.png

2、修改表名为正确的表名

wKioL1PsI2jhZr3gAADcNzodDiY820.png

3、安装完成,enjoy it

wKioL1PsI4Xzsae8AAJd-IwfiuI760.png










本文转自 nmshuishui 51CTO博客,原文链接:http://blog.51cto.com/nmshuishui/1539784,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
235
分享
相关文章
【赵渝强老师】PostgreSQL的服务器日志文件
本文介绍了PostgreSQL数据库的物理存储结构,重点讨论了服务器日志文件。通过`pg_ctl`命令启动PostgreSQL实例时,使用`-l`参数指定日志文件位置,记录数据库启动、运行及关闭过程中的关键信息。附有相关视频讲解和日志文件示例。
169 0
DeepSeek服务器繁忙解决方法:使用阿里云一键部署DeepSeek个人网站!
通过阿里云一键部署DeepSeek个人网站,解决服务器繁忙问题。学生用户可领取300元代金券实现0成本部署,普通用户则可用99元/年的服务器。教程涵盖从选择套餐、设置密码到获取百炼API-KEY的全流程,助您快速搭建专属大模型主页,体验DeepSeek、Qwen-max、Llama等多款模型,无需代码,最快5分钟完成部署。支持绑定个人域名,共享亲友使用,日均成本仅约1元。
96 10
告别服务器繁忙,云上部署DeepSeek
本文以 DeepSeek-R1-Distill-Qwen-32B-FP8 为例,向您介绍如何在GPU实例上使用容器来部署量化的 DeepSeek-R1 蒸馏模型。
Vue项目部署:如何打包并上传至服务器进行部署?
以上就是Vue项目打包及部署的方法,希望对你有所帮助。描述中可能会有一些小疏漏,但基本流程应该没有问题。记住要根据你的实际情况调整对应的目录路径和服务器IP地址等信息。此外,实际操作时可能会遇到各种问题,解决问题的能力是每一位开发者必备的技能。祝你部署顺利!
80 17
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
一键部署OpenWebUI+Ollama到阿里云ECS,轻松运行DeepSeek!(保姆级教程)
在当今数据驱动的时代,快速部署和管理大模型成为企业的关键需求。阿里云提供了一键部署OpenWebUI+Ollama的便捷方案,支持本地大模型运行和管理。用户也可以选择连接阿里云百炼的在线模型。
一键部署OpenWebUI+Ollama到阿里云ECS,轻松运行DeepSeek!(保姆级教程)
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
阿里云出手了,DeepSeek服务器拒绝繁忙,免费部署DeepSeek模型671B满血版
阿里云推出免费部署DeepSeek模型671B满血版服务,通过百炼大模型平台,用户无需编码,最快5分钟、最低0元即可完成部署。平台提供100万免费Token,支持DeepSeek-R1和DeepSeek-V3等多款模型调用,有效解决服务器繁忙问题。新手零基础也能轻松上手,享受高效稳定的API调用和自动弹性扩展功能。教程涵盖开通服务、获取API-KEY及配置Chatbox客户端等步骤,详细指引助您快速实现DeepSeek自由。
242 18
【已解决】Matomo本地SMTP配置可以发邮件,但部署到阿里云ECS就发不了邮件
在阿里云ECS上使用Matomo和PHPMailer发送邮件时遇到问题,邮件无法发出且接口调用Pending。经过排查,发现是ECS安全组未开放25/465端口,导致SMTP请求无法正常通信。解决方法为在安全组中配置并开放25/465端口,从而恢复邮件发送功能。
在阿里云ECS上一键部署DeepSeek-R1
Open WebUI 和 Ollama 的联合,通过集成 DeepSeek-R1 的强大功能,赋予每一位用户使用尖端 AI 技术的能力,使得复杂的 AI 技术不再是遥不可及的梦想。无论是研究人员、开发者,还是企业用户,您都能从这一创新中获得新的灵感和增长点。本文介绍通过计算巢一键部署和使用DeepSeek-R1。
在阿里云ECS上一键部署DeepSeek-R1

热门文章

最新文章