zabbix 2.4を使用してnginxをモニタする

2767 ワード

1、Nginx状態を取得する(HTTP Stub Status)
/usr/local/nginx/sbin/nginx -V

2、nginxを配置する.conf
vim /usr/local/nginx/conf/nginx.conf
location ~ /nginx_status {
      stub_status on;
      access_log off;
      allow 127.0.0.1;
      allow 192.168.1.14;
      deny all;
}

3、スクリプトを作成して上のkey値を取得する
vim /script/nginx_status.sh
#!/bin/bash
case $1 in
  active)
    curl -s http://127.0.0.1/nginx_status | awk '/Active/ {print $3}' ;;
  accepts)
    curl -s http://127.0.0.1/nginx_status | awk 'NR==3 {print $1}' ;;
  handled)
    curl -s http://127.0.0.1/nginx_status | awk 'NR==3 {print $2}' ;;
  requests)
    curl -s http://127.0.0.1/nginx_status | awk 'NR==3 {print $3}' ;;
  reading)
    curl -s http://127.0.0.1/nginx_status | awk '/Reading/ {print $2}' ;;
  writing)
    curl -s http://127.0.0.1/nginx_status | awk '/Writing/ {print $4}' ;;
  waiting)
    curl -s http://127.0.0.1/nginx_status | awk '/Waiting/ {print $6}' ;;
  *)
    echo "Usage: $0 { active | accepts | handled | requests | reading | writing | waiting }" ;;
esac
chmod a+x /script/nginx_status.sh

4、カスタムkeyプロファイルの追加
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx_status.conf
# Nginx_status
UserParameter=nginx.active,/script/nginx_status.sh active
UserParameter=nginx.accepts,/script/nginx_status.sh accepts
UserParameter=nginx.handled,/script/nginx_status.sh handled
UserParameter=nginx.requests,/script/nginx_status.sh requests
UserParameter=nginx.reading,/script/nginx_status.sh reading
UserParameter=nginx.writing,/script/nginx_status.sh writing
UserParameter=nginx.waiting,/script/nginx_status.sh waiting
5、  zabbix_agentd.conf
vim /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.1.14
ServerActive=192.168.1.14
Hostname=Zabbix server
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
EnableRemoteCommands=1
UnsafeUserParameters=1

6、Zabbixサービス側のテストでKeyがもらえるかどうか
/usr/local/zabbix/bin/zabbix_get -s 192.168.1.12 -k nginx.active

Nginxモニタ項目解釈
Active connections: 1
server accepts handled requests
 1 1 1
Reading: 0 Writing: 1 Waiting: 0
##Active connections:バックエンドに対して開始されたアクティブな接続数
##Server accepts handled requests:Nginxは合計1つの接続を処理し、1回の握手(失敗回数なし)を成功裏に作成し、合計1つのリクエストを処理しました
##Reading:Nginxクライアントに読み込まれたHeader情報数
##Writing:Nginxがクライアントに返すヘッダ情報数
##Waiting:keep-aliveをオンにした場合、この値はactive-(reading+writing)に等しく、Nginxが処理完了し、次のリクエストコマンドの常駐接続を待っていることを意味します.
##アクセス効率が高く、要求がすぐに処理される場合、Waiting数が多いのは正常です.reading+writing数が多い場合は、同時アクセスが大きく、処理中であることを示します.
原文URL:http://blog.chinaunix.net/uid-30272825-id-5115194.html