暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

zabbix实践与理论分享

北漂悟道之路 2019-06-18
533

1、序言

本篇是基于《zabbix 企业级分布式监控系统》作为理论基础,分别从监控分类、简介、监控方式、分布式监控和api的使用多个纬度展开介绍。

2、目录

  • 开源社区监控的分类

  • zabbix简介

  • 监控方式

  • 分布式监控

  • zabbix api的使用

3、监控的分类

监控系统往往需要对物理硬件和软件的性能和参数进行数据汇集,实现集中管理和统一分析。

按工作方式分为两种,主动监控和被动监控。

监控的项目:

    • 主机监控

    • 网卡监控

    • 文件监控

    • URL监控

    • 应用程序监控

    • 数据库监控

    • 日志监控

    • 硬件监控

开源社区监控的种类

    • mrtg

    • cacti

    • smokeping

    • grahite

    • nagios

    • zenoss core

    • ganglia

    • opentsdb

    • zabbix

4、zabbix简介

 

zabbix是什么?

zabbix是一个企业级的高度集成开源监控软件。zabbix sla 公司技术支持。

选择zabbix的理由

    • zabbix是一个自由开放源代码的产品

    • 安装和配置简单

    • 搭建环境简单

    • zabbix-agent数据采集的性能和速度快

    • 将数据采集持久存储到数据库,便于对监控数据的二次分析。

    • 非常丰富的扩展能力

    • 开源社区的运作模式。

zabbix的架构

 

通用架构是C/S架构,分布式架构分为C/P/S架构或者C/N/S架构

 

zabbix agent:部署在被监控主机上,负责被监控主机的数据,并将数据发送给zabbix server。

zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息,统计信息,操作数据等。

zabbix database:用于存储所用zabbix的配置信息、监控数据的数据库。

zabbix web:zabbix的web界面,管理员通过web界面管理zabbix配置以及产看zabbix相关监控信息,可以单独部署在独立的服务器上。

zabbix proxy:可选组件,用于分布式监控环境中,zabbix proxy代表server端,完成局部区域内的信息收集,最终统一发往server端。

 

采集的方式:

 

agent模式,SNMP,SSH,Telnet,IPMI等多种协议。

zabbix-server的进程:

watchdog,housekeeper,alerter,discover,times等等

zabbix的功能:

  • 数据收集

  • 灵活的触发器

  • 高度可定制的告警

  • 实时的绘图功能

  • web监控能力

  • 多种可视化的展示

  • 历史数据的存储

  • 配置非常容易

  • 使用模板

  • 网络发现

  • 快速的访问接口

  • API功能

  • 系统权限

  • 程序特性

  • 大型环境的支持

软件图:

 

5、监控方式

 

agent监控方式

    • 主动模式

    • 被动模式

被动模式是由key和zabbix_agentd.conf参数配置决定的,将配置中的server的参数配置成允许连接的IP(server=127.0.0.1),server根据key向agent请求数据,然后agent向server响应数据。

主动模式需要修改zabbix_agentd.conf中ServerActive=Server的IP地址。

trapper监控方式

trapper是发送任意的数据给zabbix-server采用主动推送的方式,与主动模式有一些相同,但又有区别,区别在于trapper不需要安装客户端,key的名称可以灵活定义,这意味着zabbix-server可以获取需要的任意数据。

在trapper的工作模式中,zabbix发送数据的程序是zabbix-sender。

zabbix-sender的参数:

-z:zabbix-server的ip地址

-p:zabbix-server的端口

-s:主机的名称

-k:自定义的key

-o:发送的数据

SNMP模式

simple network Management protocol的缩写,即简单网络管理协议。

分为两部分:管理进程和被管理进程。

使用SNMP可以监控路由器,交换机,打印机,UPS或者其他开启SNMP的设备。

IPMI监控方式

智能平台管理接口,可以利用IPMI监视服务器的物理特征,如温度,电压,单扇工作状态,电源供应以及机箱入侵等。

IPMI独立于CPU BIOS和OS外自行运行。

JMX监控方式

java management Extensions即java管理扩展,是java平台上的应用程序设备系统等植入管理的框架,JMX可以跨越一系列异构操作系统平台,系统体系架构和网络传输协议,灵活得开发无缝集成的系统、网络和服务管理应用。

命令的执行

system.run 是zabbix-agent的一个key,在默认情况下不允许使用,防止被黑客劫持而造成损失。(zabbix_agentd.conf中修改enableRemoteCommands=1)

zabbix_get -s 127.0.0.1 -k system.run['ls ']

6、分布式监控

zabbix的架构模式分为proxy和node。node已经在zabbix 2.4中不在支持了。

7、zabbix的API

zabbix api简介

zabbix api 是基于前端HTTP协议实现的,也就是可以通过HTTP请求实现API,API数据传输采用的Json rpc协议。

json rpc是基于json的跨语言远程调用协议,按指定的格式向服务端发起调用,服务端响应后再按照指定的格式返回调用方。

使用zabbix api的使用流程

  1. 连接 http://x.x.x.x/api_jsonrpc.php 提供用户名和密码,

并标识 HTTP 头部 Content-Type:application/json,HTTP 方法为 POST。

  1. 获取 SESSIONID

  2. 通过 SESSIONID 建立后续的连接

  3. 提交 POST 数据,格式为 JSON,其中放对应的方法,获取需要的数据。

注意用户验证方面。

8、实践

实际讲解目前API调用的相关代码流程。

1、维护模式

2、调用指定的接口文件,判断是否告警告警。

3、完成一个简单的API调用。


文章转载自北漂悟道之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论