企业运维——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 方法来完成

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

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

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


检索主机列表

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

vim zabbix-api.sh

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

 

删除主机

  

 创建主机

 

server3已经被创建

添加应用监控项

添加监控项nginx

下载nginx安装包到server2中

 

 

 server端安装

图形模式

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

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

此时有乱码 ,更改语言

添加更多nginx监控项

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

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

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

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

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

重启服务

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

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

vim ss_get_mysql_stats.php

 查找php72的位置 

 

做软链接

查看监控项文件我们是用root身份得到的,zabbix没有权限删除监控项文件,让系统自动生成

 前端设置

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

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

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

 系统自动生成 监控项文件

 禁用掉未知的触发器

 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,创建软链接便于访问 

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'

 在server1上安装zabbix-java-gateway

 更改zabbix_server配置文件添加javagateway的相关信息,重启服务

在web界面进行设置 

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

 添加模板——更新

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

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

 

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

Zabbix proxy

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主机从前端删除。

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

 

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

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

proxy安装

创建和配置数据库

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

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

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

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

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

 

编辑配置文件

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

导入数据库 

在proxy端

 在server端数据库查看。

 然后server2就可以启动proxy

前端配置 

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

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

后端刷新和配置

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

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

此时的监控过程为

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

 刷新,server3的jmx重新亮起

 设置完成,查看图像。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值