Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

JIRAやConfluenceをZabbixで監視して運用してみよう

JIRAやConfluenceをもっと使いこなそう! エキスパートが教える、外部ツール連携術 第6回

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 昨今、開発現場での情報共有は必須ともいえるほどに重要視されています。情報共有ツールとしてJIRAやConfluenceといったアトラシアン製品は多くの開発現場で使用されていますが、チームの仕組みに存在するからなんとなく使っている……そのような方も多いのではないでしょうか。しかしせっかくのツール、多種多様な機能をもっと活用したいと思いませんか? 本連載では使い慣れた環境と組み合わせてツールをさらに使いこなす方法を、アトラシアン製品の国内販売代理店であるリックソフトがお伝えします。前回は「JIRA Software」をビジュアル分析ツールである「Tableau(タブロー)」と連携させ、データを可視化する方法を紹介しました。今回はアトラシアン製品の運用状況を、OSSである「Zabbix」を使用して監視する方法を解説します。

目次

はじめに

 システム全体を効率よく管理するには、サーバのハードウェアリソースやネットワーク、OS、アプリケーションなどの状態を常に適切に把握できる監視システムが必要とされています。

 監視ツールによって果たせる機能は異なりますが、監視することのメリットとして、障害の検知や原因調査を迅速に行えること、適切なマシンリソースの割り当てを検討するための材料を集めること、特定の条件を満たした際の対応を自動化できることなどが挙げられます。

 コラボレーションツールとして社内の情報の基盤となるアトラシアン製品においては、システムの停止が会社の業務に与える影響は大きく、いち早く不具合に気づき監視ツールは有償・無償数多く存在しますが、当社では「Zabbix」を利用してアプリケーションの監視を行っています。Zabbixは、ラトビアのZabbix社が開発している、サーバ・ネットワーク・アプリケーション統合監視のためのオープンソース・ソフトウェアです。フリーでありながら高機能で、かつ導入が容易であることが特徴です。また、Linuxの他にWindowsやMac OS X、商用UNIXなど、さまざまなプラットフォームで動作します。

 Zabbixの特徴的な機能のひとつとしてZabbix Agentがあります。多くの監視ツールでは、監視対象となるサーバ上でSNMP(Simple Network Management Protocol)デーモンが動作していることや、監視を行うに際してMIB(Management Information Base)を理解する必要がありますが、ZabbixではZabbix Agentがその代替として機能します。また、必要な監視項目はテンプレートとして提供されているため、MIBで監視に必要な値を特定するといった作業を行うことなく、短時間で監視を行うことができます。(もちろん、SNMPによる監視も可能です)

 本記事ではZabbixを利用した、アトラシアン製品の運用における監視について紹介します。

必要な環境

 今回は、監視サーバにはZabbix Server 2.2、監視対象となるアプリケーションサーバにはZabbix Agent 2.2をインストールします。

 アプリケーションサーバには、アトラシアン製品の中でもよく利用されるアプリケーションである「JIRA Software」(課題管理ソフトウェア)と「Confluence」(Wikiソフトウェア)をインストールし、各アプリケーションのアプリケーションコンテナであるApache TomcatのJMX(Java Management Extensions)による監視にも対応します。

 監視サーバ、アプリケーションサーバともに、AWS(Amazon Web Services)上での運用を想定しています。ただし、AWS以外でも運用方法に大きな差はありません。

 なお、すでに基本的なセットアップは終了しているものとし、各サーバの構築・セットアップの手順については記載しません。

Zabbixサーバ(監視サーバ)

  • CentOS 7.2
  • Zabbix Server 2.2

アプリケーションサーバ(監視対象)

  • CentOS 6.9
  • JIRA Software 7.4.2
  • Confluence 6.3.1
  • Zabbix Agent 2.2

アトラシアン製品の監視のポイント

 アトラシアン製品の監視のポイントは次の通りです。

基本的なサーバリソース監視

  • CPU
  • メモリ
  • ストレージ
  • ネットワーク

 など。

JMX(Java Management Extensions)監視

  • ヒープ・メモリ
  • コードキャッシュ

 など。

 アトラシアン製品は、JavaおよびApache Tomcat上で動作するので、特に、ヒープ・メモリやコードキャッシュ、スレッド数など一般的なJavaの監視項目を抑えることが重要です。

 また、ファイルのアップロードが増えるような利用が想定される場合には、CPUやメモリの負荷だけでなくディスク使用率への注意も必要になります。

監視設定

 ここまで説明したポイントを踏まえて設定を実施します。基本的にはテンプレートをもとに設定していきます。

 テンプレートとは、その名の通り設定の雛形となるもので、関連する設定(主にアイテム、グラフ、トリガー)を1つにグループ化したものです。テンプレートを利用することで、目的に応じた設定をホストに対して一括で割り当てることができます。

 今回は、次のテンプレートを監視対象ホストに適用しました。アトラシアン製品の監視におけるポイントとなるものについて紹介しますが、細かなZabbixの設定に関しては説明を省きます。

 なお、ここでは「テンプレート名(標準/当社にて作成)」の形で表記し、説明していきます。標準のテンプレートは「Zabbix_Templates/Official_Templates/2.2」からダウンロードして利用します。

OS

Template OS Linux(標準)

 Linuxサーバ監視のためのテンプレートです。CPUやメモリといったOSの基本的なデータを取得し監視することができます。

Template App Zabbix Agent(標準)

 Zabbix Agent監視のためのテンプレートです。Zabbix Agentの状態を監視することができます。なお、以下の画像では、Template OS Linux(標準)にTemplate App Zabbix Agent(標準)をリンクしています。

Template OS Linux(アプリケーション欄)
Template OS Linux(アプリケーション欄)
Template OS Linux(グラフ欄)
Template OS Linux(グラフ欄)

DB

Template App DB xxx(当社にて作成)

 PostgreSQL monitoring template for Zabbix (pg_monz)をDBMS(PostgreSQL)に合わせてカスタマイズのうえ、DBMSに応じたテンプレートを用意します。主な監視対象は、コネクション数です。

 なお、テンプレート名の「xxx」は、pg_monz+PostgreSQLのバージョンとしています。

Java(Xは各アプリケーションに内包されているJavaのバージョン)

Template JMX Generic Java X(当社にて作成)

 Javaの状態を監視(JMX監視)するためのものです。標準で用意されている「Template JMX Generic」をコピーし、利用するJavaのバージョンと運用環境に合わせてカスタマイズします。

 なお、テンプレート名の「X」は、Javaのバージョンとしています。

Template JMX Generic Java 8(アプリケーション欄)
Template JMX Generic Java 8(アプリケーション欄)
Template JMX Generic Java 8(アイテム欄で有効化したもの)
Template JMX Generic Java 8(アイテム欄で有効化したもの)
Template JMX Generic Java 8(トリガー欄で有効化したもの)
Template JMX Generic Java 8(トリガー欄で有効化したもの)

Tomcat(Xは各アプリケーションに内包されているTomcatのバージョン)

Template JMX Tomcat X(当社にて作成)

 Tomcatの状態を監視するためのものです。標準で用意されている「Template JMX Tomcat」をコピーし、利用するTomcatのバージョンと運用環境に合わせてカスタマイズします。

 ここでは[マクロ]に該当のアプリケーションのポートを指定、[トリガー]の条件式のTomcatのバージョンを監視対象のものに変更し、Thread数が最大Thread数を超過した際にアラートを上げるトリガーを設定しました。アプリケーションやアプリケーションのバージョンによっては、[アイテム欄]の各項目の[キー]の内容の変更が必要になる場合があります。

Template JMX Tomcat 7(テンプレート欄のマクロ欄)
Template JMX Tomcat 7(テンプレート欄のマクロ欄)
Template JMX Tomcat 7(トリガー欄)
Template JMX Tomcat 7(トリガー欄)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:JIRAやConfluenceをもっと使いこなそう! エキスパートが教える、外部ツール連携術
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5