1 Zabbix概述
1) 是一个企业级的分布式开源监控方案
2) 是一个高度集成的网络监控解决方案
3) 是一款能够监控各种网络参数以及服务器健康性和完整性的软件
2 常用名词解释
1) 主机(host):一台你想监控的网络设备,用IP或域名表示
2) 监控项(item):你想要接收的主机的特定数据,一个度量数据
3) Zabbix Server:实现监控的核心程序,主要功能是与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等
4) Zabbix Agent:一个部署在监控对象上的,能够主动监控本地资源和应用的程序
5) Zabbix Proxy:一个帮助Zabbix Server收集数据,分担Zabbix Server的负载的程序
6) 数据库存储:所有的配置信息和zabbix收集到的数据都被存储在数据库中
3 安装(从容器安装)
1) 下载所需镜像
$ docker pull zabbix/zabbix-agent $ docker pull zabbix/zabbix-server-mysql $ docker pull zabbix/zabbix-web-nginx-mysql $ docker pull zabbix/zabbix-proxy-mysql $ docker pull zabbix/zabbix-java-gateway
2) 使用方法示例
# 启动一个空的MySQL服务器实例 $ docker run --name mysql-server -t \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="root_pwd" \ -d mysql:5.7
4 Zabbix API
说明
1) 基于Web的API,作为Web前端的一部分提供,使用JSON-RPC 2.0协议
2) 身份认证Token:在访问Zabbix中的任何数据之前,需要登录并获取身份验证令牌
3) 请求URL:http://company.com/zabbix/api_jsonrpc.php,eg. http://10.1.1.170/api_jsonrpc.php
4) Method参数:请求api方法,eg. “user.login”、”item.get”
实例
1) 获取Zabbix API版本
curl -X POST -H "Content-Type":application/json-rpc --data '{"jsonrpc":"2.0", "method":"apiinfo.version", "id":1, "auth":null, "params":{}}' http://10.1.1.170/api_jsonrpc.php
2) 标准Zabbix Admin用户身份登录,返回认证token
curl -X POST -H "Content-Type":application/json-rpc --data '{"jsonrpc":"2.0", "method":"user.login", "id":1, "auth":null, "params":{"user":"Admin", "password":"zabbix"}}' http://10.1.1.170/api_jsonrpc.php
3) 检索所有已配置主机的ID、主机名和接口
curl -X POST -H "Content-Type":application/json-rpc --data '{"jsonrpc":"2.0", "method":"host.get", "id":1, "auth":"71d431b6092f75ca235fd9475d56b965", "params":{"output":["hostid","host"], "selectInterfaces":["interfaceid","ip"]}}' http://10.1.1.170/api_jsonrpc.php
5 参考
https://www.zabbix.com/documentation/3.4/zh/manual (Zabbix中文文档)