Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置

本实验是在《Zabbix分布式监控(7)—— Zabbix使用JMX监控tomcat》实验基础上进行的,已经配置好了zabbix-server和zabbix-agent主机,server1上已经装好zabbix-java-gateway、server2上已经装好tomcat, server并在zabbix-web界面上配置好了图案的汉字化。

上一篇博客的链接:https://blog.csdn.net/dghfttgv/article/details/105086652

目录

一、proxy简介

  •    1、Zabbix架构中的组建
  •    2、监控流程
  •    3、Zabbix逻辑架构
  •    4、常用的监控架构平台

二、zabbix-proxy分布式监的配置

  •    1、安装部署zabbix-proxy服务
  •             步骤一:在zabbix监控的web界面上移除server3
  •             步骤二:在server3上安装zabbix-proxy
  •             步骤三:修改server3的主机名为proxy,给三个节点添加地址解析
  •             步骤四:数据库
  •             步骤五:开启数据库、初始化数据库
  •             步骤六:登陆数据库,创建数据库,用户授权
  •             步骤七:将数据导入刚创建好的库中
  •             步骤八:配置zabbix-proxy的主配置文件、开启服务
  •   2、在web界面上编辑agent的proxy代理信息
  •   3、在proxy上设置
  •             步骤一:开启proxy服务
  •             步骤二:查看日志
  •   4、在server1上进行设置、查看日志,发现报错
  •   5、在web界面设置将server2上的agent代理程序该为proxy
  •   6、在server2上配置server指向proxy
  •            步骤一:编辑zabbix_agent的主配置文件 、重启zabbix-agent服务在server2上查看是否已经在server3的监控中
  •            步骤二:查看看日志
  •            步骤三:在server1上重新加载,使得server1和proxy数据同步
  •            步骤四:在server1上查看日志(发现没有报错)
  •            步骤五:在server2上查看日志看数据是否同步成功
  •   7、设置proxy监控java的功能
  •            步骤一:在进行上诉的实验后登录并刷新web界面
  •            步骤二:配置zabbix_proxy主配置文件开启proxy中的javagateway并且指向server端
  •            步骤三:查看日志(查看是否已经关联成功!!!)
  •            步骤四:再次刷新(查看实验结果 )

 

一、proxy简介

1、Zabbix架构中的组建

  1. Zabbix-server: C语言
  2. Zabbix-agent: C语言
  3. Zabbix-web: GUI用于用于实现zabbix的设定和展示,PHP开发
  4. Zabbix-proxy: 分布式监控环境中专用组件

 

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第1张图片

 

2、监控流程

一个监控系统运行的大概的流程是这样的:

agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,
zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。

 

【主动监测】通信过程如下:

zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems数据值server或者proxy。
很多人会提出疑问:zabbix多久获取一次active items?它会根据配置文件中的RefreshActiveChecks的频率进行,
如果获取失败,那么将会在60秒之后重试。分两个部分:
 

  • (1)获取ACTIVE ITEMS列表
  1.     Agent打开TCP连接(主动检测变成Agent打开)
  2.     Agent请求items检测列表
  3.     Server返回items列表
  4.     Agent 处理响应
  5.     关闭TCP连接
  6.     Agent开始收集数据

(2)主动检测提交数据过程如下:

  Agent建立TCP连接
    Agent提交items列表收集的数据
    Server处理数据,并返回响应状态
    关闭TCP连接

【被动监测】通信过程如下:

  1.     Server打开一个TCP连接
  2.     Server发送请求agent.ping\n
  3.     Agent接收到请求并且响应
    1
  4.     Server处理接收到的数据1
  5.     关闭TCP连接

 

这里,被动模式每次都需要打开一个tcp连接,这样当监控项越来越多时,就会出现server端性能问题了。

那实际监控中是用主动的还是被动的呢?这里主要涉及两个地方:
1、新建监控项目时,选择的是zabbix代理还是zabbix端点代理程式(主动式),前者是被动模式,后者是主动模式。
2、agentd配置文件中StartAgents参数的设置,如果为0,表示禁止被动模式,否则开启。
一般建议不要设置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式。

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第2张图片

 

3、Zabbix逻辑架构

定义一个template模板,里面包括多个items,trigger,graphs套用给host或者hostgroups。
server监控项目items通过zabbix poller进程(可以有多个进程实现并发处理)包括snmp,agent协议收集被监控主机信息。
如果阈值超过triggers触发器规定,就是形成一个events事件,然后actions处理动作
(包括运行预先定制的脚本,不成功发送email或SMS)。
在服务器升级的时候提前设定maintenance维护模式不对服务器产生告警通知。

通过逻辑拓扑图展示工作流程

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第3张图片

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第4张图片

 

4、常用的监控架构平台

1、server-agentd模式:
这个是最简单的架构了,常用于监控主机比较少的情况下。
2、server-proxy-agentd模式:
这个常用于比较多的机器,使用proxy进行分布式监控,有效的减轻server端的压力。

当需要监控的agent很多的时候,并且每个agent上面有很多的数据项被监控,这对于zabbix-server来说无疑是一种压力
因此zabbix-server不再主动去找agent,而是由zabbix-proxy去主动找agent拿监控的数据,然后再发送给zabbix-server
这样就可以缓解监控方zabbix-server的压力

 

二、zabbix-proxy分布式监的配置

实验环境

主机名         ip 服务 说明
server1 172.25.6.1 zabbix-server,zabbix-web,mariadb-server  zabbix-agent zabbix-server监控方
server2 172.25.6.2 zabbix-agent zabbix-agent被监控方
server3 172.25.6.3 zabbix-proxy zabbix-proxy代理

 

本实验的原理 :

zabbix-server<----------zabbix-proxy------------>zabbix-agent
proxy主动去采集被监控方agent的数据然后再主动发给server

实验步骤:

1、安装部署zabbix-proxy服务

步骤一:

在zabbix监控的web界面上

删除server3主机,因为要把server3主机作为zabbix-proxy

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第5张图片

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第6张图片

停止zabbix-agent服务以免对实验造成影响

[root@server3 ~]# systemctl stop zabbix-agent.service 
[root@server3 ~]# systemctl disable zabbix-agent.service 

 

步骤二:

在server3上安装zabbix-proxy

[root@server3 ~]# yum install zabbix-proxy-mysql.x86_64  -y      ##安装proxy软件
[root@server3 ~]# systemctl stop firewalld                       ##关闭防火墙

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第7张图片

注意:安装的时候使用的是真机的网络yum源,因此需要关闭真机的防火墙

 

步骤三:

修改server3的主机名为proxy,给三个节点添加地址解析

1、修改主机的名称 

[root@server3 ~]# hostnamectl set-hostname proxy        ##修改主机名 
[root@server3 ~]# exit 
logout
Connection to 172.25.6.3 closed.
[root@foundation6 kiosk]# ssh 172.25.6.3
[email protected]'s password: 
Last login: Tue Mar 24 15:40:14 2020 from foundation6.ilt.example.com
[root@proxy ~]# 

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第8张图片

 

2、在server1、server2上添加解析

[root@server2 ~]# vim /etc/hosts
...

172.25.6.3    server3 proxy
 
...

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第9张图片

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第10张图片

 

步骤四:

安装数据库,这里的数据库用来存放监控项模板
zabbix-server会告诉zabbix-proxy应该去拿哪些数据,因此zabbix-proxy也要有数据库

[root@proxy ~]# yum install mariadb-server.x86_64 -y     ##安装数据库

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第11张图片

 

步骤五:

开启数据库、初始化数据库

[root@proxy ~]# systemctl start mariadb.service      ##开启数据库
[root@proxy ~]# systemctl enable mariadb.service     ##开机自启
[root@proxy ~]# mysql_secure_installation            ##初始化数据库 

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第12张图片

 

步骤六:

登陆数据库,创建数据库,用户授权

[root@proxy ~]# mysql -uroot -pppp
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'ppp';

登录查看数据库授权是否成功 
[root@proxy ~]# mysql -uzabbix -pppp               ##使用zabbix登录数据库 
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| zabbix_proxy       |                              ##看到zabbix_proxy成功!! 
+--------------------+

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第13张图片

登录验证数据库创建是否成功 

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第14张图片

 

步骤七:

将数据导入刚创建好的库中

[root@proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql-4.4.1/schema.sql.gz | mysql -pppp zabbix_proxy       ##将数据到取数据库中 

查看是否导入成功
[root@proxy ~]# mysql -uzabbix -pppp              ##登录数据库中 
MariaDB [(none)]> use zabbix_proxy                ##进入zabbix_proxy下
MariaDB [zabbix_proxy]> show tables;              ##查看数据库中的信息

验证数据库导入是否成功

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第15张图片

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第16张图片

(发现数据库中多出来很多表九说明导入成功!!!)

 

步骤八:

配置zabbix-proxy的主配置文件、开启服务

[root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf       ##修改配置文件 
...

Server=172.25.6.1                                       ##服务主机的ip改为server1
ServerPort=10051                                        ##服务主机监听的端口 
Hostname=proxy                                          ##proxy主机的名称
DBPassword=ppp                                          ##数据库的登录密码
...

[root@proxy ~]# systemctl start zabbix-proxy.service    ##开启zabbix—proxy服务 
[root@proxy ~]# systemctl enable zabbix-proxy.service 

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第17张图片

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第18张图片

 

2.在web界面设置

步骤一:

编辑agent的proxy代理信息

管理—> agent代理程序 —>创建代理 —> 填写信息 —>添加

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第19张图片

 

3、在proxy上设置

步骤一:

开启proxy服务

[root@proxy ~]# systemctl start zabbix-proxy.service 
[root@proxy ~]# 
[root@proxy ~]# systemctl enable zabbix-proxy.service 

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第20张图片

 

步骤二:

查看日志

步骤二:

查看日志

[root@server2 ~]# cat /var/log/zabbix/zabbix_agentd.log

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第21张图片

 

 

4.在server1上进行设置

查看日志,发现报错

[root@server1 ~]# cat /var/log/zabbix/zabbix_server.log 

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第22张图片

 

5.在web界面设置

将server2上的agent代理程序该为proxy

配置—> 主机 —> server2—> agent代理程序接口—> agent代理程序检测 —> 更新

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第23张图片

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第24张图片

 

将server2上的agent代理程序该为proxy

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第25张图片

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第26张图片

 

6、在server2上配置server指向proxy

步骤一:

编辑zabbix_agent的主配置文件 、重启zabbix-agent服务在server2上查看是否已经在server3的监控中

[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf 
...

Server=172.25.6.3             ##将服务指向agent主机 
ServerActive=172.25.6.3

...

[root@server2 ~]# systemctl restart zabbix-agent.service            ##重启服务

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第27张图片

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第28张图片

 

步骤二:

查看看日志(检查设置是否成功!!!)

[root@server2 ~]# cat /var/log/zabbix/zabbix_agentd.log     ##查看日志信息 

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第29张图片

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第30张图片

 

步骤三:

在server1上重新加载,使得server1和proxy数据同步

[root@server1 ~]# zabbix_server -R config_cache_reload      ##重新载入使proxy数据和server1上的数据同步

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第31张图片

 

步骤四:

在server1上查看日志(发现没有报错)

[root@server1 ~]# cat /var/log/zabbix/zabbix_server.log 

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第32张图片

 

步骤五:

在server2上:

重启proxy,查看日志

发现proxy可以收到server发给它的数据项模板

[root@server2 ~]# cat /var/log/zabbix/zabbix_agentd.log     ##查看日志信息 

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第33张图片

发现agent正常启动

 

 

7、设置proxy监控java的功能

步骤一:

在进行上诉的实验后登录并刷新web界面

发现agent的zabbix监控正常,但是jmx是灰色的
因为agent是指向proxy的,但是proxy上面没有javagateway服务

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第34张图片

 

步骤二:

配置zabbix_proxy主配置文件

开启proxy中的javagateway并且指向server端

[root@proxy ~]# vim  /etc/zabbix/zabbix_proxy.conf   
...
JavaGateway=172.25.6.1            ##添加JavaGateway
JavaGatewayPort=10052             ##监听的端口信息 
StartJavaPollers=5
...

[root@proxy ~]# systemctl restart zabbix-proxy.service           ##重启服务

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第35张图片

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第36张图片

重启zabbix-proxy服务

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第37张图片

 

步骤三:

查看日志(查看是否已经关联成功!!!)

[root@proxy ~]# cat /var/log/zabbix/zabbix_proxy.log     ##查看日志信息 

 

步骤四:

再次刷新(查看实验结果 )

Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置_第38张图片

你可能感兴趣的:(Zabbix分布式监控(8)—— zabbix-proxy分布式监控配置)