Zabbix 3.0介绍及简单实现

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

一、Zabbix简介

Zabbix是一个企业级的、开源的、分布式的监控套件

Zabbix 可以监控网络和服务的监控状况. Zabbix 利用灵活的告警机制,允许用户对事件发送基于 Email 的告警.这样可以保证快速的对问题作出相应. Zabbix 可以利用存储数据提供杰出的报告及图形化方式. 这一特性将帮助用户完成容量规划.

Zabbix 支持 polling 和 trapping 两种方式. 所有的 Zabbix 报告都可以通过配置参数在 WEB 前端进行访问. Web前端将帮助你在任何区域都能够迅速获得你的网络及服务状况. Zabbix 可以通过尽可能的配置来扮演监控你的IT 基础框架的角色,而不管你是来自于小型组织还是大规模的公司.

Zabbix是零成本的. 因为 Zabbix 编写和发布基于 GPL V2 协议. 意味着源代码是免费发布的.

Zabbix 公司也提供商业化的技术支持


Zabbix架构图

wKiom1c9qGmTlb0OAALROrFDkBo905.jpg


Zabbbix原理图

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端


 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端安装

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界面,安装配置

wKioL1c9yhiCzymxAACUbf82XJc136.png

检查配置

wKioL1c9yvbzaVBiAACXtIzE7lU679.png

数据库配置

wKioL1c9y4iSye-DAAB6-wTUK9g498.png

检查配置wKioL1c9zAGSJYs7AACM5zp54sE265.png

wKiom1c9y3rDkPH-AAA1-Oyz6KU995.png

安装完成

wKiom1c9y8Pg3yDaAAD13_qP9TM660.png

五、基于zabbix/agent的方式监控

新建HostGroup

wKioL1c9zeyxX3lDAAD_WjC0QfA970.png

wKioL1c9zdrAnTwFAACWyK6LjEI821.png

新建Host


新建host

定义application

定义iteam

定义trigger

定义action

定义alert

定义media

定义template

zabbix-proxy

未完成。。。










本文转自 赵大鑫 51CTO博客,原文链接:http://blog.51cto.com/xinzong/1775152,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
设计模式 PHP
PHP中如何实现观察者模式?
【7月更文挑战第2天】PHP中如何实现观察者模式?
18 0
|
6月前
|
监控 前端开发 Java
你知道Zabbix吗?源码分析Zabbix启动过程
你知道Zabbix吗?源码分析Zabbix启动过程
133 0
|
6月前
|
PHP 调度
PHP 定时任务方法封装
PHP 定时任务方法封装
63 0
|
消息中间件 缓存 PHP
PHP+Laravel框架RabbitMQ简单使用(Pub/Sub模式)
一、简介 publish-and- subscribe, 即发布订阅模型。在Pub/Sub模型中,生产者将消息发布到一个主题(Topic)中,订阅了该Topic的所有下游消费者,都可以接收到这条消息。 特点: 每个消息可以有多个订阅者; 客户端只有订阅后才能接收到消息; 持久订阅和非持久订阅。 注意: 发布者和订阅者有时间依赖:接受者和发布者只有建立订阅关系才能收到消息; 持久订阅:订阅关系建立后,消息就不会消失,不管订阅者是否都在线; 非持久订阅:订阅者为了接受消息,必须一直在线。 当只有一个订阅者时约等于点对点模式
|
设计模式 PHP
如何使用PHP的观察者模式?底层原理是什么?
如何使用PHP的观察者模式?底层原理是什么?
102 0
|
消息中间件 网络协议 PHP
PHP为什么要使用scoket?使用场景是什么?底层原理是什么?
PHP为什么要使用scoket?使用场景是什么?底层原理是什么?
105 0
|
API PHP
PHP是如何和电脑内存条交互的?底层原理是什么?
PHP是如何和电脑内存条交互的?底层原理是什么?
|
PHP 数据库 计算机视觉
PHP的组件是什么意思?底层原理是什么?
PHP的组件是什么意思?底层原理是什么?
168 0
|
消息中间件 PHP
PHP+Laravel框架RabbitMQ简单使用(路由模式)
一、简介 路由模式跟发布订阅模式类似,然后在订阅模式的基础上加上了类型,订阅模式是分发到所有绑定到交换机的队列,路由模式只分发到绑定在交换机上面指定路由键的队列
|
消息中间件 PHP
PHP+Laravel框架RabbitMQ简单使用(PTP)
一、简介 Point-to-Point,点对点通信模型。PTP是基于队列(Queue)的,一个队列可以有多个生产者,和多个消费者。消息服务器按照收到消息的先后顺序,将消息放到队列中。队列中的每一条消息,只能由一个消费者进行消费,消费之后就会从队列中移除