Zabbix 3.0介绍及简单实现
一、Zabbix简介Zabbix是一个企业级的、开源的、分布式的监控套件
Zabbix 可以监控网络和服务的监控状况. Zabbix 利用灵活的告警机制,允许用户对事件发送基于 Email 的告警.这样可以保证快速的对问题作出相应. Zabbix 可以利用存储数据提供杰出的报告及图形化方式. 这一特性将帮助用户完成容量规划.
Zabbix 支持 polling 和 trapping 两种方式. 所有的 Zabbix 报告都可以通过配置参数在 WEB 前端进行访问. Web前端将帮助你在任何区域都能够迅速获得你的网络及服务状况. Zabbix 可以通过尽可能的配置来扮演监控你的IT 基础框架的角色,而不管你是来自于小型组织还是大规模的公司.
Zabbix是零成本的. 因为 Zabbix 编写和发布基于 GPL V2 协议. 意味着源代码是免费发布的.
Zabbix 公司也提供商业化的技术支持
Zabbix架构图
http://s1.运维网.com/wyfs02/M00/80/51/wKiom1c9qGmTlb0OAALROrFDkBo905.jpg
Zabbbix原理图
http://s4.运维网.com/wyfs02/M00/80/4E/wKioL1c9qXWQSEZ5AAGTjFFU-oA698.jpg
二、开源监控软件对比
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端
http://s1.运维网.com/wyfs02/M00/80/4E/wKioL1c9rcjTwvsVAAPxL2QtG5g221.png
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端安装
# yum install zabbix-server-mysql zabbix-get
#systemctl start zabbix-serverzabbix-agent端安装
# yuminstallzabbix-agent zabbix-sender
#systemctl start zabbix-agentzabbix-web GUI端安装
# yum install zabbix-web zabbix-web-mysql httpd phpzabbix-DB安装
# yuminstallmariadb-server
# systemctlstartmariadb.service
mysql> CREATE DATABASE zabbix CHARSET'utf8';
mysql> GRANT ALL ON zabbix.* TO zbxuser@'%' IDENTIFIED BY 'zbxpass';本文安装环境及配置
zabbix-server192.168.0.10zabbix-web192.168.0.10zabbix-DB192.168.0.10zabbix-agent端安装
192.168.0.11
192.168.0.12
配置zabbix yum源
zabbix yum源地址(可以根据版本选择不同地址):http://repo.zabbix.com
# vim /etc/yum.repos.d/zabbix.repo
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
# 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
# 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服务
# yum install zabbix-agent zabbix-sender -y
# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.0.11
# systemctl restart zabbix-agent配置web服务
# systemctl start httpd
访问web界面,安装配置
http://s5.运维网.com/wyfs02/M01/80/50/wKioL1c9yhiCzymxAACUbf82XJc136.png
检查配置
http://s4.运维网.com/wyfs02/M00/80/50/wKioL1c9yvbzaVBiAACXtIzE7lU679.png
数据库配置
http://s5.运维网.com/wyfs02/M00/80/50/wKioL1c9y4iSye-DAAB6-wTUK9g498.png
检查配置http://s1.运维网.com/wyfs02/M01/80/50/wKioL1c9zAGSJYs7AACM5zp54sE265.png
登录
http://s1.运维网.com/wyfs02/M00/80/52/wKiom1c9y3rDkPH-AAA1-Oyz6KU995.png
安装完成
http://s2.运维网.com/wyfs02/M00/80/53/wKiom1c9y8Pg3yDaAAD13_qP9TM660.png
五、基于zabbix/agent的方式监控
新建HostGroup
http://s1.运维网.com/wyfs02/M01/80/50/wKioL1c9zeyxX3lDAAD_WjC0QfA970.png
http://s2.运维网.com/wyfs02/M00/80/50/wKioL1c9zdrAnTwFAACWyK6LjEI821.png
新建Host
新建host
定义application
定义iteam
定义trigger
定义action
定义alert
定义media
定义template
zabbix-proxy
未完成。。。
页:
[1]