zabbix的监控方式
在zabbix的web接口中能显示的监控方式,且可指定为监控接口类型的监控方式有如下几种:
zabbix-agent
分为主动和被动模式:
passive
active
SNMP
基于SNMP(简单网络管理协议:Simple Network Management Protocol)
当被监控主机无法安装agent时才选用SNMP,支持功能远不如agent丰富,例如监控打印机、路由器和交换机等。
SNMP有几个重要概念:
MIB、SMI、SNMP(分为v1、v2c、v3三个版本)
IPMI
智慧平台管理接口(Intelligent Platform Management Interface)原本是一种Inter架构的企业系统的周边设备所采用的一种工业标准,IPMI亦是一种开放的免费标准,使用者无需支付额外的费用即可使用此标准。
可以用于监控设备的物理特性,例如:cpu温度,电压、风扇转速等,前提是服务器硬件有ipmi接口,属于硬件级别的接口。
JMX
称为:Java management extensions
为应用程序、设备、系统等置入的一种框架;
JMX属于Java层,用于通过Java自己的接口对java程序进行监控;
需要安装zabbix-java-gateway组件,用于获取监控数据,zabbix-server自身没有该功能;
zabbix系统结构图:

回顾结构图:
zabbix web gui可以单独放置在任意主机,它仅和database有交互,通过图形配置使用。它也是通过database来判定zabbix-server是如何运行的。
zabbix-agent和zabbix-server之间使用zabbix专有协议进行通信。
SNMP监控方式:
操作:
Get、GetNext、Set、Response、Trap
MIB:
是被管理对象的集合,而且还额外定义了被管理对象的名称、访问权限、数据类型等属性;
MIB视图:MIB的子集
授权:
将某MIB视图与某Community绑定来实现;
OID:对象标识符(Object ID)
oid定义分支的方式: 1.3.6.1.2.1 每个数字都描述一个意义
1:表示system
2:表示interface
3:ip
4:tcp
5:udp
详情网上可查,了解即可
通过SNMP进行监控操作方式:
yum install -y net-snmp net-snmp-utils net-snmp-libs
主要由上面三个包组成
配置snmp服务:
# vim snmpd.conf
主要修改的地方如下(片段):
# sec.name source community
com2sec notConfigUser default public
####
# Second, map the security name into a group name:
# groupName securityModel securityName
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
####
# Third, create a view for us to let the group have rights to:
# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
####
# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact systemview none none #其他授权再复制修改这一行即可
启动SNMPD服务;
service snmpd start
默认监听udp 161端口
测试端口连通性以后,配置item,选择监听类型时使用SNMPv2 agent即可
SNMP OID 自己查
没有key的机制
还是说一下,只有不支持agent的设备才使用SNMP,其他尽量使用agent监控
JMX监控方式:
需要Java程序猿辅助。
(1)zabbix server端必须安装zabbix-java-gateway;
配置文件:/etc/zabbix/zabbix_java_gateway,conf
Listen_ip=
Listen_port=10052
zabbix server的配置文件(/etc/zabbix/zabbix_server.conf)中需要启用:
JavaGateWay=javagateway的地址
JavagetwayPort=10052
(2)Java应用程序需要开启JMX接口:
例如:java -Dcom.sun,management.jmxremote -Dcom.sun.management.jmxremote.port=10053 -Dcom.sun.management.jmxremote.authenticate-false -Dcom.sun.management.jmxremote.ssl-false
找程序猿
(3)监控tomcat
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun,management.jmxremote -Dcom.sun.management.jmxremote.port=10053 -Dcom.sun.management.jmxremote.authenticate-false -Dcom.sun.management.jmxremote.ssl-false"
即在该处添加监控接口即可。
(4)创建item时,类型选择JMX agent
zabbix的分布式监控概述:
proxy and node
zabbix的三种架构:
→ server-agent
→ server-node-agent
→ server-proxy-agent
监控zabbix
zabbix能高效的监控分布式IT架构
在大型环境中zabbix提供两种解决方案
→ 使用代理(proxy)
→ 使用节点(node)
Proxy or Node?
→ 代理用于本区域数据收集,并将数据发送给server
→ 节点提供完整的zabbix server用以简历分布式监控中的层级
目前的监控方式中,已不再支持以node的方式监控。 考虑到早起的监控中可能存在以node的方式监控,作为了解即可。
Server-Node-Client特性:
解决Host过多时单台Server面临性能瓶颈的问题:
→ 使用多个instance
→ 每个instance是独立的一套zabbix,有database和frontend(optional)
支持热插拔,Node和Server的链接可以随时断开,但不影响Node的正常运行
Node定时给Server发送configuration,history,event
Server定时给Node发送configuration
所有配置变更只能在Node节点操作,不能再Server操作
支持树状接口,Node又可以是个Server
因此,每个node都可以独立工作。node将时长保存数据
Server-Proxy-Client工作特性:
Proxy不会向Server同步configuration,只会接收,所有配置会能在Server端配置
Proxy的数据库定时会将数据传送给Server,Proxy本地数据库只保存最近没有发送的数据
node和proxy对比:
Node本身是一台server,它有完整的web页面,完整的数据库,它将数据源源不断的传送给master
Proxy只有一个proxy的daemon进程,Proxy也有自己的数据库,但它的数据库只会保存一定时间的数据,它与master通信是将一批信息打包后发送到master,master将这些数据merge如master数据库。
master-Proxy相比master-node的优点有以下
→ proxy压力小,数据库指存储一定时间的数据
→ master压力变小,数据不是源源不断获取,减小IO压力
→ 架构更清晰,易于维护
分布式监控说明:
例如有三个机房,各500台主机,每个机房安装一个zabbix-proxy,由它收集数据后发送给一个zabbix server即可,如果zabbix server在其中一个机房,即可直接监控它所在机房的主机,另外再接收其他机房中zabbix-proxy所传来的数据即可。这样的称之为分布式监控。
配置proxy:
找一台独立主机
yum install -y zabbix-proxy zabbix-proxy-mysql
配置文件:
/etc/zabbix/zabbix_proxy.conf
创建数据库:
msyql -uroot -p
> CREATE DATABASE zabbix_proxy CHARACTER SET 'utf8';
> GRANT ALL ON zabbix_proxy.* TO zabbix@'192.168.%.%' IDENTIFIED BY '123456';
> FLUSH PRIVILEGES;
将数据导入数据库;
rpm -ql zabbix-proxy-mysql
/usr/share/doc/zabbix-proxy-mysql-4.0.7/schema.sql.gz 导入该脚本文件
编辑配置文件:
/etc/zabbix/zabbix_proxy.conf
Server=
Hostname=
DBHost=
DBName=
DBPassword=
DBPort=
HeartbeatFrequency= # 每隔多长时间探测一下主机活动状态
ConfigFrequency=3600 # 每隔多长时间到server拉取一次跟自己相关的配置
DataSenderFrequency=1 # 多长时间向server端送一次数据
ostnameItem=system.hostname #如果hostname没有定义,就用这个当做hostname
启动zabbix-proxy
service zabbix-proxy start
默认监听端口:10051
接下来在server端进行配置;
Administrator → Proxies → create proxy → add
配置host
- Monitored by proxy 【proxy1】
zabbix-proxy的工作模式
有两种:passive和active,主动模式由proxy主动去server端拉取配置和发送数据,passive是由server推送数据。
zabbix database所需空间:
加入60000个item - 每秒更新1000条数据
历史数据=天数(默认90天)乘以每秒钟数据的数据量乘以24再乘以3600再乘以50Bytes
90X1000X86400X50Bytes
再换算成G就OK
除以3个1024换算成G
还有趋势数据:
每一个趋势数据大体上有128Bytes,假如有60000个item
按每小时保存一次。大小=天数X监控项数量X24小时X128Bytes 换算下来约62G
除以3个1024换算成G
事件数据:
每一个大概占据130Bytes
以保存一年为例:大小=天数X86400秒X130Bytes
除以3个1024换算成G
历史数据+趋势数据+事件数据