SRA OSSとZabbixの開発元であるZabbix社とのアライアンスによる、公式サポートサービス。
最新のZabbix公式安定バージョンを完全にサポート、使い方から障害対応まで、ソースコードレベルでの高品質な対応。
大規模な利用でも安定稼働する「Zabbix DBとしてPostgreSQLを利用」の場合はPostgreSQLまで含めてトータルサポート。
本記事では、Zabbixのインストール、基本的な設定、監視対象と基本的な監視項目の設定方法をご紹介します。
前回は、Zabbix のインストール、基本的な設定、監視対象と基本的な監視項目の設定方法までを行いました。
今回は、その他の監視機能の説明や、指定した条件による障害検知とアラートメールの送信、グラフ表示機能などを紹介します。
Zabbix では多種多様な用途、目的に対応するために、さまざまな監視方法に対応しています。
以下は Zabbix が対応している各機能の概要です。
監視タイプ | 概要 | 監視項目の例 |
---|---|---|
Zabbix エージェント | Zabbixエージェントによる監視 (サーバからエージェントに対してデータを要求) |
CPU使用率、メモリ使用率、ディスク使用率、ファイル監視、Web 監視 |
Zabbix エージェント (アクティブ) |
Zabbix エージェントによる監視 (エージェントからサーバに定期的にデータを送信) |
ログ監視 |
SNMP エージェント | SNMP エージェントによる監視 | CPU 使用率、メモリ使用率、ディスク使用率、ディスクI/O、ネットワークI/O |
SNMP トラップ | SNMP トラップによる監視 | |
IPMI チェック | IPMI によるハードウェア監視 | |
シンプルチェック | エージェントを使用しない監視 | ICMP ping、TCP 疎通、TCP 応答時間 |
内部チェック | Zabbix サーバ自身の監視 | 稼働時間、アイテム数、プロセスの CPU 使用率 |
SSH チェック | SSH 経由による監視 | |
Telnet チェック | Telnet 経由による監視 | |
外部チェック | スクリプトやコマンドによる監視 | |
トラッパーアイテム | 外部からデータを受け取る | zabbix_sender コマンドによるデータ送信 |
JMX 監視 | JMX による Java アプリケーション監視 |
ここでは、最も使用頻度が高いと思われる Zabbix エージェントの監視項目のうち、代表的なものを紹介します。
その他のキーや監視タイプについては、Zabbix マニュアルの以下の項目を参照してください。
監視項目 | キー | 戻り値 | 設定例 |
---|---|---|---|
CPU 使用率 |
system.cpu.util[<cpu>,<type>,<mode>] system.cpu.load[<cpu>,<mode>] |
使用率 (%) 浮動小数 |
system.cpu.util[,user,avg5] system.cpu.load[,avg5] |
メモリ使用率 | vm.memory.size[<mode>] | バイト数 / % | vm.memory.size[free] |
ディスク使用率 | vfs.fs.size[fs,<mode>] | バイト数 / % | vfs.fs.size[/,pfree] |
ネットワーク使用率 |
net.if.in[if,<mode>] net.if.out[if,<mode>] |
整数 |
net.if.in[eth0,bytes] net.if.out[eth0,bytes] |
プロセス起動数 | proc.num[<name>,<user>,<state>,<cmdline>] | プロセス数 | proc.num[httpd,apache] |
ポート |
net.tcp.port[<ip>,port] net.tcp.service[service,<ip>,<port>] |
0(down) / 1(up) |
net.tcp.port[,80] net.tcp.service[http] |
ファイルのチェックサム | vfs.file.cksum[file] | チェックサム | vfs.file.cksum[/etc/passwd] |
監視項目 | キー | 設定例 |
---|---|---|
ログ監視 |
log[file,<regexp>,<encoding>,<maxlines>,<mode>] logrt[file_format,<regexp>,<encoding>,<maxlines>,<mode>] |
log[/var/log/messages,,,100] logrt[“/var/log/messages-[0-9]{8}$”,,,100] |
ログの監視を行うには、Zabbix エージェント(アクティブ)を使用する必要があります。
通常の Zabbix エージェントは、サーバから定期的にデータを要求しに行きますが、Zabbix エージェント(アクティブ)は、エージェント自身が能動的に監視を行い、データをサーバに送信します。
log[file,<regexp>,<encoding>,<maxlines>,<mode>]
は、1 つのログファイルのみを監視します。
logrt[file_format,<regexp>,<encoding>,<maxlines>,<mode>]
は、ローテートされた複数のログファイルを監視します。
ファイル名の候補は正規表現で指定します。
例えば、「/var/log/messages-[0-9]{8}$」であれば「/var/log/messages-20130414」などのファイルが対象になります。
また、ログ監視では Zabbix エージェントを動作させるユーザ(zabbix)がログファイルにアクセスする権限が必要になりますので注意してください。
障害を検知した場合にメールを送信するには、事前にメディアタイプとメディアを設定しておく必要があります。
まずメディアタイプでメールの送信に使用するメールサーバを設定します。
一覧から「Email」をクリックします。
次に、各ユーザのメール送信先を設定します。ここでは Admin、user について設定します。
[追加]([Add]) をクリックすると「新規メディア」(「New media」)ウィンドウが表示されますので、以下の項目を入力し、
をクリックします。タイプ | |
---|---|
送信先 | (障害を通知するメールアドレス) |
有効な時間帯 | 1-7,00:00-24:00 |
指定した深刻度のときに使用 | 軽度の障害、重度の障害、致命的な障害にチェックを入れる |
ステータス | 有効 |
以上で、Zabbix が障害を検知した場合に指定したアドレスにメールが送信されるようになりました。
SRA OSSとZabbixの開発元であるZabbix社とのアライアンスによる、公式サポートサービス。
最新のZabbix公式安定バージョンを完全にサポート、使い方から障害対応まで、ソースコードレベルでの高品質な対応。
大規模な利用でも安定稼働する「Zabbix DBとしてPostgreSQLを利用」の場合はPostgreSQLまで含めてトータルサポート。
Zabbix では、障害と復旧の検知の設定をトリガーと呼びます。
前回は CPU 使用率を監視するアイテムを作成しました。
今回は、それに対して、5 分間の CPU 使用率の平均値が一定の閾値を上回った場合は障害と判定し、アラートメールを送信するように設定してみましょう。
まずトリガーを作成します。
以下の項目を入力し、
をクリックします。名前 | CPU usage is too high |
---|---|
条件式 | {Test template:system.cpu.util[,,].avg(300)}>90 |
説明 | 最近 5 分間の CPU 使用率の平均が 90 % を超えています |
深刻度 | 軽度の障害 |
条件式は直接入力することもできますし、右の
ボタンをクリックして「アクションの実行条件」ウィンドウを開き、各項目を以下のように入力して ボタンをクリックすることでも入力できます。アイテム | Test template:CPU usage |
---|---|
機能 | 期間 T の値の平均値 > N |
最新の (T) | 300 秒 |
N | 90 |
トリガーの作成に成功すると、以下のようにトリガー一覧に表示されます
(トリガー作成直後の場合は、まだ値を取得できていないためエラーが表示されることがあります)。
Zabbixでは、障害発生時や復旧時の動作の設定をアクションと呼びます。
先程設定したトリガーで障害を検知した場合に、指定したユーザにメールを送信するアクションを作成します。
「アクション」(「Action」)タブで以下の項目を入力します。
名前 | Report problems to user |
---|---|
デフォルトのアクション実行ステップの期間 | 3600 |
デフォルトの件名・デフォルトのメッセージ | (初期状態で入力済みのものを使用) |
リカバリメッセージ | チェックしない |
有効 | チェックする |
「アクションの実行条件」(「Conditions」) タブで以下の項目を入力します(初期状態で入力済みです)。
計算のタイプ | AND / OR |
---|---|
アクションの実行条件 |
(A) メンテナンスの状態 期間外 “メンテナンス” (B) トリガーの値 = “障害” |
「アクションの実行内容」(「Operations」)タブで 「 新規 」 をクリックし、以下の内容を入力して をクリックします。
ステップ | 開始: 1 終了: 1 ステップの期間: 0 |
---|---|
実行内容のタイプ | メッセージの送信 |
ユーザーに送信 | Admin, user |
次のメディアのみ使用 | |
デフォルトのメッセージ | yes |
すべての入力が完了したら、
をクリックします。アクション一覧に作成したアクションが表示されます。
SRA OSSとZabbixの開発元であるZabbix社とのアライアンスによる、公式サポートサービス。
最新のZabbix公式安定バージョンを完全にサポート、使い方から障害対応まで、ソースコードレベルでの高品質な対応。
大規模な利用でも安定稼働する「Zabbix DBとしてPostgreSQLを利用」の場合はPostgreSQLまで含めてトータルサポート。
それでは、実際に疑似的に障害を発生させ、それが検知されるかを確認してみましょう。
Zabbix エージェントが動作している監視対象のホストにログインし、以下のコマンドを実行して 5 分以上待ち、Ctrl-C で停止します。
※ CPU 使用率が 100 % になるため、実際にサービスが稼働しているホストでは実行しないでください。
$ yes > /dev/null (Ctrl-Cで停止)
障害が検知されると、管理画面のダッシュボードの「システムステータス」、「ホストステータス」、「最新 20 件の障害」にそれが表示されます。
また、ユーザのメディアで設定したメールアドレスに、以下のような障害通知メールが届きます。
From: <zabbix@zabbix-server.localdomain> To: <user@example.com> Subject: PROBLEM: CPU usage is too high Date: Fri, 12 Apr 2013 17:33:53 +0900 Trigger: CPU usage is too high Trigger status: PROBLEM Trigger severity: Average Trigger URL: Item values: 1. CPU usage (zabbix-agent:system.cpu.util[,,]): 99.1168 2. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN* 3. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*
監視データ (Monitoring) →イベント (Events) を選択すると、過去に発生した障害もしくは復旧の履歴を参照することができます。
Zabbix では、特に設定を行わなくても各アイテムの履歴をグラフで表示することができますが、複数の監視項目のデータを 1 つのグラフにまとめて表示することもできます。
これにより、一目でシステムの状態を把握することができます。
グラフは以下の手順で作成します。
なお、事前に、名前「CPU load」、タイプ「Zabbixエージェント」、キー「system.cpu.load[,]」、データ型「数値(浮動小数)」、更新間隔(秒)「30」というアイテムを作成し、テンプレートに追加しておきます。
右上の
をクリックします。以下の項目を入力します。
名前 | CPU load/usage |
---|---|
高さ | 200 |
グラフのタイプ | ノーマル |
凡例を表示 | チェックする |
ワーキングタイムの表示 | チェックする |
トリガーを表示 | チェックする |
Y軸の最小値 | 計算 |
Y軸の最大値 | 計算 |
アイテムの「追加 (Add)」をクリックし、対象のアイテムにチェックを入れて[選択]([Select]) をクリックします。
追加された項目について以下のように設定します。
アイテム: 1: テストテンプレート: CPU load | 平均 | 線 | 右 | C80000 |
---|---|---|---|---|
アイテム: 2: テストテンプレート: CPU usage | 平均 | 線 | 左 | 00C800 |
をクリックします。
作成したグラフを表示するには、監視データ (Monitoring) →グラフ (Graphs) を選択し、右上の「グループ」(「Group」)、「ホスト」(「Host」)、「グラフ」(「Graph」)から対象のグラフを選択してください。
右軸(赤)がロードアベレージ値(1 分間)、左軸(緑)が CPU 使用率になります。
また、上部のスライダーを調整して、表示開始時刻と期間を指定することができます。
Zabbix のスクリーンは、複数のグラフやイベント履歴、システムの情報といったさまざまな情報を一つの画面に自由に並べて表示する機能です。
実際にスクリーンを作成してみましょう。
以下の項目を入力し、
をクリックします。名前 | My screen |
---|---|
列 | 1 |
行 | 3 |
変更したい箇所の [変更]([Change]) をクリックします。
また、[+][-] をクリックすると、行数、列数を変更することができます。
「リソース」(「Resource」)で参照したい情報を選択します。
情報の種類に応じて、表示する行数や幅、高さなどを調整します。
ここでは、以下の 3 つのリソースを指定します。
をクリックします。
作成したスクリーンを表示するには、[監視データ]([Monitoring]) → [スクリーン]([Screens])を選択し、右上の「スクリーン」(「Screens」)プルダウンメニューから「My screen」を選択してください。
今回は、Zabbix のさまざまな監視機能の紹介や、障害の検知と通知の設定方法、グラフとスクリーンの作成方法について解説しました。
次回は、Zabbix の管理画面上で行う各種操作を自動化できる、Zabbix API について紹介します。
03-5979-2701 |