お世話になります。
zabbixにおいて、カスタムのアイテムを作成することは可能でしょうか? (例えば、10分間でWebサーバにアクセスした回数を表示)
よろしくお願い致します。
Webサーバがアクセスされた回数であれば、スクリプトやプログラ ムの実行などで値を取得できれば可能です。 具体的には、そのスクリプトやプログラムを利用して、
・UserParameterの機能 ・外部チェックの機能 ・SSHやTelnetチェックの機能
などのうちのいずれかを利用することになるでしょう。
以下の例は、UserParameterを利用した場合です。 例えば、WebサーバにApacheを利用されているのであれば、status モジュールを有効にして、apachectlコマンドでApacheの状態を取 得できるようにします。
参考: 最終回 Apacheパフォーマンス・チューニングの実践 http://www.atmarkit.co.jp/flinux/rensai/apache16/apache16b.html
設定ができれば、 <code> # apachectl status </code> でApacheの状態が表示されますので、表示された「Total accesses」 の値を取得すればよいはずです。
例えば、 <code> # apachectl status | grep accesses | awk '{print $3;}' </code> と実行すれば数値のみ取得できると思います。 # Apacheのバージョンが違うと出力が違うかもしれませんのでご注 # 意下さい。
ここまでできれば、あとはZabbixエージェントのUserParameterと して登録してZabbixサーバから取得できるようにします。 ここで、CentOSの標準のapachectlそのままでは、Zabbixエージェ ントから呼び出せないので、apachectlのファイルをコピーして、 apachectl内の <code> LYNX="/usr/bin/links -dump" </code> を以下のように書き換えた別のファイルを作成しておきます。 <code> LYNX="/usr/bin/links -dump -no-home" </code> ここでは、「/usr/sbin/apachectl2」という名前で作成したと仮定 します。
UserParameterの設定は、ZABBIX-JPのRPMを利用されている場合は、
・/etc/zabbix/zabbix_agentd.conf に直接記述する ・/etc/zabbix/zabbix_agentd.d/ ディレクトリ以下にファイル を作成してその中に記述する
のどちらでも構いません。 記述する内容は以下の通りです。 <code> UserParameter=apache.accesses,/usr/sbin/apachectl2 status|grep accesses |awk '{print $3;}' </code> 記述を追加・変更した後は、Zabbixエージェントを再起動してくだ さい。
そして、この作成した設定を利用して以下のようなアイテムを作成 します。
タイプ : Zabbixエージェント キー : apache.accesses データ型: 数値(整数) データの形式: 10進数 更新間隔(秒): 600 保存時の計算: 差分
これで、10分ごとにデータの収集が行われ、前回との差分を取りま すので、10分間にアクセスされた回数が取得できることとなります。
ファイルのパスやファイル名は、適宜、ご自身の環境に合わせて変 更して下さい。
アカウント名 nj_nn
Zabbix関連
TNK - 投稿数: 4769
Webサーバがアクセスされた回数であれば、スクリプトやプログラ
ムの実行などで値を取得できれば可能です。
具体的には、そのスクリプトやプログラムを利用して、
・UserParameterの機能
・外部チェックの機能
・SSHやTelnetチェックの機能
などのうちのいずれかを利用することになるでしょう。
以下の例は、UserParameterを利用した場合です。
例えば、WebサーバにApacheを利用されているのであれば、status
モジュールを有効にして、apachectlコマンドでApacheの状態を取
得できるようにします。
参考:
最終回 Apacheパフォーマンス・チューニングの実践
http://www.atmarkit.co.jp/flinux/rensai/apache16/apache16b.html
設定ができれば、
<code>
# apachectl status
</code>
でApacheの状態が表示されますので、表示された「Total accesses」
の値を取得すればよいはずです。
例えば、
<code>
# apachectl status | grep accesses | awk '{print $3;}'
</code>
と実行すれば数値のみ取得できると思います。
# Apacheのバージョンが違うと出力が違うかもしれませんのでご注
# 意下さい。
ここまでできれば、あとはZabbixエージェントのUserParameterと
して登録してZabbixサーバから取得できるようにします。
ここで、CentOSの標準のapachectlそのままでは、Zabbixエージェ
ントから呼び出せないので、apachectlのファイルをコピーして、
apachectl内の
<code>
LYNX="/usr/bin/links -dump"
</code>
を以下のように書き換えた別のファイルを作成しておきます。
<code>
LYNX="/usr/bin/links -dump -no-home"
</code>
ここでは、「/usr/sbin/apachectl2」という名前で作成したと仮定
します。
UserParameterの設定は、ZABBIX-JPのRPMを利用されている場合は、
・/etc/zabbix/zabbix_agentd.conf に直接記述する
・/etc/zabbix/zabbix_agentd.d/ ディレクトリ以下にファイル
を作成してその中に記述する
のどちらでも構いません。
記述する内容は以下の通りです。
<code>
UserParameter=apache.accesses,/usr/sbin/apachectl2 status|grep accesses |awk '{print $3;}'
</code>
記述を追加・変更した後は、Zabbixエージェントを再起動してくだ
さい。
そして、この作成した設定を利用して以下のようなアイテムを作成
します。
タイプ : Zabbixエージェント
キー : apache.accesses
データ型: 数値(整数)
データの形式: 10進数
更新間隔(秒): 600
保存時の計算: 差分
これで、10分ごとにデータの収集が行われ、前回との差分を取りま
すので、10分間にアクセスされた回数が取得できることとなります。
ファイルのパスやファイル名は、適宜、ご自身の環境に合わせて変
更して下さい。