Zabbix架构
监控分类
一、Zabbix的优缺点
1、优势
- 开源,无软件成本投入。性能、功能强大,server对设备性能要求低。
- 支持设备多,自带多种监控模板。
- 支持多种监控方式。如zabbix-agent、snmp等。
- 支持分布式集中管理,有自动发现功能,可以实现自动化监控,能监控的agent非常多。
- zabbix有图形的Web配置界面,配置简洁。
- 开放式接口,扩展性强,插件编写容易。
2、缺点
需要在被监控主机上安装Agent,所有的数据都存在数据库里,产生的数据很大,瓶颈主要在数据库。
二、Zabbix报警方式
电话、企业微信、邮件、钉钉、微信等等。
三、Network discover网络发现
1、介绍
网络发现是zabbix最具有特色的功能之一,它能够根据用户事先定义的规则自动添加监控的主机或服务等。
2、优点
- 加快Zabbix部署
- 简化管理 ---在快速变化的环境中使用Zabbix,而不需要过度管理
3、发现方式
IP地址范围、可用服务(ftp、ssh、http.....)、zabbix_agent的响应、snmp_agent的响应。
4、网络发现 ---两个阶段
discovery发现、action动作
discover:
8种响应事件:
zabbix定期扫描网络发现规则中定义的IP范围;
检查频率对于每个规则都是可配置的,每个规则都有一组用于为IP范围执行的服务检查。
由网络发现模块执行的服务和主机IP的每个检查都会生成一个发现事件。
- actions:
网络发现中的事件可以触发action,从而自动执行指定的操作,把discover events当作前提条件。
Sending notifications 发送通知
Adding/removing hosts 添加/删除主机
Enabling/disabling hosts 启用/禁用host
Adding hosts to a group 向组中添加主机
Removing hosts from a group 移除组中的主机
Linking hosts to/unlinking from a template 从模板链接主机或取消链接
Executing remote scripts 执行远程脚本
这些事件的配置还可以基于设备的类型、IP、状态、上线/离线等进行配置。
5、网络发现:接口添加
网络发现中添加主机时会自动创建interface接口
四、配置网络发现Network discovery
1、配置agent端
[root@zabbinx-slave ~]# yum -y install zabbix-agent zabbix-sender
[root@zabbinx-slave ~]# vim /etc/zabbix/zabbix_agentd.conf
Hostname=zabbix-slave1
开启服务
[root@zabbinx-slave ~]# systemctl start zabbix-agent
2、设置自动发现规则discovery
注释:
① key:zabbix_get -s 192.168.30.2 -p 10050 -k "system.hostname"
② 更新间隔:1h就好,不要扫描太过频繁,扫描整个网段,太废资源;这里为了实验,设为1m
3、自动发现成功
4、设置自动发现discovery的动作action
① 设置A条件,自动发现规则=test.net
② 设置B条件,自动发现状态=up
添加主机到监控
自动链接Template OS Linux到此host
配置action完成,默认是disabled停用
启动动作,确定已经生效,模板链接成功
五、Web监控
1、介绍
监控指定的站点的资源下载速度,及页面响应时间,还有响应代码
2、创建设置web场景
1)创建
2)配置web检测
3)点击步骤,设置web page web页面,设置名为home page,URL为http://192.168.30.7/index.html的web页面
4)设置名为fpm status,URL为http://192.168.30.7/fpm-status的web页面
5)设置2个页面成功
3、查看测试
六、主动/被动监控
1、介绍
- 被动检测:server向agent请求获取配置的各监控项相关的数据,agent接收请求、获取数据并响应给server
- 主动检测:agent向server请求与自己相关监控项配置,主动地将server配置的监控项相关的数据发送给server
说明:主动监控能极大节约监控server 的资源
用法选项
zabbix_sender:
-z zabbix_server_ip
-p zabbix_server_port
-s zabbix_agent_hostname
-k key
-o value 值
zabbix_sender发送数据:实现人工生成数据,发给server端
2、通过设置一个内建key发送数据主动监控
1)agent端所需要的基本配置
ServerActive=192.168.30.107 #给哪个监控server 发送数据
Hostname=slave1.along.com #自己的主机名,假设主机定死了,不设置下一项
#HostnameItem= #如果自己的主机名易变动,这一项相当于key一样去匹配
2)设置一个主动监测3、设置一个通过命令zabbix_sender发送数据主动监控
1)配置一个zabbix traper(采集器)的item监控项
2)agent端手动发送数据
[root@zabbinx-slave ~]# zabbix_sender -z 192.168.30.107 -p 10051 -s node1.along.com -k "send.test.data" -o 56721
3)监控数据变化七、JMX接口
java虚拟机(JVM)具有内置的插装,是我们能够使用JMX监视和管理它。
1、配置Zabbix-server
1. 部署JDK环境
[root@zabbinx-master ~]# java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
2. 安装java gateway配置
[root@zabbinx-master ~]# yum -y install zabbix-java-gateway
[root@zabbinx-master ~]# vim /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0" #监听服务器地址
LISTEN_PORT=10052 #监听zabbix_java进程的端口,默认是10052
PID_FILE="/tmp/zabbix_java.pid" #zabbix_java的pid路径
START_POLLERS=5 #zabbix_java的进程数
TIMEOUT=10 #zabbix_java的超时时间
3. 修改zabbix_server配置文件
JavaGateway=10.212.52.14 #Java网关地址,即为Zabbix Server本身地址
JavaGatewayPort=10052 #Java网关监控端口
StartJavaPollers=5 #启动Java监控的进程数,与上面一样
4.启动服务
[root@zabbinx-master ~]# systemctl start zabbix-java-gateway
[root@zabbinx-master ~]# systemctl restart zabbix-server
2、配置Zabbix-agent
1. 下载jar包
[root@zabbinx-agent ~]# wget -O /usr/local/tomcat/lib/catalina-jmx-remote.jar http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.33/bin/extras/catalina-jmx-remote.jar
2.配置jmx
[root@zabbinx-agent ~]# vim /usr/local/tomcat/bin/catalina.sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=172.16.147.155 -Dcom.sun.management.jmxremote.port=12345"
3. 查看端口
[root@zabbinx-agent ~]# ss -tnlp |grep 12345
LISTEN 0 50 :::12345 :::* users:(("java",pid=86226,fd=20))
在node节点上添加JMX接口----->连接tomcat模板---->查看监控项
八、分布式监控
1、介绍
- 分布式监控概述:proxy、node
- Zabbix三种架构:Server-agent、Server-Node-agent、Server-Proxy-agent
在Server端配置通过Proxy监控的主机;Zabbix agent端允许Zabbix proxy主机执行数据采集操作。
配置操作步骤省略
九、调优
- 历史数据不要保存太久;
- 尽量让数据保存在数据库服务器内存中;
- 触发器表达式:减少使用聚合函数min(),max(),avg();尽量使用last(),nodata(),因为聚合函数要运算。
- 数据收集:epolling较慢(减少使用SNMP);尽量使用trapping(agent主动监控)
- 数据类型:
文本数据处理速度较慢,尽量少收集test或string类型的数据;
多使用类型numeric数据型数据;- 设定合理的缓存大小
- 数据库优化:分库分表