监控基本介绍:
使用 SNMP 协议获取主机 CPU、内存、磁盘、网卡流量等数据.
用脚本将获取到的 SNMP 数据存入数据库中,然后再使用一种名为 MRTG 的软件根据获取的数据绘制图表来分析数据的变化。MRTG(Multi Router Traffic Grapher),顾名思义,这款软件最初是设计用于监控网络链路流量负载的。它可以用过 SNMP 获取到设备的流量信息,并根据这些信息绘制成图表并保存为 PNG 格式的图片,再将这些 PNG 图片以HTML 页面的方式显示给用户。用户能够非常直观的一图标的形式观察系统的运行状况,并提供了多样化报警设置。
一.zabbix架构图
二.zabbix组件
zabbix由以下几个组件部分构成:
1、Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
2、Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;
3、Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上;
4、Proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;
5、Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;
三.相关术语
主机(host):要监控的网络设备,可由IP或DNS名称指定;
主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;
监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"标识;
触发器(trigger):一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";
事件(event):触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等;
动作(action):指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;
报警媒介类型(media):发送通知的手段或者通道,如Email、Jabber或者SMS等;
模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至某个主机;
前端(frontend):Zabbix的web接口
四.监控流程
一个监控系统运行的大概的流程是这样的:
agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。
这里agentd收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
【主动监测】通信过程如下:
zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active items数据值server或者proxy。很多人会提出疑问:zabbix多久获取一次active items?它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。分两个部分:
获取ACTIVE ITEMS列表
• Agent打开TCP连接
• Agent请求items检测列表
• Server返回items列表
• Agent 处理响应
• 关闭TCP连接
• Agent开始收集数据
主动检测提交数据过程如下:
• Agent建立TCP连接
• Agent提交items列表收集的数据
• Server处理数据,并返回响应状态
• 关闭TCP连接
【被动监测】通信过程如下:
• Server打开一个TCP连接
• Server发送请求agent.pingn
• Agent接收到请求并且响应
• Server处理接收到的数据1
• 关闭TCP连接
从以上过程我们可以看出来,被动模式每次都需要打开一个tcp连接,这样当监控项越来越多时,就会出现server端性能问题了。
还有人会问,那实际监控中是用主动的还是被动的呢?这里主要涉及两个地方:
1、新建监控项目时,选择的是zabbix代理还是zabbix端点代理程式(主动式),前者是被动模式,后者是主动模式。
2、agentd配置文件中StartAgents参数的设置,如果为0,表示禁止被动模式,否则开启。一般建议不要设置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式。
安装zabbix-server
# yum -y install zabbix-web zabbix-web-mysql zabbix-agent mariadb-server zabbix-get zabbix-server-mysql httpd
# service mariadb start
# mysqladmin -uroot password 123
# mysql -u root -p123
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> flush privileges;
mysql> q
导入zabbix表
# cd /usr/share/doc/zabbix-server-mysql-3.2.11/
# gunzip create.sql.gz
# mysql -u zabbix -pzabbix -D zabbix < create.sql
配置zabbix连接数据库
# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
# service zabbix-server start
Starting Zabbix server: [ OK ]
# vim /etc/httpd/conf.d/zabbix.conf
Options FollowSymLinks
AllowOverride None
Apache 2.4
Require all granted
Apache 2.2
Order allow,deny
Allow from all
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Asia/Shanghai
# service httpd restart
# chkconfig httpd on
安装完成后,使用浏览器访问,进行安装设置
http://zabbix-server-ip/zabbix
用户名: admin
密码: zabbix
Zabbix-agent安装
# yum -y install zabbix zabbix-agent
agent配置
# vim /etc/zabbix/zabbix_agentd.conf
Server=6.6.6.13 被动模式 zabbix-server-ip
ServerActive=6.6.6.13 主动模式 zabbix-server-ip
Hostname=web1 稍后在zabbix-server端添加主机时使用同样的名称,建议使用$HOSTNAME
# service zabbix-agent start
Starting Zabbix agent: [ OK ]
# chkconfig zabbix-agent on
======================================
zabbix agent检测分为主动(agent active)和被动(agent)两种形式,主动与被动的说法均是相对于agent来讨论的。简单说明一下主动与被动的区别如下:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
至此zabbix安装完成,简单设置后即可实现基本的监控工单,具体的设置如下:
Host Groups(主机组) ->
Hosts(主机) ->
Templates(模板){模板内有众多Applications应用集也就是监控项组}->
Items (监控项,添加监控项后可添加图形) ->
Triggers(触发器,监控项可以选择性关联触发器)->
Actions (告警动作)->
Medias (告警方式)->
User Groups(用户组)->
Users(用户)
主机组->主机->监控项->图形->触发器->动作 <-报警媒介类型,用户