第6章Zabbix分布式监控
Zabbix是一个分布式的监控系统。分布式监控适合跨机房、跨地域的网络监控。从多个Proxy收集数据,而每个Proxy可以采集多个设备的数据,从而轻松地构建分布式监控系统。
ZabbixProxy可以用在以下环境中。
1.监控远程区域。
2.监控拥有不可靠网络连接的区域。
3.当监控以千计的设备时分担Zabbix-Server服务器的压力。
4.简化分布式监控的维护。
Proxy架构的使用环境可以用6-1来表示。

图6-1
1.Proxy和Server之间只需要一个TCP端口连接。因此,从安全方面考虑,需要一条防火墙规则来确保数据传输的安全。
2.Proxy采集到的数据在传送给服务器之前都报错在本地。这样保证Proxy和Server断开数据不丢失。ProxyLocalBuffer和ProxyOfflineBuffer控制数据在本地保存的时间。
1.1准备部署Proxy环境
下面要开始实践了,首先说明下实践环境:
|
主机名 |
IP地址 |
描述 |
系统版本 |
|
linux-node1.com |
192.168.90.11 |
Zabbix-Server |
CentOS7 |
|
linux-node2.com |
192.168.90.12 |
Zabbix-Proxy |
CentOS7 |
|
linux-node4.com |
192.168.90.14 |
Zabbix-Agent |
CentOS6 |
1.2安装Zabbix-proxy
源码安装Zabbix的时候加上--enable-proxy参数。
1.采用yum安装,yum安装方式如下:
[root@linux-node2 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
[root@linux-node2 ~]# yum install zabbix-proxy zabbix-proxy-mysql mariadb -y
1. 导入Zabbix-Proxy的数据库
[root@linux-node2 ~]# systemctl start mariadb
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbi_proxy@localhost identified by 'zabbix_proxy';
MariaDB [(none)]> flush privileges;
[root@linux-node2 ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.0.3/
[root@linux-node2 zabbix-proxy-mysql-3.0.3]# zcat schema.sql.gz |mysql -uroot zabbix_proxy
3.配置Zabbix-Proxy.conf
zabbix-proxy配置文件详解:https://www.zabbix.com/documentation/3.0/manual/appendix/config/zabbix_proxy
[root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=192.168.90.11
Hostname=Zabbix proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix_proxy
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
4.启动Zabbix-Proxy服务
[root@linux-node2 ~]# systemctl start zabbix-proxy
[root@linux-node2 ~]# systemctl enable zabbix-proxy
1.3Web界面配置Proxy
在Zabbix Server GUI中配置zabbix-proxy:单击Administrator→Prxies 如图6-2所示

图6-2
1.4监控Proxy架构主机
1.监控一台Agent主机,Agent端调整为主动模式,以及监听的Server为Proxy的IP
[root@linux-node4 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
ServerActive=192.168.90.12
Hostname=linux-node4.com
Include=/etc/zabbix/zabbix_agentd.d/
2.添加主机的方式和正常模式一样。唯一的不同是Monitored by Proxy选项选择的是Proxy名称。如图6-3

图6-3
3.添加主动模式)模板,如图6-4所示

图6-4
4.查看使用Proxy监控,如图6-5、图6-6

图6-5

图6-6
如果zabbix_proxy出现错误:started to fail (ZBX_TCP_READ() failed: [4] Interrupted system call)
解决办法:注释server以及Proxy主机上hosts中取消Zabbix Agent,重启server以及Proxy
1.5Proxy主被模式
zabbix-agent的工作方式有Active(主动模式)和Passive(被动模式)。Zabbix-Server和Zabbix-Agent之间的通信是Zabbix的专用协议,数据格式为JSON。主动模式由于是Agent将采集到的数据主动发送给Server,而不要需要Server每次连接Agent等待采集,所以采用主动模式会使Zabbix-Server具有最好的性能,在实际生产环境中,一定要将工作模式设置为主动模式,并尽可能地采用更多的Proxy,以降低Server的负担。
1.5.1Porxy被动模式
默认情况下,Zabbix-Agent工作在被动模式下,工作的模式是由Key和Zabbix_agent.conf参数配置决定的。

图6-7
在zabbix-agent.conf文件中设置被动模式,即将Server参数设置为允许连接的Server,修改配置文件需要重启Zabbix-agent
Server = 127.0.0.1,192.168.90.11
被动模式的流程
1.Server打开一个TCP连接。
2.Server发送一个Key为Agent.ping
3.Agent接受到这个请求,然后响应数据
4.Server对接收到的数据进行处理。
5.TCP连接关闭。
1.5.2Proxy主动模式
在zabbix-agent.conf文件中设置主动模式,即将ServerActive参数设置为允许连接的{Server|Proxy},即可配置主动模式。修改配置文件需要重启Zabbix-agent
ServerActive = 127.0.0.1,192.168.90.11
在item中,将Items的检测方式修改为主动模式(默认为被动模式),为了提高性能或者环境需要,将所有的items批量修改为主动模式。

图6-8

图6-9
Agent向Server请求检测列表
1.Agent向Server建立一个TCP的连接。
2.Agent请求需要检测的数据列表。
3.Server响应Agent,发送一个Items列表。
4.Agent响应请求。
5.TCP连接完成本次会话后关闭。
6.Agent开始周期性地收集数据。
Agent发送数据给Server
1.Agent向Server建立一个TCP连接。
2.Agent发送在采集周期内,需要采集数据给server
3.Server处理Agent发送的数据。
4.TCP连接关闭。
第6章Zabbix分布式监控的更多相关文章
- Zabbix分布式监控系统实践
https://www.zabbix.com/wiki/howto/install/Ubuntu/ubuntuinstall 环境介绍OS: Ubuntu 10.10 Server 64-bitSer ...
- LNMP+zabbix分布式监控搭建及版本升级
LNMP+zabbix分布式监控搭建需要组件:gcc gcc-c++ openssl* pcre pcre-devel gd gd-devel libjpeg-devel libpng-devel l ...
- zabbix分布式监控部署--技术流ken
前言 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix pr ...
- 06 Zabbix分布式监控和主被动模式
06 Zabbix分布式监控和主被动模式 zabbix proxy设置 使用zabbix代理的好处 监控拥有不可靠的远程区域 当监控项目数以万计的时候使用代理分担zabbix-proxy压力 简化分布 ...
- Zabbix分布式监控
上一篇:Zabbix的API的使用 zabbix分布式监控 新建一台主机 安装zabbix proxy和数据库 yum -y install mariadb-server zabbix-proxy-m ...
- zabbix 分布式监控及优化
1..zabbix分布式监控,模拟多机房实现监控? 1.有多机房时,需要用到proxy 1.网络不通 2.网络延迟 2.当监控的主机较多时,也可以用proxy来缓解压力 1.安装proxy [root ...
- zabbix 分布式监控(proxy)源码安装
安装分布式监控(代理节点) 1.下载软件zabbix-3.2.1.tar.gz 1.1 解压 wget http://nchc.dl.sourceforge.net/project/zabbix/ZA ...
- zabbix分布式监控的部署与win被控端
zabbix是一个分布式监视,管理系统,基于server-clinet架构,可用于监视各种网络服务,服务器和网络机器等状态. server端基于C语言,web管理端Frontend则是基于PHPA制作 ...
- 第七章 :分布式监控与SNMP监控
7.1 分布式监控 7.1.1 作用 分担压力,减轻负载 多机房监控 zabbix Server ===> zabbix agent (只能同一个局域网监控) 分担压力,降低负载 zabbi ...
随机推荐
- HTTP 1.1 协议规范
1. 内容协商 请求一个特殊编码的过程在 HTTP 1.1 规范中称为内容协商:
- 5.查找最小的k个元素[Kmin]
[题目] 输入n个整数,输出其中最小的k个. 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4. [分析] 这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前 ...
- 实现Python代码发送邮件
import smtplib from email.mime.text import MIMEText from email.utils import formataddr msg = MIMETex ...
- MySQL中的锁理解
1.目的:解决客户端并发访问的冲突问题 2.锁的分类 1.锁类型 1.读锁(共享锁) 查询(select):加读锁之后,别人不能更改表记录,但是可以进行查询. 2.写锁(互斥锁,排他锁) 更新(upd ...
- 【javascript】js处理字符串
javascript常用方法锦集: 处理字符串 在Javascript除了使用数组和对象 String.replace(regexp | replaceThis,replaceWith |callba ...
- SQL Server Profiler 跟踪远程服务器的语句
同事测试软件报错,想连Ta的数据库跟踪下语句,结果提示: 对比了下自己的探查器设置,勾选几个事件就可以了:
- HihoCoder 1063 : 缩地 树形DP第二题(对象 边)
时间限制:12000ms 单点时限:1000ms 内存限制:256MB 描述 编织者是 Dota 系列中的一个伪核,拥有很强的生存能力和线上消耗能力.编织者的代表性技能是缩地.缩地带来的隐身.极限移动 ...
- LOJ2611. NOIP2013 积木大赛 【线段树】
LOJ2611. NOIP2013 积木大赛 LINK 题目大意是给你一个目标状态数组 每次你可以选择一个连续区间加上一个值,求最小操作次数 我是神奇的脑子 最近做数据结构疯了 然后看见这题就数据结构 ...
- hbase单机及集群安装配置,整合到hadoop
问题导读:1.配置的是谁的目录conf/hbase-site.xml,如何配置hbase.rootdir2.如何启动hbase?3.如何进入hbase shell?4.ssh如何达到互通?5.不安装N ...
- nginx 启用http2 https 无法访问的问题
原因: 1. openssl 版本过低 解决方法:进行升级 yum update openssl 2.ssl_ciphers 配置有问题 解决方法:修改为 ssl_ci ...