ZabbixでNginxを監視する設定のテンプレートを追加しました。 その備忘録です。
環境
- CentOS 7
- Zabbix : v5.0
- nginx : v1.19.6
導入方法
https://www.zabbix.com/integrations/nginx
ZabbixがNginxを監視するための導入手順は3つあります。
- Template App Nginx By HTTP
HTTP経由でリソースを取得する。 - Template App Nginx By Zabbix Agent
ローカルのエージェントがメトリックを収集する。 - 3rd Party Solutions
PHP-FPM 向けのものやメトリクスを拡張するモジュールを紹介しています。
上2つはZabbixエージェントがサーバの中か外かの違いだけで。 どちらもNginxのステータスを返すエンドポイントを設定します。
モジュールの確認とNginxの設定
ngx_http_stub_status_module
Nginx Module ngx_http_stub_status_module
ngx_http_stub_status_module
モジュールは、基本的なステータス情報へのアクセスを提供します。
Zabbixエージェントはこれをメトリクスとして収集します。
▼ のコマンドでngx_http_stub_status_module
モジュールが利用可能か確認します。
$ nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module
▼次のステータス情報が提供されています。
ステータス | 概要 |
---|---|
Active connections | 接続待ちを含むアクティブなクライアント接続の現在の数。 |
accepts | 受け入れられたクライアント接続の総数。 |
handled | 処理されたコネクションの総数。一般的にリソースの制限 (たとえば worker_connections の制限) に達していない限りパラメータの値は accepts と同じになります。 |
requests | クライアント要求の総数。 |
Reading | nginxがリクエストヘッダーを読み取っている現在の接続数。 |
Writing | nginxがクライアントに応答を書き戻している現在の接続数。 |
Waiting | 要求を待機しているアイドル状態のクライアント接続の現在の数。 |
▼レスポンスの例
$ curl http://localhost/basic_status
Active connections: 11
server accepts handled requests
47 47 160
Reading: 0 Writing: 1 Waiting: 10
Nginxの設定
メトリックを収集するためのHTTPの設定をNginxのconfに追加します。
/etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/public;
index index.html index.htm;
}
# 追加したパス
location /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
省略
}
ローカルホストから80ポートのアクセスに対してのみステータスを返します。
127.0.0.1
と::1
はどちらもローカルホストです。
どちらか片方を消しても同じです。
別のサーバからアクセスする場合は、allow <IP of your Zabbix server/proxy>;
と変えてください。
▼ローカルからのアクセスはOK。
$ curl http://localhost/basic_status
Active connections: 11
server accepts handled requests
47 47 160
Reading: 0 Writing: 1 Waiting: 10
▼外からのアクセスは403になることを確認しました。
テンプレートについて
テンプレートの追加と項目について。
テンプレートの追加
Zabbixの「設定」→「ホスト」からNginxのホストに対してテンプレートを追加します。 「新規テンプレートをリンク」からテンプレートを探して更新をする。