zabbixテーマ:第9章カスタムkey(ケース:メモリのモニタリング、nginx状態のモニタリング)


第九章カスタムキー
Linuxに興味のある方はQQ群に参加:476794643オンラインコミュニケーション
本文の防犯チェーン:http://zhang789.blog.51cto.com
なぜKEYをカスタマイズするのか
監視側にzabbixの事前定義されていない検出を実行させたい場合があります.zabbixのユーザーカスタムパラメータ機能はこの方法を提供します.クライアントプロファイルzabbix_Angentd.conf内にUserParameterを配置する. :
UserParameter=key,command
ユーザーカスタムパラメータにはkeyとコマンドが含まれています.keyはシステム全体で一意でなければなりません.構成が完了したら、クライアントを再起動します. 次にitemを構成し、keyの位置にカスタムkeyを記入すればいいです.
UserParameter=ping,echo 1
pingというkeyを呼び出すと、戻り値1が受け取る. :
UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive
1を返すとMySQLが実行中で、0を返すとMySQLが保留中であるkey     Key 唯一.[*]は、複数のパラメータを渡すことができることを示します.  Command 実行するスクリプトは、keyの[]のパラメータが1つずつ9に対応し、合計9つのパラメータが必要です.$0はスクリプトコマンドを表します.
1.              $2    ,        $$2,  awk ’{ print $$2 }’,          ,             ,  zabbix      ,       。         ,  zabbix      。
2. zabbix , :\ ' ”  * ? [ ] { } ~ $ ! & ; ( ) < > | # @
3. zabbix 2.0 ,zabbix 。

UserParameter=ping[*],echo $1
ping[0] - 0
ping[aaa] - 'aaa'
ケース:簡単なkey実装
このパラメータでは、メモリがどれだけ空いているかを調べることができます.zabbixが監視する場合、zabbixサーバにこのkeyがない場合は、カスタマイズします.
[root@localhost ~]# free | awk '/^Mem:/{print $4}'
88412
1、クライアントはzabbix-agentd をインストールし、zabbix_agentd.confを修正しなければならない
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=Mem.free,free | awk '/^Mem:/{print $4}'
2、再起動
[root@localhost ~]# service zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
3、zabbix の上にzabbix_getテストでデータを取得できるかどうか
[root@localhost ~]# zabbix_get -s 10.1.252.241 -k "Mem.free"
87844
ケース:高度なkeyモニタメモリの合計サイズと現在の使用
/procはカーネルの反射領域であり、/proc/meminfoに表示されるメモリ情報であることはよく知られています.
[root@localhost ~]# cat /proc/meminfo 
MemTotal:
       1001332 kB
MemFree:          121864 kB
MemAvailable:     325308 kB
Buffers:               0 kB
Cached:           274108 kB
........
メモリの詳細が表示されます.keyを定義してzabbixサービス側にホストのメモリ情報を監視する方法
1、正規表現コマンドを実行すると、情報をフィルタリングできますが、各パラメータは正規表現で行います.これは私たちのような高度な搬送サーバの有能なものではありません.上記の簡単な例から、[*]然後の$1$2のように呼び出すことができます.
[root@localhost ~]# cat /proc/meminfo | awk "/^MemTotal:/{print $2}"
MemTotal:        1004136 kB
2、我々はこれらのパラメータを監視し、一つのkeyで実現する
MemTotal:        1004136 kB
MemFree:          87800 kB
Buffers:         108264 kB
Cached:          590832 kB
3、修正zabbix_agentd.conf  $1 [*] , $$2, $ shell [*]
UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk '/^$1:/{print $$2}
4、私たちはサーバーでzabbixを使っています.getテストは、key定義の値を取得できるかどうかを確認します()
[root@localhost ~]# zabbix_get -s 10.1.252.241 -k "memory.usage[MemTotal]"
1004136
[root@localhost ~]# zabbix_get -s 10.1.252.241 -k "memory.usage[MemFree]"
85464
[root@localhost ~]# zabbix_get -s 10.1.252.241 -k "memory.usage[Buffers]"
108516
[root@localhost ~]# zabbix_get -s 10.1.252.241 -k "memory.usage[Cached]"
590900
5、zabbixサーバーの上に対応するパラメータの監視項目を追加して、それから1つの図の中に集中して、大したことではないでしょう、監視項目と図を設定することはできなくて、前の文章を参考にすることができます
ケース:nginxのステータスを高度なkeyで監視
1、nginx serverの主なプロファイルはすべてstatusモジュールコード端を以下のように構成する.
location /ngst{  
   stub_status on;  
   access_log off;  
   allow 127.0.0.1;  
   deny all;  
}
2、nginx-statusの取値スクリプト
[root@localhost ~]# vim /home/zabbix/nginx_status.sh 
#!/bin/bash
#
host='127.0.0.1'
port='80'
status='/status'

active() {
       curl -s http://${host}:${port}${status} | awk '/^Active/{print $3}'
}

accepts() {
       curl -s http://${host}:${port}${status} | awk 'NR==3{print $1}'
}

handled() {
       curl -s http://${host}:${port}${status} | awk 'NR==3{print $2}'
}

requests() {
       curl -s http://${host}:${port}${status} | awk 'NR==3{print $3}'
}

reading() {
       curl -s http://${host}:${port}${status} | awk 'NR==4{print $2}'
}

writing() {
       curl -s http://${host}:${port}${status} | awk 'NR==4{print $4}'
}

waiting() {
       curl -s http://${host}:${port}${status} | awk 'NR==4{print $6}'
}

$1
3、実行権限を加える
[root@localhost zabbix]# chmod +x nginx_status.sh
4、修正zabbix_agentd.conf
UserParameter=nginx.status[*],/home/zabbix/nginx_status.sh $1
[root@localhost zabbix]# service zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
5、zabbixサービス端zabbix_getテストカスタムkey
[root@localhost ~]# zabbix_get -s 10.1.252.241 -k "nginx.status[requests]"
503
6、カスタマイズが成功し、webに監視項目を追加する
7、追加して、監視項目を一枚の図にする