分布式监控

概述

Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控

代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器。

Proxy 特征

当选择使用/不使用proxy时,必须考虑几个注意事项。

  Proxy
轻量级(Lightweight) Yes
图形界面(GUI) No
独立工作(Works independently) Yes
易于维护(Easy maintenance) Yes
自动生成数据库(Automatic DB creation)1 Yes
本地管理(Local administration) No
准备嵌入式硬件 (Ready for embedded hardware) Yes
单向TCP连接(One way TCP connections) Yes
集中配置(Centralised configuration) Yes
生成通知(Generates notifications) No

代理

概述

zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.

此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。

zabbix proxy 使用场景:

  • 监控远程区域设备
  • 监控本地网络不稳定区域
  • 当 zabbix 监控上千设备时,使用它来减轻 server 的压力
  • 简化分布式监控的维护

zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可。

zabbix proxy 数据库必须和 server 分开,否则数据会被破坏。

proxy 收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由proxy配置文件中参数 ProxyLocalBuffer 和 ProxyOfflineBuffer 决定。

注意从Zabbix server数据库直接更新最新配置的proxy可能会比Zabbix server新,而Zabbix server的配置由于cacheupdatefrequency 的原因而无法快速更新。因此,proxy收集发送Zabbix server数据可能会被忽略。

zabbix proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。有关proxy功能的概述,如下表:

功能 proxy支持(yes/no)
项目(Items)  
  Zabbix agent checks Yes
Zabbix agent checks (active) Yes 1
Simple checks Yes
Trapper items Yes
SNMP checks Yes
SNMP traps Yes
IPMI checks Yes
JMX checks Yes
日志文件监控(Log file monitoring) Yes
内部检查(Internal checks) Yes
SSH checks Yes
Telnet checks Yes
外部检查(External checks) Yes
内置web监控(Built-in web monitoring) Yes
网络发现(Network discovery) Yes
自动发现(Low-level discovery) Yes
触发器计算(Calculating triggers) No
处理事件(Processing events) No
发送报警(Sending alerts) No
远程命令(Remote commands) No
[1]使用 agent active 模式,一定要记住在 agent 的配置文件参数 ServerActive 加上 proxy 的 IP 地址。

配置

一旦安装并配置了一个proxy,我们便可以在zabbix管理站点配置它了。

添加 proxies

要在Zabbix前端配置代理:

  • 转到:管理→agent代理程序
  • 单击创建代理

参数 描述
agent代理程序名称 proxy名称。它必须与proxy配置文件中的Hostname参数中的名称相同。
代理模式(Proxy mode) 选择proxy模式
Active – the proxy will connect to the Zabbix server and request configuration data
Passive – Zabbix server connects to the proxy
Note that without encrypted communications (sensitive) proxy configuration data may become available to parties having access to the Zabbix server trapper port when using an active proxy. This is possible because anyone may pretend to be an active proxy and request configuration data if authentication does not take place.
系统代理程序模式 选择proxy模式
主动式 – proxy将连接到Zabbix server并请求配置数据
被动式 – Zabbix server连接到代理proxy
注意,当使用active proxy,未加密通信(敏感)proxy配置数据可用于访问Zabbix server trapper端口。如果不进行身份验证,任何人都可以伪装成active proxy并请求配置数据。
Hosts Add hosts to be monitored by the proxy.
Hosts already monitored by another proxy are greyed out in the Other hosts selection.
主机 添加要由proxy监视的主机。
被另一个proxy监视的主机在其他主机选项中显示为灰色。
Description Enter the proxy description.
描述 输入proxy描述。

该 加密选项卡允许你与proxy的加密连接。

参数 描述
连接代理 服务器如何连接到被动代理:非加密(默认),共享秘钥(PSK)或证书。
从代理连接 从active proxy中选择允许的连接类型。可以同时选择几种连接类型(用于测试和切换到其他连接类型)。默认为“无加密”。
发行者 允许颁发证书。证书首先通过CA(认证机构)验证。如果CA有效,则由CA签名,这时可以使用发行者字段来进一步限制允许的CA。该字段是可选的,如果你的Zabbix安装使用多个CA的证书,则使用该字段。
主体 允许的证书。证书首先通过CA验证。如果它有效,由CA签名,这时主体字段可以用于仅允许一个主体字符串值。如果此字段为空,则接受CA签名的任何有效证书。
共享密钥一致性 共享密钥身份字符串
共享密钥(PSK) 共享密钥(16进制)。如果Zabbix使用mbed TLS(PolarSSL)库,最大长度为64位十六进制(32字节PSK);如果Zabbix使用GnuTLS或OpenSSL库,最大长度为512位十六进制数(256字节PSK)。示例:1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952
 
 

实现分布式监控

三类节点软件安装

1. 监控节点

zabbix-sever-mysql

zabbix-web-mysql

db

2. 被监控节点

zabbix-agent

3. 代理节点

zabbix-proxy-mysql

db

1.准备工作(略)

1. 关闭selinux

2. 关闭iptables

3. 时间同步

4. 互相可解析主机名(一定要保证客户端可以解析代理服务器端的主机名)

2.监控节点安装配置(10.220.5.137)

略。大家可以在我的第一篇博客中详细看下,监控节点如何安装《分布式系统监视zabbix讲解一之zabbix安装–技术流ken

3.配置代理节点(10.220.5.138)

1.安装

[root@ken ~]# yum install zabbix-proxy-mysql mariadb-server -y

2.创建表和数据库用户

mysql> create database zabbix;
Query OK, 1 row affected (0.00 sec) mysql> grant all on *.* to zabbix@'localhost' identified by '123';
Query OK, 0 rows affected, 1 warning (0.05 sec)

3.准备表和数据

[root@proxy ~]# cp /usr/share/doc/zabbix-proxy-mysql-3.0.22/schema.sql.gz ./
[root@proxy ~]# gunzip schema.sql.gz

4.把表和数据导入到数据库

mysql> source /root/schema.sql

5.配置proxy的配置文件

配置文件内容很长,这里列出来几行须要修改的部分,你也可以根据你自己的情况来修改。

[root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf 
ProxyMode=0 #更改为主动模式
Server=10.220.5.137 #指定监控节点
ListenPort=10051 #开启监控端口
   Hostname=proxy #这里要写代理服务器的主机名,并且保证各个节点可以解析/etc/hosts
DBHost=localhost #数据库地址
DBName=zabbix #数据库名字
DBUser=zabbix #数据库用户
DBPassword=123 #用户zabbix的密码

6.启动zabbix-proxy

[root@ken ~]# systemctl restart zabbix-proxy

四.配置zabbix-agent客户端(10.220.5.139)

1.下载zabbix-agent客户端

[root@ken ~]# yum install zabbix-agent -y

2.配置zabbix-agent客户端

[root@ken ~]# vim /etc/zabbix/zabbix_agentd.conf
86 ### Option: Server
87 # List of comma delimited IP addresses (or hostnames) of Zabbix servers and Zabbix proxies.
88 # Incoming connections will be accepted only from the hosts listed here.
89 # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
90 #
91 # Mandatory: yes, if StartAgents is not explicitly set to 0
92 # Default:
93 # Server=
94
95 Server=10.220.5.138 #ip地址指向代理服务器端
96
97 ### Option: ListenPort
98 # Agent will listen on this port for connections from the server.
99 #
100 # Mandatory: no
101 # Range: 1024-32767
102 # Default:
103 # ListenPort=10050
...

133 # Default:
  134 # ServerActive=
  135 
  136 ServerActive=10.220.5.138   #指向代理服务器
  137 
  138 ### Option: Hostname
  139 # Unique, case sensitive hostname.140 # Required for active checks and must match hostname as configured on th e server.
  141 # Value is acquired from HostnameItem if undefined.
  142 #
  143 # Mandatory: no
  144 # Default:
  145 Hostname=proxy             #这里的hostname是指在web页面的zabbix创建的那个代理名称,一定要保持一致
  146 
  147 #Hostname=Zabbix server


客户端只要修改这三处即可。

3.重启zabbix-proxy客户端

[root@ken ~]# systemctl restart zabbix-agent

五.在zabbix网页端添加代理服务器

第一步:创建主机

首先需要把主机,即添加10.220.5.139被监控节点,名字可以随便写,但是后面的代理名字必须和代理服务器的主机名保持一致。

第二步:创建proxy.点击administration>proxies,名字必须和代理服务器的主机名保持一致。

第三步:查看。monitoring>latest data >select(你的主机)

分布式系统监视zabbix讲解七之分布式监控的更多相关文章

  1. 分布式系统监视zabbix讲解七之分布式监控--技术流ken

    分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...

  2. 分布式系统监视zabbix讲解六之自定义监控项--技术流ken

    宏 概述 Zabbix支持许多在多种情况下使用宏.宏是一个变量,由如下特殊语法标识: {MACRO} 根据在上下文中, 宏解析为一个特殊的值. 有效地使用宏可以节省时间,并使Zabbix变地更加高效. ...

  3. 分布式系统监视zabbix讲解六之自定义监控项

    概述 Zabbix支持许多在多种情况下使用宏.宏是一个变量,由如下特殊语法标识: {MACRO} 根据在上下文中, 宏解析为一个特殊的值. 有效地使用宏可以节省时间,并使Zabbix变地更加高效. 在 ...

  4. 分布式系统监视zabbix讲解五之web监控--技术流ken

    Web 监控 概况 你可以使用 Zabbix 检查几个网站可用性方面. 如果要使用 Web 检测功能,必须在 编译Zabbix 的时候加入 cURL(libcurl) 的支持. 要使用 Web 监控, ...

  5. 分布式系统监视zabbix讲解五之web监控

    Web 监控 概况 你可以使用 Zabbix 检查几个网站可用性方面. 如果要使用 Web 检测功能,必须在 编译Zabbix 的时候加入 cURL(libcurl) 的支持. 要使用 Web 监控, ...

  6. 分布式系统监视zabbix讲解二之邮件报警通知--技术流ken

    概述 在上一篇博客<分布式系统监视zabbix讲解一技术流ken>中已经详细讲解了如何安装zabbix,本篇博客将详细讲解如何使用zabbix监控另外一台主机,并实现email报警通知机制 ...

  7. 分布式系统监视zabbix讲解二之邮件报警通知

    概述 在上一篇博客<分布式系统监视zabbix讲解一技术流ken>中已经详细讲解了如何安装zabbix,本篇博客将详细讲解如何使用zabbix监控另外一台主机,并实现email报警通知机制 ...

  8. 分布式系统监视zabbix讲解一之zabbix安装--技术流ken

    zabbix概述 Zabbix是什么 Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持. Zabbix 是一个企业级的分布式开源监控方案. Zabbi ...

  9. 分布式系统监视zabbix讲解九之使用snmp监控windows--技术流ken

    前言 使用zabbix监控windows主要有两种方法,一种是在windows端安装zabbix-agent客户端工具,安装麻烦.另外一种是使用snmp协议,配置简单快捷.两种配置都可以实现同样的效果 ...

随机推荐

  1. 提升团队幸福感之:集成 GitLab && JIRA 实现自动化工作流

    佛罗伦萨 - 圣母百花圣殿(图) 前言 GitLab 和 Jira 是平时开发过程中使用非常高频的代码管理系统(开发人员)和项目管理系统(项目管理),通过两套系统的协作完成平常大多数的功能开发,但是两 ...

  2. 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解

    本文是精讲响应式WebClient第2篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 在上一篇文章为大家介绍了响应式IO模型和WebClient的基本 ...

  3. kali安装open-vm-tools实现虚拟机交互

    普通的VMware tools 弱爆了 安装具有复制粘贴功能的open-vm-tools.servic: 切记:如果之前已经安装了VMware tools,一定要删除:vmware-uninstall ...

  4. Newbe.Claptrap 框架入门,第三步 —— 定义 Claptrap,管理商品库存

    接上一篇 Newbe.Claptrap 框架入门,第二步 —— 简单业务,清空购物车 ,我们继续要了解一下如何使用 Newbe.Claptrap 框架开发业务.通过本篇阅读,您便可以开始学会添加一个全 ...

  5. 如何用VMD将轨迹文件制作动画(转载)

    转载自:http://blog.sina.com.cn/s/blog_63f794950101dtte.html 很多同学想从dcd(NAMD)或者trr(gromac)文件提取一段轨迹文件做成动画. ...

  6. 使用Wasserstein GAN生成小狗图像

    一.前期学习经过 GAN(Generative Adversarial Nets)是生成对抗网络的简称,由生成器和判别器组成,在训练过程中通过生成器和判别器的相互对抗,来相互的促进.提高.最近一段时间 ...

  7. 基于伪分布式Hadoop搭建Hive平台详细教程

    一.搭建环境的前提条件 环境:Linux系统 Hadoop-2.6.0 MySQL 5.6 apache-hive-2.3.7 这里的环境不一定需要和我一样,基本版本差不多都ok的,所需安装包和压缩包 ...

  8. go语言之抛出异常

    一: panic和recover 作用:panic 用来主动抛出错误: recover 用来捕获 panic 抛出的错误. 概述: ,引发panic有两种情况 )程序主动调用panic函数 )程序产生 ...

  9. Python3 高级编程技巧(部分)

    目录: 在列表.字典.集合中筛选数据 为元组元素命名 通过列表.元组创建字典 字典排序 寻找字典的公共键 让字典保持有序 生成器函数 yield协程 同时遍历值与下标 在列表.字典.集合中筛选数据 很 ...

  10. ArcGIS Pro 二次开发

    本文基于 Windows7 + VS2019 + .NET Framework 4.8 + ArcGIS Pro 2.5.22081 开发和撰写. 目录 开发环境配置 获取ArcGIS Pro 安装V ...