Zabbix使用Elasticsearch Cluster by HTTP监控

Zabbix Server 安装

Zabbix Agent 安装

Zabbix agent这里使用docker安装,如果不想安装zabbix_agent也可以的,因为es的数据是通过HTTP的方式获取,可以不安装Zabbix agent

  1. <span> docker run </span> <span>--</span> <span>name zabbix</span> <span>-</span> <span>agent </span> <span>-</span> <span>t </span> <span>-</span> <span>v zabbix_agent</span> <span>:</span> <span>/etc/</span> <span>zabbix </span> <span>-</span> <span>e ZBX_HOSTNAME</span> <span>=</span> <span>"apisix-es"</span> <span> </span> <span>-</span> <span>e ZBX_SERVER_HOST</span> <span>=</span> <span>"192.168.0.10"</span> <span> </span> <span>-</span> <span>e ZBX_SERVER_PORT</span> <span>=</span> <span>10051</span> <span> </span> <span>-</span> <span>p </span> <span>10050</span> <span>:</span> <span>10050</span> <span> </span> <span>--</span> <span>restart</span> <span>=</span> <span>unless</span> <span>-</span> <span>stopped </span> <span>--</span> <span>privileged </span> <span>-</span> <span>d zabbix</span> <span>/</span> <span>zabbix</span> <span>-</span> <span>agent</span> <span>:</span> <span>alpine</span> <span>-</span> <span>6.2</span> <span>-</span> <span>latest</span>
  2. <span>#参数解释</span>
  3. <span>ZBX_HOSTNAME </span> <span>Zabbix</span> <span>主机名,最好和外面的保持一致</span>
  4. <span>ZBX_SERVER_HOST </span> <span>Zabbix</span> <span> </span> <span>Server</span> <span> </span> <span>地址</span>
  5. <span>ZBX_SERVER_PORT </span> <span>Zabbix</span> <span> </span> <span>Server</span> <span>端口号</span>

ES安装

  1. <span>docker run </span> <span>--</span> <span>name es01 </span> <span>-</span> <span>p </span> <span>9200</span> <span>:</span> <span>9200</span> <span> </span> <span>-</span> <span>p </span> <span>9300</span> <span>:</span> <span>9300</span> <span> </span>
  2. <span> </span> <span>-</span> <span>e </span> <span>"discovery.type=single-node"</span> <span> </span> <span>-</span> <span>e ES_JAVA_OPTS</span> <span>=</span> <span>"-Xms84m -Xmx512m"</span> <span> </span> <span>-</span> <span>d elasticsearch</span> <span>:</span> <span>7.12</span> <span>.</span> <span>0</span>
  3. <span>#如果需要持久化可以添加以下参数</span>
  4. <span> </span> <span>-</span> <span>v </span> <span>/</span> <span>home</span> <span>/</span> <span>es_docker</span> <span>/</span> <span>config</span> <span>/</span> <span>elasticsearch</span> <span>.</span> <span>yml</span> <span>:</span> <span>/usr/</span> <span>share</span> <span>/</span> <span>elasticsearch</span> <span>/</span> <span>config</span> <span>/</span> <span>elasticsearch</span> <span>.</span> <span>yml</span>
  5. <span> </span> <span>-</span> <span>v </span> <span>/</span> <span>home</span> <span>/</span> <span>es_docker</span> <span>/</span> <span>data</span> <span>:</span> <span>/usr/</span> <span>share</span> <span>/</span> <span>elasticsearch</span> <span>/</span> <span>data </span>
  6. <span> </span> <span>-</span> <span>v </span> <span>/</span> <span>home</span> <span>/</span> <span>es_docker</span> <span>/</span> <span>plugins</span> <span>:</span> <span>/usr/</span> <span>share</span> <span>/</span> <span>elasticsearch</span> <span>/</span> <span>plugins </span>

检查服务状态

  1. <span>[</span> <span>root@abcdocker </span> <span>~]#</span> <span> docker ps</span> <span>|</span> <span>grep es01</span>
  2. <span>d0cb70808be4 elasticsearch</span> <span>:</span> <span>7.12</span> <span>.</span> <span>0</span> <span> </span> <span>"/bin/tini -- /usr/l…"</span> <span> </span> <span>2</span> <span> minutes ago </span> <span>Up</span> <span> </span> <span>2</span> <span> minutes </span> <span>0.0</span> <span>.</span> <span>0.0</span> <span>:</span> <span>9200</span> <span>-></span> <span>9200</span> <span>/</span> <span>tcp</span> <span>,</span> <span> </span> <span>:::</span> <span>9200</span> <span>-></span> <span>9200</span> <span>/</span> <span>tcp</span> <span>,</span> <span> </span> <span>0.0</span> <span>.</span> <span>0.0</span> <span>:</span> <span>9300</span> <span>-></span> <span>9300</span> <span>/</span> <span>tcp</span> <span>,</span> <span> </span> <span>:::</span> <span>9300</span> <span>-></span> <span>9300</span> <span>/</span> <span>tcp es01</span>

修改Elasticsearch Cluster by HTTP模板

我们在Template App Elasticsearch Cluster by HTTP这个模板的监控项中发现以下五个监控项需要修改,3个是采集源监控项,2个是简单检查监控项,它们默认访问的是127.0.0.1,我们得改成可自定义配置IP

实际上就是将{HOST.CONN}替换为{$ELASTICSEARCH.IP}

监控项 类型 修改前URL 修改后URL
ES: Get cluster health HTTP代理 {$ELASTICSEARCH.SCHEME}://{HOST.CONN}:{$ELASTICSEARCH.PORT}/_cluster/health?timeout=5s {$ELASTICSEARCH.SCHEME}://{$ELASTICSEARCH.IP}:{$ELASTICSEARCH.PORT}/_cluster/health?timeout=5s
ES: Get cluster stats HTTP代理 {$ELASTICSEARCH.SCHEME}://{HOST.CONN}:{$ELASTICSEARCH.PORT}/_cluster/stats {$ELASTICSEARCH.SCHEME}://{$ELASTICSEARCH.IP}:{$ELASTICSEARCH.PORT}/_cluster/stats
ES: Get nodes stats HTTP代理 {$ELASTICSEARCH.SCHEME}://{HOST.CONN}:{$ELASTICSEARCH.PORT}/_nodes/stats {$ELASTICSEARCH.SCHEME}://{$ELASTICSEARCH.IP}:{$ELASTICSEARCH.PORT}/_nodes/stats
ES: Service response time 简单检查 net.tcp.service.perf["{$ELASTICSEARCH.SCHEME}","{HOST.CONN}","{$ELASTICSEARCH.PORT}"] net.tcp.service.perf["{$ELASTICSEARCH.SCHEME}","{$ELASTICSEARCH.IP}","{$ELASTICSEARCH.PORT}"]
ES: Service status 简单检查 net.tcp.service["{$ELASTICSEARCH.SCHEME}","{HOST.CONN}","{$ELASTICSEARCH.PORT}"] net.tcp.service["{$ELASTICSEARCH.SCHEME}","{$ELASTICSEARCH.IP}","{$ELASTICSEARCH.PORT}"]

Zabbix中替换url即可,记得点击保存

Zabbix Agent配置

选择ES监控模板

添加主机宏

  1. <span>{</span> <span>$ELASTICSEARCH</span> <span>.</span> <span>IP</span> <span>}</span>
  2. <span>#这里的IP为ES IP</span>

这里就可以看到已经获取到最新数据了