目录
通过API接口管理Zabbix所监控主机
查看zabbix监控系统的api接口
检索主机列表
删除主机
创建主机
添加应用监控项
添加监控项nginx
Zabbix+percona插件实现数据库mysql的监控
Java应用监控
Zabbix proxy
实验环境:
proxy安装
创建和配置数据库
导入数据库
前端配置
后端刷新和配置
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 内部的任何数据之前,需要登录并获取身份验证令牌。 这可以使用 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安装包到server2中
图形模式
主机——server2—— 监控项——创建监控项——输入名称(可随意)——输入键值(必须与文件中的键值一致)——输入更新间隔——添加
主机——server2图像——创建图形——输入名称——监控项添加——选择监控项——添加——预览
此时有乱码 ,更改语言
添加更多nginx监控项
按照上面的方法,以此类推添加三个监控项,然后在图像处添加监控模板,然后更新
按道理来说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个,监控项,图形,触发器数量大大增加更有利于我们在生产环境中对数据库进行全面监控
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 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的启动项,如果是新机子就不用了
为Zabbix proxy创建一个单独的数据库
Zabbix server和Zabbix proxy不能使用相同的数据库。 如果它们安装在同一主机上,则proxy数据库必须具有不同的名称。
Zabbix数据库必须在Zabbix server或proxy安装的时候创建。
先查看DB名称用于在server端创建数据库。
server端创建数据库,并授权,刷新。
编辑配置文件
注意配置要和之前数据库的配置相同。
在proxy端
然后server2就可以启动proxy
管理——agent代理程序——创建代理——名称(和主机名保持一致)——主动式——代理地址(172.25.0.2)——描述(可以不写)——添加
主机——server3——由agent代理程序监测(选择proxy)——更新
agent端更改配置文件,指向proxy
浏览器刷新之后发现JMX没启用,这是因为我们的代理配置文件的没有设置这个监控,proy设置监控java模块
此时的监控过程为
server<——proxy——>java-gatway ——>jmx:8888
刷新,server3的jmx重新亮起
设置完成,查看图像。