一、proxy分布式监控介绍

来源于zabbix官网:

https://www.zabbix.com/documentation/3.4/zh/manual/distributed_monitoring/proxies

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

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

当选择使用/不使用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

二、分布式监控部署

环境说明

系统版本     CentOS 7.2 x86_64

软件版本        zabbix 3.0.18

机器角色及ip

zabbix server    10.0.0.63

zabbix proxy    eth0:10.0.0.65    eth1:192.168.1.65

zabbix agent    192.168.1.66

通过zabbix proxy的搭建,zabbix server可以远程从proxy获取到数据,这里的环境相当于zabbix server具有一个公网ip地址,zabbix agent只具有内网地址,zabbix proxy具有外网地址和内网地址,搭建zabbix proxy使zabbix server能通过proxy远程获取到zabbix agent的数据

1、配置zabbix proxy

1.1 安装并配置zabbix的源

[root@zabbix-proxy ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm            #安装源

[root@zabbix-proxy ~]# vim /etc/yum.repos.d/zabbix.repo    #修改配置文件,将地址改为清华的

[zabbix]

name=Zabbix Official Repository - $basearch

baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/$basearch/

……

[zabbix-non-supported]

name=Zabbix Official Repository non-supported - $basearch

baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/

……

[root@zabbix-proxy ~]# yum makecache        #更新缓存

1.2 安装配置zabbix proxy

[root@zabbix-proxy ~]# yum install -y zabbix-proxy-mysql    #安装zabbix-proxy

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

[root@zabbix-proxy ~]# systemctl start mariadb.service         #启动数据库

[root@zabbix-proxy ~]# systemctl enable mariadb.service        #开机启动

[root@zabbix-proxy ~]# mysql                            #登录数据库

create database zabbix_proxy default charset utf8;

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 '123456';    #授权

MariaDB [(none)]> exit

[root@zabbix-proxy ~]# rpm -ql zabbix-proxy-mysql|grep sql

/usr/sbin/zabbix_proxy_mysql

/usr/share/doc/zabbix-proxy-mysql-3.0.18

/usr/share/doc/zabbix-proxy-mysql-3.0.18/AUTHORS

/usr/share/doc/zabbix-proxy-mysql-3.0.18/COPYING

/usr/share/doc/zabbix-proxy-mysql-3.0.18/ChangeLog

/usr/share/doc/zabbix-proxy-mysql-3.0.18/NEWS

/usr/share/doc/zabbix-proxy-mysql-3.0.18/README

/usr/share/doc/zabbix-proxy-mysql-3.0.18/schema.sql.gz

[root@zabbix-proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.0.18/                #导入数据库

[root@zabbix-proxy zabbix-proxy-mysql-3.0.18]# zcat schema.sql.gz | mysql -uzabbix -p123456 zabbix_proxy

[root@zabbix-proxy zabbix-proxy-mysql-3.0.18]# cd

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

ProxyMode=0 #使用主动模式,1为被动模式,默认为主动模式,web前端也配置主动模式

24 Server=10.0.0.63    #zabbix-server的地址

43 Hostname=zabbix-proxy        #主机名

128 DBHost=localhost            #数据库主机

139 DBName=zabbix_proxy        #数据库名称

154 DBUser=zabbix            #数据库用户名

162 DBPassword=123456        #数据库密码

Timeout=15

配置文件中没有配置的内容如下:(有需要可以配置)

# ProxyLocalBuffer=0

#数据保留的时间(小时为单位)

# ProxyOfflineBuffer=1

#连不上Server,数据要保留多久(小时为单位,默认1小时)

# DataSenderFrequency=1

#数据的发送时间间隔(默认是1秒)

# StartPollers=5

#启动的线程数

# StartIPMIPollers=0

#启动IPMI的线程数

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

[root@zabbix-proxy ~]# systemctl enable zabbix-proxy.service        #开机启动

2、server端的web界面添加zabbix proxy

配置——>anget代理程序——>创建代理

agent代理程序名称和proxy代理的主机名相同

proxy代理添加后,等待发现代理,如果不能及时发现代理,可以通过查看server和proxy的日志进行检查

[root@zabbix-server ~]# tail -f /var/log/zabbix/zabbix_server.log

[root@zabbix-proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log

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

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

Web界面进行检查,代理成功添加

3、安装配置zabbix-agent

由于agent端只有一个内网卡,不能上网,要安装zabbix-agent可以采取的方法有:

a、将proxy配置为路由器和agent的网关,使agent通过proxy上网安装

b、在proxy端下载好agent程序发送到agent端再安装

这里选择方法b

在proxy下载并发送

[root@zabbix-proxy ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.18-1.el7.x86_64.rpm

[root@zabbix-proxy ~]# scp zabbix-agent-3.0.18-1.el7.x86_64.rpm root@192.168.1.66:/root/

root@192.168.1.66's password:

zabbix-agent-3.0.18-1.el7.x86_64.rpm 100% 341KB 341.4KB/s 00:00

agent端yum本地安装

[root@zabbix-agent ~]# yum localinstall -y zabbix-agent-3.0.18-1.el7.x86_64.rpm

[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agentd.conf            #修改配置文件

95 Server=192.168.1.65            #服务端即proxy的ip地址,内网地址

147 Hostname=192.168.1.66        #填写主机名称,或填写为ip地址便于区分

[root@zabbix-agent ~]# systemctl start zabbix-agent.service             #启动zabbix-agent

[root@zabbix-agent ~]# systemctl enable zabbix-agent.service            #开机启动

4、server端的web界面添加主机

配置——>主机——>创建主机

主机名称和agent端配置文件中相同,选择代理

为主机链接模板

5、检验

等待添加的主机变绿,变绿之后查看最新数据

若不能及时变绿,则需要重启服务或使用命令zabbix_server -R config_cache_reload刷新配置缓存

至此,zabbix跨网段通过proxy代理监控主机配置完成!

分布式监控zabbix_proxy及交换机监控

  • 1、Zabbix分布式监控

zabbix proxy 可以代替 zabbix server 检索客户端的数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.zabbix proxy 可以非常简便的实现了集中式、分布式监控。

zabbix proxy 使用场景:
 监控远程区域设备
 监控本地网络不稳定区域
 当 zabbix 监控上千设备时,使用它来减轻 server 的压力
 简化 zabbix 的维护

Zabbix_proxy只需要一条tcp链接到zabbix_server,只需要配置一个防火墙规则。zabbix_proxy数据库必须和server分开,否则数据会被破坏。因为这两个数据库的表大部分相同。

Zabbix_proxy收集的所有数据在传输到服务器之前都存储在本地。然后再一定时间之后传递给zabbix_server。这个时间是由proxy配置文件中参数ProxyLocalBuffer and ProxyOfflineBuffer决定。

Zabbix_proxy是一个数据收集器。它不计算触发器,处理事件或发送警报。

备注:使用 agent active 模式,一定要记住在 agent 的配置文件参数 ServerActive 加上 proxy 的 IP 地址。

  • 2、分布式部署

(1)安装zabbix-proxy-mysql和mariadb
[root@linux-node3 ~]# yum list|grep zabbix-proxy-mysql
[root@linux-node3 ~]# yum install -y zabbix-proxy-mysql
[root@linux-node3 ~]# yum install -y mariadb
[root@linux-node3 ~]# systemctl enable mariadb.service
[root@linux-node3 ~]# systemctl start mariadb.service 2)创建zabbix_proxy库
[root@linux-node3 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11579
Server version: 5.5.56-MariaDB MariaDB Server Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database zabbix_proxy CHARATER set utf8 COLLATE utf8_bin; MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix'; MariaDB [(none)]> exit;
Bye 3)导入数据库
[root@linux-node3 ~]# rpm -ql zabbix-proxy-mysql
[root@linux-node3 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-3.0.8/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy
[root@linux-node3 ~]# mysql -uzabbix -pzabbix -e "use zabbix_proxy;show tables;" (4)修改zabbix_proxy配置文件
[root@linux-node3 ~]# vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 #使用主动模式,1为被动模式,默认为主动模式,web前端也配置主动模式
Server=192.168.56.11 #填写zabbix-server的ip地址
ServerPort=10051 #zabbix的端口
HostnameItem=system.hostname
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix
Timeout=15 配置文件中没有配置的内容如下:(有需要可以配置)
# ProxyLocalBuffer=0
#数据保留的时间(小时为单位)
# ProxyOfflineBuffer=1
#连不上Server,数据要保留多久(小时为单位,默认1小时)
# DataSenderFrequency=1
#数据的发送时间间隔(默认是1秒)
# StartPollers=5
#启动的线程数
# StartIPMIPollers=0
#启动IPMI的线程数 5)启动服务并检查端口
[root@linux-node3 ~]# systemctl start zabbix-proxy.service
[root@linux-node3 ~]# netstat -tulnp |grep 10051 (6)创建proxy
"Administration"-->"Proxies"-->"Create proxy"

(7)修改agent的配置
[root@linux-node2 ~]# grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
DebugLevel=5
Server=192.168.56.13 #指向zabbix_proxy
ServerActive=192.168.56.13 #指向zabbix_proxy
HostnameItem=system.hostname
HostMetadata=web
Timeout=15
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@linux-node2 ~]# systemctl restart zabbix-agent.service

  • 3、交换机监控

创建HOST,交换机监控

使用SNMP协议,思科默认端口为161。

添加zabbix的SNMP模板:

设置团体名:

{$SNMP_COMMUNITY}=团体名称

通过proxy监控到的数据 在proxy机器上的mysql数据库会保存吗?

答案:是的,server、proxy、agent这三者的关联就是,采集到的数据从agent到proxy,再从proxy到server,你也可以理解为proxy和agent最直观的差别就是没有web界面以及数据处理功能,proxy的目的就是为了在被监控主机量较多的情况下减轻server端的数据采集压力,proxy安装了数据库并且导入了表,当然会有数据保存,随着监控数据的采集,也是会不断变化的

017-zabbix_proxy分布式监控部署的更多相关文章

  1. zabbix分布式监控部署--技术流ken

    前言 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix pr ...

  2. zabbix proxy分布式监控部署

    一.proxy分布式监控介绍 来源于zabbix官网: https://www.zabbix.com/documentation/3.4/zh/manual/distributed_monitorin ...

  3. ganglia分布式监控部署

    一.介绍        Ganglia是由UC Berkeley发起的一个开源监控项目,设计用于监控数以千几的节点.每台服务器都运行一个收集和发送监控数据名为gmond的守护进程.它将从操作系统和指定 ...

  4. zabbix分布式监控的部署与win被控端

    zabbix是一个分布式监视,管理系统,基于server-clinet架构,可用于监视各种网络服务,服务器和网络机器等状态. server端基于C语言,web管理端Frontend则是基于PHPA制作 ...

  5. Zabbix学习之路(十)之分布式监控zabbix_proxy及交换机监控

    1.Zabbix分布式监控 zabbix proxy 可以代替 zabbix server 检索客户端的数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix serv ...

  6. 分布式监控系统Zabbix-3.0.3-完整安装记录(0)

    一.Linux下开源监控系统简单介绍1)cacti:存储数据能力强,报警性能差2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数据长度,储存在内存中.比如,连续采样数据存 ...

  7. zabbix的日常监控-分布式监控(十)

    参考博文:http://blog.51cto.com/jinlong/2051966 zabbix proxy 可以代替 zabbix server 检索客户端的数据,然后把数据汇报给 zabbix ...

  8. 第6章Zabbix分布式监控

    Zabbix是一个分布式的监控系统.分布式监控适合跨机房.跨地域的网络监控.从多个Proxy收集数据,而每个Proxy可以采集多个设备的数据,从而轻松地构建分布式监控系统. ZabbixProxy可以 ...

  9. zabbix分布式监控服务 安装与配置

    zabbix安装与配置   一.什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存 ...

随机推荐

  1. 正则表达式中常用的模式修正符有i、g、m、s、x、e详解

    正则表达式中常用的模式修正符有i.g.m.s.x.e等.它们之间可以组合搭配使用. 它们的作用如下: //修正符:i 不区分大小写的匹配; //如:"/abc/i"可以与abc或a ...

  2. OpenCV学习笔记(8)——图像平滑

    使用不同的低筒滤波器对图像进行模糊 使用自定义的率弄起对图像进行卷积(2D卷积) 2D卷积 与信号一样,我们也可以对2D图像实施低通滤波,高通滤波等.LPF帮助我们去除噪声,模糊图像.而HPF帮助我们 ...

  3. 解决 Ubuntu 18.10 使用较新的独立显卡输出无法初始化图形界面并配置深度学习开发环境

    原文地址:解决 Ubuntu 18.10 使用较新的独立显卡输出无法初始化图形界面并配置深度学习开发环境 0x00 配置 硬件 OS: Ubuntu 18.10 Base Board: ASUS WS ...

  4. 趣谈linux操作系统笔记-内核初始化

    内核的启动从入口函数 start_kernel() 开始.在 init/main.c 文件中,start_kernel 相当于内核的main 函数.打开这个函数,你会发现,里面是各种各样初始化函数 X ...

  5. 并查集练习(0743) SWUST OJ

    #include<iostream> #include<cstring> using namespace std; ]; int n,m,l,ci,di; int root(i ...

  6. 安装 Genymotion及其破解版 测试能用的方法

    第一,照下面的教程  先安装 https://blog.csdn.net/sxk874890728/article/details/82721746 安装 Genymotion及其破解版 2018年0 ...

  7. TortoiseGit 中文汉化

    TortoiseGit程序以及中文汉化包:https://tortoisegit.org/download/ TortoiseGit程序: 汉化包:

  8. python pytorch numpy DNN 线性回归模型

    1.直接奉献代码,后期有入门更新,之前一直在学的是TensorFlow, import torch from torch.autograd import Variable import torch.n ...

  9. 【VS开发】浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)

    UDP数据包长度 UDP数据包的理论长度 udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可以看出,udp的最大包长度是2^16-1的个 ...

  10. Redis 3主-3从集群的搭建(CentOS 7)

    注意ip地址为: 虚拟机ip设置 TYPE="Ethernet"BOOTPROTO="static"NAME="enp0s3"DEVICE= ...