監視項目を確認しよう
テンプレートを監視対象に適用し、必要に応じたアイテム・トリガーの設定をした後は、監視データを確認します。
ここからは、実際に当社でアプリケーションの運用を行う際に確認している監視項目とグラフについて解説します。
OS
CPUの状態
負荷のかかる機能の使用や、アプリケーション・アドオンの不具合等により、CPU使用率が高くなる場合があります。
また、CPU使用率に加え、ロードアベレージでCPUが処理しきれていない処理が想定以上に発生していないかを確認します。
CPUの状態を確認しながら割り当てているCPUのスペックが適切かを見極めます。
CPU使用率
CPU使用率が高くなり始めた時刻のログを確認することで、原因を特定できる場合があります。
また、負荷の内容(I/O待ちや仮想環境による制限)によりグラフの山を構成する色が異なるため、原因の特定に役立つ場合があります。
以下のグラフでは青い部分が多く、12:25頃からアプリケーションがCPUを多く使う処理が実行されている様子が分かります。
ロードアベレージ
CPU使用率とロードの相関関係が分かります。
下のグラフは、上のCPU使用率のグラフと同時刻のものです。CPU使用率は高いものの、ロードアベレージはそれほど高くないため、処理待ちとなっている状況ではないようです。
メモリの状態
メモリやスワップメモリの割り当てが不足していないことを確認します。
例えば、「Bitbucket」(アトラシアン製のGitリモートリポジトリサーバ)の場合、巨大なリポジトリに対するgit cloneなどの実行により、OSのメモリが大量に消費されることがあります。
以下のグラフでは、11:55頃から利用可能なメモリが減少し、スワップメモリを使用し始めた様子が見て取れます。
ネットワークトラフィック
転送量が大幅に増加するようになった際は、トラフィック増がいつ発生しているか、不正な通信が発生していないことを確認します。
以下のグラフでは青い部分(Out going)が多く、ダウンロードによる転送量が多い様子が見て取れます。
ディスク使用率
ディスクの割り当てが不足していないことを確認します。ディスク使用率を確認することで、ディスク増設の計画を立てやすくなります。
例えば、以下の場合3カ月で20GB増量しているため、3カ月後にはディスク増設が必要になると予測できます。
DB
DBのコネクション数
以下のグラフでは一時的に接続数の上限値(300)に達しているため、上限値の見直しを検討することとなります。
Java
ヒープ・メモリ
以下のグラフでは、ヒープメモリの使用率が上昇し続けている様子が見て取れます。メモリを大量に使用する処理の実行や、メモリリークの可能性が疑われます。
Code Cache
Code Cacheの量の監視です。以下のグラフでは3/3 12:00頃にCode Cacheが上限値に達しています。
Code Cacheが上限値に達すると、コンパイル済みのコードが再利用されず、パフォーマンスの大幅な低下を招きます。
HTTP Conector
JavaへのHTTPリクエスト数を確認することができます。
以下のグラフでは一時的に接続数の上限値(400)に達しているため、上限値の見直しを検討することとなります。
Web監視
設定したURLに対してHTTPでアクセスできない場合にアラートが発生します。これにより、何らかの異常によってアプリケーションへアクセスできないことに気づくことができます。
なお、Web監視はトリガーで設定して利用します。
以下のグラフでは、9/15 22:18~22:38の間、リクエストに対するレスポンスが返ってきていません。そのため、何らかの異常によってアプリケーションへアクセスできない状態となっていることが分かります。
おわりに
以上をご覧いただいてお分かりの通り、適用されている全ての項目を監視しているわけではなく、運用上必要な項目に限定して監視しています。Zabbixのテンプレートには多くの項目がありますが、このようにポイントを抑えて必要な項目に限定して監視を行うことで、運用負荷の軽減につながります。
Zabbixなどの最近の統合監視ツールは、監視項目の検討やしきい値のチューニングとそれに伴う設定、ツールの使い方・値やグラフの読み方等の理解に一手間かかります。しかし、一度導入して運用を開始してしまえばその後の障害時や運用に役立つことは間違いありません。また、Zabbixを導入することで値が可視化されるため、例えばトラブルが発生した際、アプリケーションのバグなのか、大量のアップロードが原因なのか、単純にリソースの割り当てが不十分なのかなど、その原因が値やグラフを読むことで推測しやすくなり、トラブル発生時の原因調査に大いに役立ちます。
なお、ここではZabbixをご紹介しましたが、Zabbix以外でも同様の監視を行うことは可能です。例えば、監視サーバの運用を外部に任せたい(自前で監視環境を持ちたくない)、監視サーバを新たに設置することができないといった場合は、SaaS型の監視サービスを利用するのも良いでしょう。SaaS型のサービスの例として、New RelicやDataDog、Mackerelといったサービスが挙げられます。
今回は、アトラシアン製品の監視ということで、当社の運用で実際に活用しているポイント・監視項目を紹介させていただきました。
快適な監視生活を目指しましょう。
参考
- エージェントレス監視(Zabbixオフィシャル日本語サイト)
- Zabbixオフィシャル日本語サイト
- 監視テンプレート|日本Zabbixユーザー会
- Live Monitoring Using the JMX Interface(Confluence Support)
- PostgreSQL monitoring template for Zabbix (pg_monz)
リックソフトはアトラシアン製品アジアパシフィック売り上げ第1位(2015~2016年)
リックソフト株式会社は、日本でトップレベルのAtlassian Platinum Solution Partnerです。アトラシアン製品の専任技術者が30人以上在籍しており、手厚いサポートを提供しています。また、豊富なライセンス購入特典もご用意しております。