这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.
2022 Zabbix中国峰会
2022 Zabbix中国峰会
Table of Contents

HTTP 模板操作

使用HTTP agent方式收集模板指标数据的正确操作步骤:

1. 在Zabbix 中创建一个主机,指定监控目标的IP地址或DNS名称为主接口。这需要宏{HOST.CONN}在模板项中正确的解析。
2. 将模板 链接 到步骤1中创建的主机(如果模板在Zabbix安装中不可用,您可能需要首先导入模板的.xml文件 - 参见 开箱即用的模板 说明).
3. 根据需要调整必配宏的值。
4. 配置被监视的主机实例,以允许与Zabbix共享数据 - 请参阅 附加步骤/注释 列3中的说明。

此页仅包含正确模板操作所需的最小宏的集和设置步骤。在模板的Readme.md文件中(可通过单击模板名称进行访问),可查看模板的详细描述,包括宏、监控项和触发器的完整列表。

模板 必配宏 附加步骤/注释
Apache by HTTP {$APACHE.STATUS.HOST} - - Apache 状态页的主机名或IP地址 (默认: 127.0.0.1).
{$APACHE.STATUS.PATH} -URL 路径 (默认: server-status?auto).
{$APACHE.STATUS.PORT} - Apache 状态页的端口号 (默认: 80).
{$APACHE.STATUS.SCHEME} -请求协议. 支持: http (默认), https.
Apache模块 mod_status 需要设置 (详情参见Apache 文档).
可用性检查, 执行:
httpd -M 2>/dev/null \| grep status_module

Apache 配置样例:
<Location "/server-status">
SetHandler server-status
Require host example.com
</Location>
Asterisk by HTTP {$AMI.PORT} - 检测服务可用性的 AMI 端口号(默认: 8088).
{$AMI.SECRET} - Asterisk Manager的secret(默认: zabbix).
{$AMI.URL} - Asterisk Manager 的 API URL 格式
<scheme>://<host>:<port>/<prefix>/rawman
(默认: http://asterisk:8088/asterisk/rawman).
{$AMI.USERNAME} - the Asterisk Manager用户名.
1. 启用 mini-HTTP Server.

2. 添加选项 webenabled=yes 到配置文件 manager.conf.

3. 在Asterisk实例中创建 Asterisk Manager 用户.
ClickHouse by HTTP {$CLICKHOUSE.PORT} - ClickHouse HTTP 端点的端口号 (默认: 8123).
{$CLICKHOUSE.SCHEME} - 请求协议. 支持: http (默认), https.
{$CLICKHOUSE.USER}, {$CLICKHOUSE.PASSWORD} - ClickHouse 登陆凭据 (默认用户名: zabbix, 密码: zabbix_pass).
如果不需要身份验证,请从监控项的HTTP agent类型配置项的请求头中删除.
通过'web'配置文件创建ClickHouse用户,并赋予数据库查询权限(详情参见ClickHouse 文档).

请参阅模板的Readme.md文件,了解zabbix.xml的文件配置.
Cloudflare by HTTP {$CLOUDFLARE.API.TOKEN} - Cloudflare API token (默认: `<change>`).
{$CLOUDFLARE.ZONE_ID} - Cloudflare站点Zone ID (默认: `<change>`).
在Cloudflare账户下我的个人资料→ API Tokens中获取Cloudflare API Tokens.
在Cloudflare账户下账户主页→ 站点中获取Zone ID.
DELL PowerEdge R720 by HTTP,
DELL PowerEdge R740 by HTTP,
DELL PowerEdge R820 by HTTP,
DELL PowerEdge R840 by HTTP
{$API.URL} - Dell iDRAC Redfish API URL格式 <scheme>://<host>:<port> (默认: <输入您的URL地址>)
{$API.USER}, {$API.PASSWORD} - Dell iDRAC 登陆凭证 (默认: 不设置).
Dell服务器上的iDRAC接口:
1. 启用Redfish API .
2. 创建一个用户监控用户,赋予只读权限.
Elasticsearch Cluster by HTTP {$ELASTICSEARCH.PORT} - Elasticsearch 主机的端口号 (默认: 9200).
{$ELASTICSEARCH.SCHEME} - 请求协议. 支持: http (默认), https.
{$ELASTICSEARCH.USERNAME}, {$ELASTICSEARCH.PASSWORD} - 登陆凭证, 仅当用于Elasticsearch身份验证时才需要.
Etcd by HTTP {$ETCD.PORT}- Etcd API 端点的端口号 (默认: 2379).
{$ETCD.SCHEME} - 请求协议. 支持: http (默认), https.
{$ETCD.USER}, {$ETCD.PASSWORD} - 登陆凭证, 仅当用于Etcd身份验证时才需要.
端点的接口路径/metrics采集指标; 指定API端点的接口路径,请使用 --listen-metrics-urls 参数(详情参见Etcd 文档).

本地验证Etcd指标采集,执行:
curl -L http://localhost:2379/metrics

检查 Etcd 指标可以从 Zabbix proxy 或 Zabbix server 采集,执行:
curl -L http:%%//<etcd_node_adress>:2379/metrics%%

每个 Etcd 的节点都需要链接这个模板.
GitLab by HTTP {$GITLAB.PORT} - GitLab Web端点的端口号 (默认: 80)
{$GITLAB.URL} - GitLab 实例URL (默认: localhost)
该模板只适用与本地 GitLab 实例; 指标采集路径为 /metrics .

需要设置客户IP白名单,才能访问指标(详情参见 GitLab 文档).

请注意,某些指标可能不适用于特定的GitLab实例版本和配置.
Hadoop by HTTP {$HADOOP.NAMENODE.HOST} - Hadoop NameNode 节点的主机IP 或 FQDN (默认: NameNode).
{$HADOOP.NAMENODE.PORT} - Hadoop NameNode 节点的 web-UI 端口号 (默认: 9870).
{$HADOOP.RESOURCEMANAGER.HOST} - Hadoop ResourceManager 节点的 IP 地址或 FQDN (默认: ResourceManager).
{$HADOOP.RESOURCEMANAGER.PORT} - Hadoop ResourceManager 的 web-UI 端口号 (默认: 8088).
采用HTTP agent和JSONPath预处理方式远程轮询 Hadoop API 来收集指标数据。Zabbix服务器(或代理)完成对ResourceManager、NodeManager、NameNode、DataNodes API的直接请求处理.
HAProxy by HTTP {$HAPROXY.STATS.PATH} - HAProxy 状态页的路径 (默认: stats).
{$HAPROXY.STATS.PORT} - HAProxy 状态页主机或容器的端口号 (默认: 8404).
{$HAPROXY.STATS.SCHEME} - 请求协议. 支持: http (默认), https.
需设置HAProxy 状态页 (详情参见HAProxy 博客文档 或 模板的 Readme.md 配置样例).
HashiCorp Vault by HTTP {$VAULT.API.PORT} - Vault API请求的监听端口(默认: 8200).
{$VAULT.API.SCHEME} - Vault API请求的协议. 支持: http (默认), https.
{$VAULT.HOST} - Vault主机名 (默认: <填写您的Vaultu主机名>).
{$VAULT.TOKEN} - Vault 认证令牌 (默认: <填写您的TOKEN>).
1. 配置 Vault API (详情参见 官方文档).
2. 创建 Vault 服务的token, 并将其赋值于宏{$VAULT.TOKEN}.
Hikvision camera by HTTP {$HIKVISION_ISAPI_PORT} - 设备上的 ISAPI 端口 (默认: 80).
{$USER}, {$PASSWORD} - camera 登陆凭证 (默认 用户: admin, 密码: 1234).
InfluxDB by HTTP {$INFLUXDB.API.TOKEN} - InfluxDB API 授权token (默认: ``).
{$INFLUXDB.URL} - InfluxDB 实例 URL 格式<scheme>://<host>:<port> (默认: http://localhost:8086).
此模板从本地InfluxDB实例/metrics路径中采集InfluxDB服务指标.

详情参见 InfluxDB 文档.
Jenkins by HTTP {$JENKINS.API.KEY} - 访问Metrics Servlet的API 秘钥; 采集通用指标时必须配置 (默认: ``).
{$JENKINS.API.TOKEN} - 用于HTTP BASIC 授权的API token; 监控执行节点和构建过程所需 (默认: ``).
{$JENKINS.URL} - Jenkins URL 格式 <scheme>://<host>:<port>; 监控执行节点和构建过程所需 (默认: ``).
{$JENKINS.USER} - HTTP BASIC 授权用户; 监控执行节点和构建过程所需 (默认: zabbix).
通过请求 Metrics API 采集指标.

通用指标: 安装配置 Metrics 插件, 配置参数参考 官方文档. 发行一个API秘钥用于接入Metrics Servlet,并将其赋值于宏{$JENKINS.API.KEY}.

监控执行节点和构建过程所需: 创建一个API token用于Jenkins监控用户,并将其赋值于宏 {$JENKINS.API.TOKEN}. 详情参见Jenkins 文档.
Kubernetes API server by HTTP {$KUBE.API.SERVER.URL} - 实例URL (默认: http://localhost:8086/metrics).
{$KUBE.API.TOKEN} - API 授权token (默认: ``).
模板要求 Kubernetes 集群中必须安装 Zabbix Helm Chart.

内部指标将从/metrics中采集.

使用Bearer API token授权方式. 详情参见 Kubernetes 文档.
Kubernetes Controller manager by HTTP {$KUBE.CONTROLLER.SERVER.URL} - 实例 URL (默认: http://localhost:10252/metrics).
{$KUBE.CONTROLLER.TOKEN} - API authorization token (默认: ``).
模板要求 Kubernetes 集群中必须安装 Zabbix Helm Chart .

内部指标将从/metrics中采集.

使用Bearer API token授权方式. 详情参见 Kubernetes 文档.
Kubernetes kubelet by HTTP {$KUBE.KUBELET.URL} - instance URL (默认: https://localhost:10250).
{$KUBE.API.TOKEN} - API 授权token (默认: ``).
模板要求 Kubernetes 集群中必须安装 Zabbix Helm Chart.

内部指标将从/metrics中采集.

使用Bearer API token授权方式. 详情参见Kubernetes 文档.
Kubernetes nodes by HTTP {$KUBE.API.ENDPOINT} - Kubernetes API 访问地址格式 <scheme>://<host>:<port>/api (默认: 不设置).
{$KUBE.API.TOKEN} - API 授权token (默认: ``).
模板要求 Kubernetes 集群中必须安装 Zabbix Helm Chart.

生成服务账户token, 执行:
kubectl get secret zabbix-service-account -n zabbix -o jsonpath={.data.token} | base64 -d

详情参见Kubernetes 文档.

模板中包含有一些额外的宏,可用于过滤被发现的工作节点的某些指标.
Kubernetes Scheduler by HTTP {$KUBE.SCHEDULER.SERVER.URL} - 实例 URL (默认: http://localhost:10251/metrics).
{$KUBE.SCHEDULER.TOKEN} - Scheduler API 授权token (默认: ``).
模板要求 Kubernetes 集群中必须安装 Zabbix Helm Chart.

内部指标将从/metrics中采集.

使用Bearer API token授权方式. 详情参见Kubernetes 文档.
Kubernetes cluster state by HTTP {$KUBE.API.HOST} - Kubernetes API 服务器(默认: 不设置).
{$KUBE.API.PORT}- Kubernetes API 端口(默认:6443).
{$KUBE.API.TOKEN} - API 授权token (默认: ``).
模板要求 Kubernetes 集群中必须安装 Zabbix Helm Chart.

内部服务指标将从kube-state-metrics端点中采集.

使用Bearer API token授权方式. 详情参见Kubernetes 文档.

模板中包含有一些额外的宏,可用于过滤被发现的工作节点的某些指标.
Microsoft SharePoint by HTTP {$SHAREPOINT.URL} - 门户页面URL, 例如 http://sharepoint.companyname.local/ (默认: ``).
{$SHAREPOINT.ROOT} - 根目录; 只监控根目录及其所有子文件夹(默认: /Shared Documents)
{$SHAREPOINT.USER}, {$SHAREPOINT.PASSWORD} - SharePoint 登陆凭证 (默认: 不设置).
模板中包含有一些额外的宏,可用于在LLD中过滤掉某些字典和类型(可用于过滤的宏的说明请参见模板的 Readme.md).
NetApp AFF A700 by HTTP {$URL} - AFF700 集群 URL 地址(默认: ' ' )
{$USERNAME}, {PASSWORD} - AFF700 登陆凭证 (默认: 不设置).
创建 AFF A700主机,Zabbix客户端接口配置集群管理IP.
NGINX by HTTP {$NGINX.STUB_STATUS.HOST} - NGINX stub_status 主机或者容器的主机名或IP地址 (默认: localhost).
{$NGINX.STUB_STATUS.PATH} - NGINX stub_status 页面访问路径 (默认: basic_status).
{$NGINX.STUB_STATUS.PORT} - NGINX stub_status 主机或容器监听端口 (默认: 80).
{$NGINX.STUB_STATUS.SCHEME} - 请求协议. 支持: http (默认), https.
'ngx_http_stub_status_module 需要被设置 (配置样例详情参见 NGINX 文档 或模板的 Readme.md文件).
可用性检查, 执行:
nginx -V 2>&1 \| grep -o with-http_stub_status_module
NGINX Plus by HTTP {$NGINX.API.ENDPOINT} - NGINX Plus API URL 访问格式 <scheme>://<host>:<port>/<location>/ (默认: ' '). 1. 启用 NGINX Plus API (详情参见 NGINX 文档).
2. 设置宏 {$NGINX.API.ENDPOINT}
3. 如果需要, 使用其他模板的宏过滤自动发现操作,仅需配置 zones 和 upstreams.
OpenWeatherMap by HTTP {$OPENWEATHERMAP.API.ENDPOINT} - OpenWeatherMap API endpoint (默认: api.openweathermap.org/data/2.5/weather?).
{$OPENWEATHERMAP.API.TOKEN} - OpenWeatherMap API key (默认:' ')
{$LOCATION} - 要检索其指标的位置 (默认: Riga)
有关获取 API 密钥的说明,参考 OpenWeatherMap 文档

{$LOCATION} 宏支持如下格式:
geocoordinates - 例如,56.95,24.0833
location name - 例如, Chicago
OpenWeatherMap location ID - 下载 ID 列表
zip/postal code with a country code - 例如, 94040,us
使用 | 分隔符来指定多个 location。
例如:
43.81821,7.76115|Riga|2643743|94040,us
PHP-FPM by HTTP {$PHP_FPM.HOST} - PHP-FPM 主机或容器的主机名或IP地址 (默认: localhost).
{$PHP_FPM.PING.PAGE} - PHP-FPM ping页面访问路径 (默认:ping).
{$PHP_FPM.PORT} - PHP-FPM 主机或容器的端口号 (默认: 80).
{$PHP_FPM.PROCESS_NAME} - PHP-FPM 进程名 (默认: php-fpm).
{$PHP_FPM.SCHEME} - 请求协议. 支持: http (默认), https.
{$PHP_FPM.STATUS.PAGE} - PHP-FPM 状态页面访问路径 (默认:status).
1. 打开配置文件并启用状态页:
pm.status_path = /status
ping.path = /ping

2. 语法验证: $ php-fpm7 -t

3. 重新加载 php-fpm 服务.

4. 在Nginx配置文件Server配置块(虚拟主机) 中, 添加 (带注释的扩展样例参见模板的Readme.md ):
location ~ ^/(status\|ping)\$ {
access_log off;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}

5. 语法检查: $ nginx -t

6. 重新加载Nginx

7. 检查状态页: curl -L 127.0.0.1/status
Proxmox VE by HTTP {$PVE.TOKEN.ID} - API token 允许对 REST API 的大多数部分进行无状态访问 (默认: 未设置)。
{$PVE.TOKEN.SECRET} - secret key (默认: 未设置).
{$PVE.URL.PORT} - 服务器侦听的端口 (默认: 8006)。
创建一个单独的用户进行监控,然后为此用户生成 API token。
向 token 和用户授予以下访问级别:
Check: ["perm","/",["Sys.Audit"]]
Check: ["perm","/nodes/{node}",["Sys.Audit"]]
Check: ["perm","/vms/{vmid}",["VM.Audit"]]
RabbitMQ cluster by HTTP {$RABBITMQ.API.CLUSTER_HOST} - RabbitMQ 集群 API 端点的主机名或IP地址 (默认: 127.0.0.1).
{$RABBITMQ.API.SCHEME} - 请求协议. 支持: http (默认), https.
{$RABBITMQ.API.USER}, {$RABBITMQ.API.PASSWORD} - RabbitMQ 登陆凭证 (默认 用户: zbx_monitor, 密码: zabbix).
启用RabbitMQ管理插件 (参见RabbitMQ 文档).

创建一个 RabbitMQ监控用户,赋予必要的权限, 执行:
'' rabbitmqctl add_user zbx_monitor <PASSWORD> ''
rabbitmqctl set_permissions -p / zbx_monitor %% "" "" ".*"%%
rabbitmqctl set_user_tags zbx_monitor monitoring

单节点安装时,可将集群模板分配给已安装节点模板的主机。如果群集由多个节点组成,建议将群集模板分配给一个单独的负载主机使用.
TiDB by HTTP {$TIDB.PORT} - TiDB 服务器指标信息web端点的端口 (默认: 10080)
{$TIDB.URL} - TiDB 服务器 UR (默认: localhost).
模板适用于PingCAP TiDB 集群的TiDB服务器.
内部指标将从TiDB /metrics和TiDB监控API中采集.
TiDB PD by HTTP {$TIDB.PORT} - TiDB 服务器指标信息web端点的端口 (默认: 2379)
{$TIDB.URL} - TiDB 服务器 URL (默认: localhost).
模板适用于PingCAP TiDB 集群的PD服务器.
内部指标将从PD /metrics和TiDB监控API中采集.
TiDB TiKV by HTTP {$TIDB.PORT} - TiDB 服务器指标信息web端点的端口 (默认: 20180)
{$TIDB.URL} - TiDB 服务器 UR (默认: localhost).
模板适用于PingCAP TiDB 集群的TiKV服务器.
内部指标将从TiKV /metrics中采集.
Travis CI by HTTP {$TRAVIS.API.TOKEN} - Travis API Token (默认: 不设置)
{$TRAVIS.API.URL} - Travis API URL (默认: api.travis-ci.com).
可在 用于→ 设置→ API 授权 查找Travis API token.
{$TRAVIS.API.URL} 私有项目格式为 api.travis-ci.com.
{$TRAVIS.API.URL} 企业项目格式为 api.example.com (将example.com替换成Travis CI所在的域名).
VMWare SD-WAN VeloCloud by HTTP {$VELOCLOUD.TOKEN} - VMware SD-WAN Orchestrator API Token (默认: ``).
{$VELOCLOUD.URL} - VMware SD-WAN Orchestrator URL, 例如, velocloud.net (默认: ``).
必须在VMware SD-WAN Orchestrator中创建API token (详情参见VMware 文档).
ZooKeeper by HTTP {$ZOOKEEPER.COMMAND_URL} - admin.commandURL; 相对根URL,该URL用于列出和发出命令 (默认: commands).
{ZOOKEEPER.PORT} - admin.serverPort; 内置 Jetty服务的侦听端口号 (默认: 8080).
{$ZOOKEEPER.SCHEME} - 请求协议. 支持: http (默认), https.
通过对AdminServer发出请求,可从每个Zookeep节点采集指标(默认启用). 启用或配置 AdminServer 参见 ZooKeeper 文档.