Zabbixで監視設定を行う前に、監視対象のサーバのどのような項目(CPU負荷やメモリ使用率など)を監視するかを検討し、設定する監視項目をまとめておきます。とはいえ、Zabbixで監視できる項目は多岐にわたりますので迷ってしまいますね。
そこでまずは、監視対象のLAMPサーバではWEBサイトが運営されていると仮定して、運営者としてこのWEBサイトに発生したら真っ先に困ることを思い浮かべてみます。
発生したら真っ先に困ること
- WEBサイトにアクセスできない
- WEBサイトの表示が遅くなり閲覧しづらくなる
他にもあるかと思いますが、WEBサイトにちゃんとアクセスができて、内容がサックと表示できていればまずは良しとします。
続いて、この「困ること」が発生する原因を考えてみます。
WEBサイトにアクセスできない原因
通信事業者のネットワーク障害なども原因として考えられますが、今回は自分で監視できる範囲のサーバ側に限って考えてみます。
LAMPサーバのミドルウェア構成
Apache・・・・・WEBサイトを表示
MySQL・・・・・WEBサイトの内容(ブログの記事など)を保存
Memcached・・・PHPのセッション情報を保存
LAMPサーバのミドルウェア構成を考慮すると、以下のような原因が考えられます。
- サーバOS自体が起動していない
- Apache(httpd)が起動していない
- MySQL が起動していない
- Memcached が起動していない
WEBサイトの表示が遅くなる原因
WEBサイトの表示が遅くなる原因としてはサーバへの過負荷が考えられます。過負荷にはさまざまな原因がありますので、まずは負荷状況を示す指標「ロードアベレージ」を確認します。次に過負荷の原因になっているボトルネックを特定し、さらにその原因を探っていきます。
なにかえらそうに書いていますが(^^;) 上記は書籍「Web開発者のための大規模サービス技術入門」P34のコラムの受け売りです。他にもWEBサーバを運用するための基本的な知識が分かりやすく解説されていますので、オススメの書籍です。
WEBサイトの表示が遅くなる原因特定の流れ
上図の原因特定の流れをふまえると以下のような原因が考えられます。
- メモリが不足している
- ディスクのI/O性能が不足している
- CPUの性能が不足している
さらに上記が発生する原因として以下のような原因も考えられます。
- WEBサイトへのアクセスが多い
- ネットワークトラフィックが多い
- データベースへの接続数が多い
- ディスクの使用率が高い
また、ミドルウェアが原因でWEBサイトの表示が遅くなる場合も考えてみます。
- データベースのデータ読み出しが遅い(スロークエリの発生)
- Memcachedでキャッシュアウトが発生している(割当メモリの不足)
監視項目のまとめ
これまでに上げた原因や、WEBサイトの表示速度などの重要な指標を把握できるように Zabbixの監視項目に落とし込みます。
原因/指標 | 監視項目 |
---|---|
●WEBサイトにアクセスできない | |
サーバOS自体が起動していない | Ping監視 |
Apache(httpd)が起動していない | 80,433番ポート監視 |
MySQL が起動していない | 3306番ポート監視 |
Memcached が起動していない | 11211番ポート監視 |
●WEBサイトの表示が遅い | |
CPUの性能が不足している | CPU使用率 |
ディスクのI/O性能が不足している | CPUのディスクI/O待ち、ディスクI/O |
メモリが不足している | メモリ使用率、スワップメモリ使用率 |
WEBサイトへのアクセスが多い | Apache(httpd)のプロセス数 |
ネットワークトラフィックが多い | ネットワークトラフィック |
データベースへの接続数が多い | MySQLのスレッド数 |
データベースのデータ読み出しが遅い | MySQLのスロークエリ数 |
Memcachedでキャッシュアウトが発生している | Memcachedのキャッシュアウト回数とメモリの使用状況 |
ディスクの使用率が高い | ディスクの使用率 |
●重要な指標 | |
WEBサイトの表示速度 | WEBサイトのレスポンスタイム |
サーバの負荷状況 | ロードアベレージ |
監視テンプレートの設計
最後にテンプレート名を決め、どのテンプレートにどの監視項目を設定するかを割り振っておきます。一つのテンプレートにまとめて監視項目を設定してもかまわないのですが、テンプレートを分けておくとLAMPサーバ以外の監視にも流用することができます。
テンプレート名 | 監視項目 |
---|---|
A_Template_Ping | Ping監視 |
A_Template_OS_Linux | ロードアベレージ CPU使用率 CPUのディスクI/O待ち ディスクI/O メモリ使用率 スワップメモリ使用率 ネットワークトラフィック |
A_Template_Discovery_Disk | ディスクの使用率 |
A_Template_App_Apache | 80,433番ポート監視 Apache(httpd)のプロセス数 |
A_Template_App_MySQL | 3306番ポート監視 MySQLのスレッド数 スロークエリ数 |
A_Template_App_Memcached | 11211番ポート監視 キャッシュアウト回数 メモリの使用状況 |
A_Template_WEB_Check | WEBサイトのレスポンスタイム |
A_Template_CentOS_Version | CentOSのバージョン取得 |
上記のテンプレートを次のページから作成していきます。
コメント
[…] Zabbix 2-1. LAMPサーバの監視項目の検討とテンプレート設計 […]