企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置

目录

通过API接口管理Zabbix所监控主机 

查看zabbix监控系统的api接口 

检索主机列表

删除主机

 创建主机

添加应用监控项

添加监控项nginx

Zabbix+percona插件实现数据库mysql的监控

 Java应用监控

Zabbix proxy

实验环境:

proxy安装

创建和配置数据库

导入数据库 

前端配置 

后端刷新和配置


通过API接口管理Zabbix所监控主机 

API简介

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。


Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时。很难想象管理数千台服务器而没有自动化是多么的困难。Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。
Zabbix API是在1.8版本中开始引进并且已经被广泛应用。所有的Zabbix移动客户端都是基于API,甚至原生的WEB前端部分也是建立在它之上。Zabbix APl中间件使得架构更加模块化也避免直接对数据库进行操作。它允许你通过JSON RPC协议来创建、更新和获取Zabbix对象并且做任何你喜欢的操作【当然前提是你拥有认证账户】。

Zabbix API提供两项主要功能:
·远程管理Zabbix配置
.远程检索配置和历史数据

Zabbix API允许以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:

  • 创建新的应用程序以使用Zabbix;
  • 将Zabbix与第三方软件集成;
  • 自动执行常规任务

Zabbix API由许多名义上分组的独立API方法组成。每个方法执行一个特定任务。例如,方法 host.create 隶属于 host 这个API分组 ,用于创建新主机。历史上,API分组有时被称为“类”。

大多数API至少包含四种方法: get, create, update 和 delete ,分别是检索,创建,更新和删除数据,但是某些API提供一套完全不同的一组方法。

查看zabbix监控系统的api接口 

访问 Zabbix 内部的任何数据之前,需要登录并获取身份验证令牌。 这可以使用 user.login 方法来完成

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第1张图片

jsonrpc- API 使用的 JSON-RPC 协议的版本; Zabbix API 实现 JSON-RPC 2.0 版;
method- 被调用的 API 方法;
params- 将传递给 API 方法的参数;
id- 请求的任意标识符;
auth- 用户认证令牌; 因为我们还没有,所以设置为 null.
API 返回的响应将包含用户身份验证令牌

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第2张图片

响应对象又包含以下属性:

  • jsonrpc- 再次,JSON-RPC 协议的版本;
  • result- 方法返回的数据;
  • id- 相应请求的标识符。

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第3张图片
企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第4张图片

检索主机列表

用有效的用户身份验证令牌,可用于访问 Zabbix 中的数据。 例如,使用 host.get 的 ID、主机名和接口 主机 : 

vim zabbix-api.sh

auth属性现在设置为我们通过调用获得的身份验证令牌 user.login.  

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第5张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第6张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第7张图片 

删除主机

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第8张图片

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第9张图片  

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第10张图片

 创建主机

 企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第11张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第12张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第13张图片

server3已经被创建

添加应用监控项

添加监控项nginx

下载nginx安装包到server2中

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第14张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第15张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第16张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第17张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第18张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第19张图片

 

 企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第20张图片

 server端安装

图形模式

主机——server2—— 监控项——创建监控项——输入名称(可随意)——输入键值(必须与文件中的键值一致)——输入更新间隔——添加

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第21张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第22张图片

 主机——server2图像——创建图形——输入名称——监控项添加——选择监控项——添加——预览

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第23张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第24张图片

此时有乱码 ,更改语言

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第25张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第26张图片

添加更多nginx监控项

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第27张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第28张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第29张图片

 按照上面的方法,以此类推添加三个监控项,然后在图像处添加监控模板,然后更新

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第30张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第31张图片

Zabbix+percona插件实现数据库mysql的监控

按道理来说zabbix就自带的MySQL插件来监控mysql数据库,但是你会发现,自带的mysql监控项是很少的,根本满足不了公司的需求。

由于它本身自带的模板太过简单了,所以需要做更详细的监控,而percona就提供了这个详细监控的模版以及脚本,解决了监控不全面的问题。

在server1中安装percona,复制percona的监控模版userparameter_percona_mysql.conf到被监控的服务器也就是server6上的zabbix-agent的相应目录下 

重启服务

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第32张图片

执行原理:调用shell脚本通过php代码访问数据库,取出数据,存到/tmp/xx.txp纯文本。通过shell过滤【shell和php结合的过程】

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第33张图片

由于percona的监控脚本是用php写的,所以需要准备好php运行环境,将zabbix的数据库和密码写入php脚本中  

vim ss_get_mysql_stats.php

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第34张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第35张图片

 查找php72的位置 

 企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第36张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第37张图片

做软链接

查看监控项文件我们是用root身份得到的,zabbix没有权限企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第38张图片删除监控项文件,让系统自动生成

 前端设置

配置——模板——导入——选择文件——勾选聚合图形 ——导入 

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第39张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第40张图片

 配置—>主机 —>zabbix server—>模板 —>选择—>percona模板 —>更新

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第41张图片

更新完成,查看zabbix server的监控项,可以看到导入percona模版后的监控项数量变为305个,监控项,图形,触发器数量大大增加更有利于我们在生产环境中对数据库进行全面监控 

 系统自动生成 监控项文件

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第42张图片 禁用掉未知的触发器

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第43张图片

 Java应用监控

JMX简单介绍:
即java管理拓展,是JAVA平台为应用程序,设备,系统等植入管理功能的框架。

优点:可以详细的监控各类JAVA程序的运行状态
缺点:监控机上需要安装zabbix-java-gateway

当Zabbix-Server需要知道java应用程序的某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程去连接Zabbix-JavaGateway请求数据,而ZabbixJavagateway收到请求后使用“JMXmanagementAPI”去查询特定的应用程序,而前提是应用程序这端在开启时需要“-Dcom.sun.management.jmxremote”参数来开启JMX远程查询就行。Java程序(被监控端)会启动自身的一个简单的小程序端口12345向Zabbix-JavaGateway提供请求数据。
————————————————
版权声明:本文为CSDN博主「啾咪嘻啾咪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/asufeiya/article/details/103058677

在server3上下载jdk

在server3上下载tomcat,创建软链接便于访问 

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第44张图片

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第45张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第46张图片

CATALINA_OPTS='-Dcom.sun.management.jmxremote    #开启远程监控
  -Dcom.sun.management.jmxremote.port=8888      #远程监控端口
  -Dcom.sun.management.jmxremote.ssl=false    #远程ssl验证为false
  -Dcom.sun.management.jmxremote.authenticate=false'

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第47张图片

 在server1上安装zabbix-java-gateway

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第48张图片

 更改zabbix_server配置文件添加javagateway的相关信息,重启服务企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第49张图片

在web界面进行设置 

配置—> 主机—> server3—> 主机—> 添加JMX接口的信息(端口要和配置文件中写的一样) —> 添加

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第50张图片

 添加模板——更新

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第51张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第52张图片

 等待刷新后可以看到server3的JMX变绿

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第53张图片

访问,增加访问量,然后图形查看。 

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第54张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第55张图片 

 zabbix server -> java-gateway:10052 -> jmx:8888 -> tomcat

Zabbix proxy

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第56张图片

Zabbix proxy 可以代替 Zabbix server 收集性能和可用性数据,承担一些收集数据的负担,分担了 Zabbix server 的负荷。

此外,使用proxy是实现集中式和分布式监控的最简单方法,所有 agents 和 proxies 发送给一个 Zabbix server,从而集中收集所有数据。

Zabbix proxy 使用场景:

  • 监控远程区域设备
  • 监控本地网络不稳定区域
  • 监控上千设备时,减轻 zabbix server 的负荷
  • 简化分布式监控的维护

Zabbix proxy到 Zabbix server 只需要一条 tcp 连接,仅在防火墙上配置一条规则即可。

Zabbix proxy 数据库必须和 server 数据库分开,否则 Zabbix server 数据库会被破坏。

proxy 收集到数据都先存储在本地,然后在一定时间后传给 Zabbix server,这样就不会因为暂时无法连接zabbix server而丢失数据。本地保留时间由 proxy配置文件中参数 ProxyLocalBuffer 和 ProxyOfflineBuffer 决定。

注意从 zabbix server 数据库直接更新最新配置的 proxy 可能会比 Zabbix server 更快生效。当 Zabbix server 由于设置 缓存更新周期 的原因而无法快速更新时,proxy 收集发送到 Zabbix server 的数据可能会被忽略。

Zabbix proxy 与 Zabbix server 的角色基本一致,不过功能少一些,Zabbix proxy 只是一个数据收集器,不运行触发器、不处理事件、不发送报警。

实验环境:

server1——>Zabbix server    server2——>Zabbix proxy    server3——>agent

介于之前的实验,先把server2主机从前端删除。

方便区分,做一下主机名称更改

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第57张图片 

由于server2之前做agent所以先关闭agent的启动项,如果是新机子就不用了

 记得给所有节点进行域名解析。 

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第58张图片

proxy安装

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第59张图片

创建和配置数据库

为Zabbix proxy创建一个单独的数据库

Zabbix server和Zabbix proxy不能使用相同的数据库。 如果它们安装在同一主机上,则proxy数据库必须具有不同的名称。

Zabbix数据库必须在Zabbix server或proxy安装的时候创建。

先查看DB名称用于在server端创建数据库。

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第60张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第61张图片

server端创建数据库,并授权,刷新。

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第62张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第63张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第64张图片 

编辑配置文件

注意配置要和之前数据库的配置相同。

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第65张图片

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第66张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第67张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第68张图片

导入数据库 

在proxy端

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第69张图片

 在server端数据库查看。企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第70张图片

 然后server2就可以启动proxy

前端配置 

管理——agent代理程序——创建代理——名称(和主机名保持一致)——主动式——代理地址(172.25.0.2)——描述(可以不写)——添加

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第71张图片

 主机——server3——由agent代理程序监测(选择proxy)——更新

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第72张图片企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第73张图片

后端刷新和配置

 agent端更改配置文件,指向proxy

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第74张图片

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第75张图片

浏览器刷新之后发现JMX没启用,这是因为我们的代理配置文件的没有设置这个监控,proy设置监控java模块 

此时的监控过程为

server<——proxy——>java-gatway ——>jmx:8888

企业运维——zabbix的API接口管理、添加监控项、Zabbix proxy设置_第76张图片

 刷新,server3的jmx重新亮起

 设置完成,查看图像。

你可能感兴趣的:(运维,zabbix,监控,zabbix,proxy)