CentOSでのZabbix 2.2導入-7.Redisの監視

ここではRedisを監視してパフォーマンスや異常を検知したい場合の設定方法を記載します
なお、rdvnさんが作成され、GitHubに公開されているテンプレートを使用する方法で説明します

監視対象サーバ側の設定

cronジョブの設定

まずはステータス情報を定期的に取得するcronジョブをrootユーザーに設定します

# crontab -e

エディタが開いたら、以下の行を追加して保存します

* * * * * /usr/bin/redis-cli info > /tmp/redisstat

Zabbixエージェントの設定追加

次にZabbixエージェントに、Redis監視用のUserParameterを追加します

$ sudo vi zabbix_agentd.conf

UserParameterブロックに以下のハイライトされている行を追加します

### Option: UserParameter
#       User-defined parameter to monitor. There can be several user-def        ined parameters.
#       Format: UserParameter=<key>,<shell command>
#       See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=

UserParameter=redis.stat[*],cat /tmp/redisstat | grep "$1:" | cut -d":"         -f2

設定の反映

変更を有効にするために、zabbix-agentを再起動します

$ sudo service zabbix-agent restart

監視サーバ(Zabbixサーバ)側の設定

監視対象側の設定状況の確認

まずは、先ほどの監視対象側の設定が正しく行なわれているかを確認します
監視サーバ側から下記1行目のコマンドを実行して、Redisのバージョンが取得できればOKです
ZBX_NOTSUPPORTED など、他のものが表示される際には、設定を再確認します

$ zabbix_get -s (監視対象ホストのIP) -k redis.stat[redis_version]
2.4.10

テンプレートの取得

こちらのrdvnさんがGitHubに公開してくれているテンプレートから、redis用のテンプレートをローカルに取得してきます

rdvnさんのGitHubリポジトリ
https://github.com/rdvn/zabbix-templates

Redis用テンプレート
https://github.com/rdvn/zabbix-templates/blob/master/redis/redis_t.xml

テンプレートのインポート

Zabbixの管理画面から、[設定]-[テンプレート]と選択し、画面右上の[インポート]をクリックします
zabbix Redis監視 1
[ファイルを選択]ボタンをクリックし、先ほどローカルに保存したテンプレートのファイルを指定します
zabbix Redis監視 2
選択を確認し、[インポート]ボタンをクリックして実行します
zabbix Redis監視 3
成功すると、このようにその旨が表示されます
zabbix Redis監視 4
この段階では、テンプレート名が「redis_t」となっています
必要であれば、そこをクリックして名前を変更します
zabbix Redis監視 5
下図の赤丸部分を修正して保存すれば変更できます
zabbix Redis監視 6

ホストへのテンプレートのリンク

あとは、監視対象のホストに対して、今追加したテンプレートをリンクしてください
手順はこちらと同様です
CentOSでのZabbix 2.2導入-5.監視対象のWebフロントエンドへの登録

この状態でしばらく待てば、データが取得され始めますので、[監視データ]-[最新データ]の画面で取得したデータを確認できるようになります

トリガーについて

この段階では、トリガーが一切設定されていませんので、異常の検知はできていません
適宜閾値を設定して、トリガーの定義を追加する必要があります

CentOSでのZabbix 2.2導入-6.ログの監視

ここではログを監視して異常を検知したい場合の設定方法を記載します

Zabbix agentの実行権限について

監視対象のサーバー内で、該当のログのアクセス権がZabbix agentの実行ユーザーにもある場合は、この設定は不要です
例えば、標準設定でアクセス権が限定されている、Apacheの/var/log/httpdの中身などを対象とする場合は、Zabbix agentをroot権限で動作させるように設定します
その場合は、zabbix_agentの設定ファイルを以下のように変更します

$ sudo vi /etc/zabbix/zabbix_agentd.conf

開いたら、以下の場所にハイライトした部分を追記して保存します

### Option: AllowRoot
#       Allow the agent to run as 'root'. If disabled and the agent is started by 'root', the agent
#       will try to switch to user 'zabbix' instead. Has no effect if started under a regular user.
#       0 - do not allow
#       1 - allow
#
# Mandatory: no
# Default:
# AllowRoot=0
AllowRoot=1

Zabbix Agentを再起動します

$ sudo service zabbix-agent restart

ログの検索ルールの作成

まずはログの監視(検索)ルールを作成します
ログの中で検知したい文字列を正規表現を使ってルールにします

メニューの[管理]-[一般設定]で出る画面右上のドロップダウンリストから、[正規表現]を選択します
zabbix 正規表現作成 1
[正規表現]画面の右上に[正規表現の作成]ボタンがあるので、それをクリック
zabbix 正規表現作成 2
まずは、後で式にも利用する正規表現の名前をつけます
そして、条件式の中の[追加]リンクをクリックして、条件式の作成を開始します
zabbix 正規表現作成 3
条件式に、検知したいキーワードを正規表現を使って記入します
条件式の形式は、[結果が真]にして、[追加]をクリックして条件を追加します
zabbix 正規表現作成 4
条件式が追加されたことを確認します
複数の条件追加して組み合わせることも可能です
全ての条件を記述したら、[テスト]タブをクリックします
zabbix 正規表現作成 5
検知したい、またはしたくないログのサンプルなどをテスト文字列に入力し、[条件式のテスト]ボタンをクリックして、最終結果が意図した結果になっていることを確認します
問題があれば[条件式]タブに戻って条件を修正し、問題なければ[保存]をクリックして正規表現を保存します
zabbix 正規表現作成 6
正規表現の管理画面に追加されます
zabbix 正規表現作成 7

ログの監視アイテムの作成

続けて、実際にログを監視するためのアイテムを作成します
[設定]-[テンプレート]から、監視アイテムを追加したいテンプレートの行の[アイテム]をクリックします
zabbix ログ監視アイテム作成 1
画面右上に出てくる、[アイテムの作成]ボタンをクリックします
zabbix ログ監視アイテム作成 2
まずは適切な名前をつけます
タイプは「Zabbixエージェント(アクティブ)」を選択します
キーは、「log[ログファイル名,@先ほど作成した正規表現名]」を入力します
データ型は「ログ」を選択します
全て設定したら、有効になっていることを確認して保存します
zabbix ログ監視アイテム作成 3
無事登録できれば、以下のようにリストに追加されます
zabbix ログ監視アイテム作成 4

ログの監視トリガーの作成

続けて、その画面の[トリガー]をクリックします
zabbix ログ監視トリガー作成 1
画面右上に出てくる、[トリガーの作成]をクリックします
zabbix ログ監視トリガー作成 2
トリガーのデータを入力していきます
名前には適切な名前を設定します
条件式は、以下の書式で入力します
({テンプレート名:log[先ほど作成したキーの内容].iregexp(@正規表現名)})#0&({テンプレート名:log[先ほど作成したキーの内容].nodata(300)})=0
障害イベントを継続して生成にチェックしておきます
深刻度は適切なものを選択しておきます
有効にチェックが入っていることを確認して保存します
zabbix ログ監視トリガー作成 3
エラー無く登録できれば、このようにリストに追加され、監視が始まります
zabbix ログ監視トリガー作成 4