一:代理概述
mysql
zabbix proxy 能够代替 zabbix server 收集性能和可用性数据,而后把数据汇报给 zabbix server,而且在必定程度上分担了zabbix server 的压力.linux
此外,当全部agents和proxies报告给一个Zabbix server而且全部数据都集中收集时,proxy 收集到数据以后,首先将数据缓存在本地,而后在必定得时间以后传递给 zabbix server,这样就不会由于服务器的任何临时通讯问题而丢失数据。使用proxy是实现集中式和分布式监控的最简单方法。web
zabbix proxy 使用场景:sql
监控远程区域设备数据库
监控本地网络不稳定区域vim
当 zabbix 监控上千设备时,使用它来减轻 server 的压力centos
简化分布式监控的维护缓存
zabbix proxy 仅仅须要一条 tcp 链接到 zabbix server,外网链接防火墙上仅仅须要加上一条规则便可。服务器
2、安装代理服务器Proxy
网络
安装环境:
一、系统环境:CentOS Linux release 7.5.1804 (Core)
二、zabbix版本:zabbix-release-3.4-2.el7.noarch
三、测试环境,关闭了防火墙(生产环境不建议关闭,根据需求设置防火墙)
[root@centos78 ~]# systemctl stop firewlld.service 关闭防火墙
[root@centos78 ~]# systemctl disable firewalld.service 开机禁用防火墙启动
四、关闭Selinux
[root@centos78 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@centos78 ~]# setenforce 0
安装数据库
一、指定下载数据库版本最好跟zabbix-server一致,编辑安装包路径下载路径:
[root@centos78 ~]# vim /etc/yum.repos.d/base.repo (没有base.repo能够本身建立)
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 1
二、安装10.2的mariadb
yum install mariadb-server
三、设置mariadb
[root@centos78 ~]# systemctl start mariadb 启动
[root@centos78 ~]# systemctl enable mariadb 设置开机启动
[root@centos78 ~]# systemctl status mariadb 查看启动状态
安装和设置Proxy服务端
一、下载和安装Zabbix
[root@centos78 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm (下载Zabbix最新版本)
[root@centos78 ~]# yum install zabbix-proxy-mysql -y
二、建立数据和导入数据
[root@centos78 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.2.17-MariaDB MariaDB Server
Copyright (c) 2000, 2018, 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 character set utf8 collate utf8_bin; 建立数据库zabbix_proxy
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix'; 设置zabbix_proxy权限和密码
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit 退出
Bye
导入数据库
[root@centos78 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-3.4.14/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy
配置数据库用户和密码
[root@centos78 ~]# vim /etc/zabbix/zabbix_proxy.conf 修改配置文件,设置密码
DBPassword=zabbix
[root@centos78 ~]# grep -n '^'[a-Z] /etc/zabbix/zabbix_proxy.conf 查看关键配置信息
24:Server=192.168.1.1 这里是Zabbix服务器的ip地址
42:Hostname=centos78 这里是proxy自己的主机名
84:LogFile=/var/log/zabbix/zabbix_proxy.log
95:LogFileSize=0
136:PidFile=/var/run/zabbix/zabbix_proxy.pid
146:SocketDir=/var/run/zabbix
166:DBName=zabbix_proxy
181:DBUser=zabbix
190:DBPassword=zabbix
390:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
466:Timeout=4
508:ExternalScripts=/usr/lib/zabbix/externalscripts
544:LogSlowQueries=3000
启动zabbix和设置开机启动
[root@centos78 ~]# systemctl start zabbix-proxy
[root@centos78 ~]# systemctl enable zabbix-proxy
三、配置zabbix_proxy.conf文件
sed -i.ori '190a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf 第190行插入DBPassword,
sed -i 's#Server=127.0.0.1#Server=192.168.1.1#' /etc/zabbix/zabbix_proxy.conf 这个是Zabbix server的IP地址(或主机名),不是Zabbix proxy的ip哦
sed -i 's#Hostname=Zabbix proxy#Hostname=centos78#' /etc/zabbix/zabbix_proxy.conf 这个Zabbix proxy的hostname,惟一的, 区分大小写的,确保server端知道其名称!容许的符号: 字母数字, '.', ' ', '_' 和 '-'。最大长度: 64,常常会在这里出错。
修改完后重启服务:
[root@centos78 ~]# systemctl restart zabbix-proxy.service
检查启动状况:
[root@centos78 ~]# netstat -lntup |grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2190/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 12789/zabbix_proxy
tcp6 0 0 :::10050 :::* LISTEN 2190/zabbix_agentd
tcp6 0 0 :::10051 :::* LISTEN 12789/zabbix_proxy
3、客户端主机配置文件指向 proxy
[root@centos78 ~]#vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.78 这里指向proxy服务器IP,经过代理收集信息。
ServerActive=192.168.1.78
Hostname=centos78
4、服务端web界面:添加agent代理程序
几分钟后检测到代理服务器:
再建立一个自动发现规则:
经过自动发现,就能够自动经过代理的客户端添加到自定义分组中,详细状况下面教程:
对于监控服务器愈来愈多的状况,若是还单独一个一个添加,那效率也过低,所以就要实现批量添加监控服务器的操做,Zabbix提供两种批量自动监控的方式:
自动发现:由服务端主动发起,Zabbix Server开启发现进程,定时扫描局域网中IP服务器、设备。
自动注册:由客户端主动发起,客户端必须安装并启动Agentd,不然没法被自动注册添加至主机列表。对于使用SNMP的就要采用自动发现了。
在zabbix_agentd.conf中指定Zabbix server配置信息,这个在前期批量安装客户端的时候,就须要一块儿批量修改。
Server=192.168.101.78 ServerActive=192.168.101.78 HostMetadataItem=system.uname
HostMetadataItem主机元数据
当agent程序向服务器发送自动注册请求时,会发送其主机名。在某些状况下,Zabbix服务器的主机名不足以区分发现的主机。主机元数据可将其余信息从agent发送到服务器。
主机元数据在zabbix_agentd.conf中配置。在配置文件中指定主机元数据有两种方式:(两种不能同时用)
HostMetadataItem: HostMetadataItem=system.uname system.uname用于获取包含“Linux”或“Windows”等信息,具体取决于运行agent的主机。 主机元数据示例以下: Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32
HostMetadata: 可选参数用来定义主机元数据,只有主机自动注册时才用到主机元数据。若是没有定义,该值经过 HostMetadataItem 得到。根据需求设置不一样模板进行分组: HostMetadata=Linux或HostMetadata=Windows或HostMetadata=Router或HostMetadata=SMNP
2、自动发现
一、添加自动发现规则
更新间隔:120s-300s,服务器性能很差能够设置久一点
system.uname:这个是用来匹配的客户端的.
二、建立自动发现动做
A、添加linux主机自动发现规则
操做:添加主机、添加Linux server组、添加模板,其余本身设置。
B、添加Windows自动发现规则:
操做:添加Windows server分组
三、查看客户端日记信息:active已经链接上
查看服务端信息:已经自动添加到Windows server和Linux server组中
3、自动注册:
由客户端主动发起,客户端必须安装并启动Agentd,不然没法被自动注册添加至主机列表。
一、活动的Zabbix agent能够自动注册到服务器进行监控。这种方式无需在服务器上手动配置它们。
二、使用SNMP或者其余方式监控的,没法使用自动注册,只能使用自动发现。
三、配置---动做---自动注册---建立动做
名称:Auto Linux server
条件:主机元数据似 Linux
操做:添加主机
操做:添加到主机组:Linux server
操做:连接到模板:Template OS Linux