一、Zabbix简介
Zabbix是一个企业级的、开源的、分布式的监控套件
Zabbix 可以监控网络和服务的监控状况. Zabbix 利用灵活的告警机制,允许用户对事件发送基于 Email 的告警.这样可以保证快速的对问题作出相应. Zabbix 可以利用存储数据提供杰出的报告及图形化方式. 这一特性将帮助用户完成容量规划.
Zabbix 支持 polling 和 trapping 两种方式. 所有的 Zabbix 报告都可以通过配置参数在 WEB 前端进行访问. Web前端将帮助你在任何区域都能够迅速获得你的网络及服务状况. Zabbix 可以通过尽可能的配置来扮演监控你的IT 基础框架的角色,而不管你是来自于小型组织还是大规模的公司.
Zabbix是零成本的. 因为 Zabbix 编写和发布基于
GPL V2
协议. 意味着源代码是免费发布的.Zabbix 公司也提供商业化的技术支持
Zabbix架构图
Zabbbix原理图
二、开源监控软件对比
Cacti
采集数据
保存数据
数据展示
数据分析及报警
Nagios(报警工具)
只关心正常与否的状态
依赖关系
Zabbix(数据采集&报警,综合cacti和nagios)
自动发现监控设备
支持分布式监控有代理
三、Zabbix功能简要介绍
Zabbix监控方式
SNMP :通过SNMP协议来监控,一般用于监控路由交换设备
Zabbix Agent:通过zabbix自己的agent进行监控(推荐使用)
JMX:用于检测java应用
IPMI Agent(硬件接口):IPMI接口监控,服务器特有的硬件接口
Zabbix 可以监控web的功能
响应时间
下载速度
响应代码
响应内容中是否包含需要的内容
基于用户登录、登出判断是否正常
支持http和https
Zabbix的报警功能
E-mail:邮件
SMS:短信
srcipt:自定义脚本
Zabbix 组件概述
Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据均由其组织进行;
Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;
Web interface:zabbix的GUI接口,通常与server运行在同一台主机上;
Proxy:可选组件,常用于分布式监控环境中,代理server收集部分监控端的监控数据并同意发往server端;
Agent:部署在监控主机上,负责收集本地数据并发送到server端或proxy端。
Zabbix 常用术语
主机(host):要监控的网络设备,可由IP或DNS名称指定;
主机组(host group):主机的逻辑容器,可以包涵主机和模板,但同一个组内的主机和模板不能互相连接;主机组通常再给用户或用户组指派监控权限时使用;
监控项(item):一个特定监控指标的相关数据,这些数据来自于被监控对象;对于item是zabbix进行数据收集的核心,没有item,将没有数据;相对某监控对象来说,每个item都由“key”进行标识;
触发器(trigger):一个表达式,用于评估某监控对象的某特定item内所收到的数据是否在合理范围内,即阈值;接收到的数据量大于阈值时,触发器状态从“OK”转变为“Problem”,当数据量再次回归到合理范围时,其状态将从“Problem”转换回“OK”;
事件(event):即发生的一个值得关注的事情,例如触发器的状体转变,新的agent或重新上线的agent的自动注册等。
动作(action):只对于特定时间事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作)
报警升级(escalation):发送报警或执行远程命令的自定义方案,如每隔5分钟发送一次报警,共发5次;
媒介(media):发送通知的手段或通道,如Email、Jabber或SMS
通知(notification):通过选定的媒介向用户发送的有关某事件的信息;
远程命令(remote command):预定义的命令,可在被监控的主机处于某特定的条件下自动执行。
模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application、以及low-level discovery rule;模板可以直接连接至单个主机;
应用程序(application):一组item的集合
Web场景(web scennario):用于检测web站点的可用性的一个或多个HTTP请求
Zabbix Proxy
当我们的服务器数量非常多的时候,尤其是在多个机房,每个机房很多都有服务器,很显然每一个客户端都要跟server端通信,那很有可能被防火墙down掉,且单个server去统计数据时,无疑对server端增大了很大的压力,这个时候就需要Proxy,proxy可以将统计后的数据统一发送给server端
Zabbix macros(宏)
宏是一种抽象的概念,可以将其理解为变量,通过预先定义的规则来替换文本模式,zabbix有许多的内置宏,如{HOST,NAME},{HOST.IP},{TRIGGER.DESCRIPTION},{TRIGGER.NAME}…等
宏也可以自定义,但自定义宏格式略有不同,如{$MY_HOSTNAME},需要在其宏前面加$
符号
详细信息请参考官方文档:
https://www.zabbix.com/documentation/3.0/manual/appendix/macros/supported_by_location
介绍完zabbix,下面我们就开始使用zabbix!
四、zabbix安装
zabbix-server端安装
1
2
|
# yum install zabbix-server-mysql zabbix-get
# systemctl start zabbix-server
|
zabbix-agent端安装
1
2
|
# yum install zabbix-agent zabbix-sender
# systemctl start zabbix-agent
|
zabbix-web GUI端安装
1
|
# yum install zabbix-web zabbix-web-mysql httpd php
|
zabbix-DB安装
1
2
3
4
|
# yum install mariadb-server
# systemctl start mariadb.service
mysql> CREATE DATABASE zabbix CHARSET
'utf8'
;
mysql> GRANT ALL ON zabbix.* TO zbxuser@
'%'
IDENTIFIED BY
'zbxpass'
;
|
本文安装环境及配置
zabbix-server | 192.168.0.10 |
zabbix-web | 192.168.0.10 |
zabbix-DB | 192.168.0.10 |
zabbix-agent端安装 |
192.168.0.11 192.168.0.12 |
配置zabbix yum源
zabbix yum源地址(可以根据版本选择不同地址):http://repo.zabbix.com
1
2
3
4
5
6
|
# vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=zabbix
baseurl=http:
//repo
.zabbix.com
/zabbix/3
.0
/rhel/7/x86_64/
gpgcheck=0
# yum install zabbix-server-mysql zabbix-get zabbix-web zabbix-web-mysql httpd php mariadb-server php-mysql -y
|
配置mariadb
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# systemctl start mariadb.service
# mysql
MariaDB [(none)]> CREATE DATABASE zabbix;
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> GRANT ALL ON zabbix.* TO zbxuser@
'192.168.%.%'
IDENTIFIED BY
'zbxpass'
;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
# gzip -d /usr/share/doc/zabbix-server-mysql-3.0.2/create.sql.gz
# mysql -uzbxuser -h192.168.0.10 -p zabbix < /usr/share/doc/zabbix-server-mysql-3.0.2/create.sql
|
配置zabbix_server
1
2
3
4
5
6
7
|
# vim /etc/zabbix/zabbix_server.conf
DBHost=192.168.0.10
DBName=zabbix
DBUser=zbxuser
DBPassword=zbxpass
DBSocket=
/var/lib/mysql/mysql
.sock
# systemctl start zabbix-server
|
配置agent服务
1
2
3
4
|
# yum install zabbix-agent zabbix-sender -y
# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.0.11
# systemctl restart zabbix-agent
|
配置web服务
1
|
# systemctl start httpd
|
访问web界面,安装配置
检查配置
数据库配置
登录
安装完成
五、基于zabbix/agent的方式监控
新建HostGroup
新建Host
新建host
定义application
定义iteam
定义trigger
定义action
定义alert
定义media
定义template
zabbix-proxy
未完成。。。