自动发现与自动注册
- 5.1 自动发现与自动注册
- 5.1.1 简介
- 5.1.2 两种模式
- 5.2 自动发现--被动模式
- 5.3 自动注册--主动模式
- 5.4 分布式监控
- 5.4.1 介绍
- 5.4.2 配置zabbix proxy
- 5.5 SNMP监控
- 5.5.1 使用范围
- 5.5.2 安装snmp程序
- 5.5.3 配置snmp程序
- 5.5.4 测试snmp
- 5.5.5 在web界面进行配置
5.1 自动发现与自动注册
手动添加客户端非常耗时间,增加人力、时间成本。为了满足监控企业成千上万台服务器,zabbix提供了自动发现与自动注册的功能,自动批量发现局域网中的服务器,并自动添加到zabbix监控平台
5.1.1 简介
自动发现(被动模式):由服务端主动发起,Zabbix Server开启发现进程,定时扫描局域网中IP服务器、设备。实现自动将发现主机、自动将主机添加到主机组、自动加载模板、自动创建项目(item)、自动创建图像等功能。
原理
适用场景:主要针对企业批量添加主机,适应于网段较少且单一的项目或公司,适用于在第一次大规模添加机器的场景
缺点:当 Agent服务器过多的时候采用自动发现,zabbix-server压力会比较大,自动添加主机进度就会非常慢。
自动注册(主动模式):Zabbix Server 等待 Zabbix Agent主动上报。由客户端主动发起,客户端必须安装并启动Agentd,否则无法被自动注册添加至主机列表。对于使用SNMP的要采用自动发现。
原理
适用场景:云环境下的监控,云环境中,IP分配就是随机的
缺点:agent有可能找不到Server(配置出错)
5.1.2 两种模式
被动模式:默认 agent被server抓取数据 (都是在agent的立场上说)
主动模式:agent主动将数据发到server端 (都是在agent的立场上说)
注意: 两种模式都是在agent上进行配置
zabbix 的使用要在hosts文件中预先做好主机名的解析
5.2 自动发现–被动模式
step1:完成之前的安装
zabbix Server安装完毕
step2:配置agent客户端
zabbix agent安装完毕,注意配置Server=192.168.5.54
step3:在web界面上进行配置
web界面:配置 >> 自动发现 >> Local network
使用自带的自动发现规则(进行修改)即可
在IP range输入IP范围,注意格式;
延迟在实际的生产环境中要大一些,实验环境可以小一些
创建发现动作
配置 >> 动作 >> Auto discovery. Linux servers.
① 配置动作,在条件中添加条件,让添加更准确
② 在操作中添加
添加主机与启用主机
自动发现的主机
5.3 自动注册–主动模式
step1:完成之前的安装
zabbix Server安装完毕
step2:zabbix agent安装完毕,需要额外增加的配置
vim /etc/zabbix/zabbix_agentd.conf
ServerActive=172.16.1.61
# Hostname=Zabbix server
HostnameItem=system.hostname
systemctl restart zabbix-agent.service
netstat -tunlp|grep zabbix
step3:在web见面上进行配置
配置 >> 动作 >> 事件源(自动注册) >> 创建动作
5.4 分布式监控
5.4.1 介绍
流程:
1、zabbix server发布指令给代理
2、zabbix-proxy将指令发给被监控主机
3、被监控机将数据汇报给zabbix-proxy
4、zabbix-proxy再交给zabbix-server
5、zabbix-server将数据展示
作用:
- 分担压力,减轻负载
zabbix Server -> zabbix proxy -> zabbix agent1 agent2 agent3 …
-> zabbix proxy ->zabbix agent4 agent5 agent6…- 多机房监控
zabbix Server(北京) -> zabbix proxy(每个机房搭建) -> zabbix agent
架构图:
原模式:
zabbix Server -> zabbix agent (只能同一个局域网监控)
5.4.2 配置zabbix proxy
step1: 配置zabbix yum源,并安装proxy
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum install zabbix-proxy-mysql -y
step2:安装数据库
zabbix proxy也需要数据库,这个数据库不是用于存储监控数据的 只是用于存储配置信息
#安装数据库
yum -y install mariadb-server
systemctl start mariadb.service
systemctl enable mariadb
#建立数据库
mysql
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
exit
#导入数据文件
[root@zabbix-svr-2 zabbix]# cd /usr/share/doc/zabbix-proxy-mysql-5.0.31/
[root@zabbix-svr-2 zabbix-proxy-mysql-5.0.31]# zcat schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy
#配置zabbix proxy 连接数据库
sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
sed -i 's#Server=127.0.0.1#Server=192.168.5.54#' /etc/zabbix/zabbix_proxy.conf
sed -i 's#Hostname=Zabbix proxy#Hostname=zabbix-svr-2#' /etc/zabbix/zabbix_proxy.conf
# Hostname 作为后面添加的代理程序名称,要保持一致
#启动
systemctl restart zabbix-proxy.service
#检查端口
[root@zabbix-svr-2 zabbix-proxy-mysql-5.0.31]# ss -lntup|grep zabbix
tcp LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",pid=72902,fd=4),("zabbix_agentd",pid=72901,fd=4),("zabbix_agentd",pid=72900,fd=4),("zabbix_agentd",pid=72899,fd=4),("zabbix_agentd",pid=72898,fd=4),("zabbix_agentd",pid=72897,fd=4))
tcp LISTEN 0 128 *:10051 *:* users:(("zabbix_proxy",pid=74384,fd=4),
...
tcp LISTEN 0 128 [::]:10051 [::]:* users:(("zabbix_proxy",pid=74384,fd=5),
setp3:修改各agent配置指向 proxy
[root@k8s-node-02 html]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=192.168.5.54
ServerActive=127.0.0.1
[root@k8s-node-02 html]# sed -i 's#192.168.5.54#192.168.70.183#g' /etc/zabbix/zabbix_agentd.conf
[root@k8s-node-02 html]# sed -i 's#127.0.0.1#192.168.70.183#g' /etc/zabbix/zabbix_agentd.conf
[root@k8s-node-02 html]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=192.168.70.183
ServerActive=192.168.70.183
[root@k8s-node-02 html]# systemctl restart zabbix-agent
step4:web界面添加代理
管理 >> agent代理程序 >> 创建代理
代理程序名称要填写主机名
在主机中可以看到71.183使用的zabbix-svr-2代理
5.5 SNMP监控
5.5.1 使用范围
无法安装agent ,很多前辈的监控软件都可以监控各种设备 都是通过snmp监控(snmp:simple network manager protocol 简单网络管理协议)
简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。
5.5.2 安装snmp程序
yum -y install net-snmp net-snmp-utils
5.5.3 配置snmp程序
sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
systemctl start snmpd.service
5.5.4 测试snmp
[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: m01
说明:
- snmpwalk 类似 zabbix_get
- -v 2c 指定使用snmp协议的版本 snmp分为v1 v2 v3
- -c public 指定暗号
- sysname 类似zabbix的key
5.5.5 在web界面进行配置
添加新的主机,注意使用snmp接口
链接模板
添加完成就能够在主机中看到snmp监控对的主机