最後に、ユーザーパラメータを利用したときに起こりがちな問題とその解決方法を紹介します。
考えられる理由は、以下のとおりです。
- ユーザーパラメータで定義したキーの名称が誤っている
zabbix_getで指定したキーが、ユーザーパラメータで定義したキーと同一でない可能性があります。/etc/zabbix/zabbix-agentd.confを再度確認し、設定で定義したキーとzabbix_getで指定したキーが同一であるか確認してください。
- ユーザーパラメータに登録したコマンドで、|(パイプ)の前後にスペースが入っている
ユーザーパラメータを定義したコマンドの中に|(パイプ)が含まれる場合、|(パイプ)の前後にスペースが入らないように注意してください。|(パイプ)の前後にスペースがあると正しく動作しません。
- ユーザーパラメータで実行するコマンドのパーミッションがない
先にも述べたとおり、ユーザーパラメータで指定したコマンドはZABBIXユーザーで実行されます。そのため、ZABBIXユーザーで実行できないコマンド、読み取ることができないファイルなどを利用するユーザーパラメータは失敗します。利用するコマンド、ファイルのパーミッションを確認してください。
zabbixユーザーで実行できないコマンド、root権限が必要なコマンドをどうしても使いたい場合は、以下のように設定することで、コマンドの実行権限を変更できます。例として、zabbixユーザーからroot権限でコマンドを実行できるよう設定する場合は、
# visudo zabbix <ホスト名>=(root) NOPASSWD: <root権限で実行可能なコマンド>
とします。そして、設定したコマンドは以下のように利用します。
$ sudo <上記で設定したコマンド>
- コマンドへのパスが通っていない
ユーザーパラメータでsudoを利用している場合、コマンドへのパスが通っていない場合があります。sudoはコマンドの実行権限を変更しますが、その場合、実行ユーザーはsudo利用ユーザーとなります。そのため、zabbixユーザーでsudoを利用してコマンドを実行しようとしても、/sbin、/usr/sbinなどにパスが通っていないため、コマンドが見つからない場合があります。そのような場合、コマンドはフルパスで書くようにしてください。
ユーザーパラメータで設定したコマンドが誤っている可能性があります。
コマンドの出力結果が複数行あったり、純粋な数値やスタータス以外の情報も含まれている場合、cut、grep、head、tail、awk、sedなどのテキスト操作のコマンドを使ってコマンドの実行結果を整形させる必要があります。その際に、必要な情報まで削除してしまっている可能性があります。シェルからじかにコマンドを実行し、コマンドが正しく指定できているか確認してください。
アイテムの設定でデータ型が誤っている可能性があります。特に、数字データを収集しようとしている場合、ユーザーパラメータで指定しているコマンドによっては、状況によって出力形式が異なる場合があります。
例えば、「整数だけでなく、場合によっては小数の値が出力される場合がある」「正常に値が取得できる場合は数字が出力されるが、異常時はERRORなどの文字列が出力される」「行頭にスペースが含まれている」などの原因が考えられます。状況に合わせて、ユーザーパラメータのコマンドを再検討してください。
ZABIXはいまも、活発に開発が行われています。2009年末にはZABBIX 1.8がリリースされました。新バージョンで加わった新機能のいくつかを挙げてみると、
上記以外にも、Webインターフェイスの改善やさまざまな機能が施されています。より詳細な情報は、ZABBIX公式サイト(http://www.zabbix.com/documentation/)を参照してください。
本連載では、ZABBIX 1.6をベースに具体的な監視方法を紹介してきました。ZABBIXにはこの連載で紹介したもの以外にも、分散監視、ODBCによるDB監視、IPMIによるハードウェア監視など、さまざまな監視機能が備わっています。
また今回紹介したとおり、nagiosプラグインや監視スクリプトなど、それまで使っていた資産をそのまま利用することもできます。その意味からも、ZABBIX導入の敷居は低いといえます。
監視設定が膨大になり過ぎて管理し切れていないシステムや、まだ統合的な監視を行っていないようなシステムがある場合、ぜひZABBIXを検討してみてはいかがでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.