🦺

Check! GitHub Enterprise Server の監視(モニタリング)について知る

4 min read

Prologue

こんにちは、 @dz_ こと、大平かづみです。

前記事 Check! GitHub の監査ログを知る では、監査ログについて簡単にまとめました。

この記事では、 GitHub Enterprise Server における監視、モニタリングについて、下記ドキュメントをもとに、要点をご紹介していきます。

※ Enterprise Server 3.1 を参考にしています。その他のバージョンに関しては、ドキュメント、実動作をご確認ください。

GitHub Enterprise Server のサーバーインフラのモニタリング

ここでは、GitHub Enteprise Server のセットアップで GitHub が提供するイメージを利用した場合の環境を前提にまとめます。

モニタ ダッシュボード

GitHub Enterprise Server には、GUI画面上で各システムリソースの状況を確認できるよう、ダッシュボードが用意されています。

「Management console」の上部メニュー、「Monitor」から開くことができます。

GitHub Enterprise Server (GHES): モニタ ダッシュボード
GitHub Enterprise Server (GHES): モニタ ダッシュボード

詳細は下記ドキュメントをご参照ください。

モニタリングのために提供されているプロトコル

GitHub Enterprise Server では、システムリソースの監視のために下記のプロトコルがサポートされています。(後述)

ドキュメントでは、GitHub Enterprise Server と同じネットワーク内に、利用するプロトコルに対応した監視用サーバーを設ける構成が挙げられています。監視データを外部のモニタリングサービスで利用するには、この監視用のサーバーから適宜接続する形となりそうです。

また、環境によっては、 Amazon CloudWatchvSphere の監視およびパフォーマンス の参照もあげられています。

なお、GitHub Enterprise Server 自体にはアラート通知の機能は含まれていないので、利用者が対応する必要があります。GitHub では、下記の項目についてアラートの推奨閾値を掲載しているので、これを参考にモニタリングサービスを構成し監視・運用をご検討ください。

  • ストレージ
  • CPUとロードアベレージ
  • メモリの利用状況

詳細は下記をご参考ください。

SNMP による監視

ネットワーク経由でデバイスを監視するためのプロトコルである SNMPを利用して、GitHub Enterprise Server が稼働するインスタンスのディスクや、CPU、メモリなどの監視データを扱うことができます。

デフォルトでは無効化されており、利用する場合は Management console の Settings の Monitoring から有効化、認証の設定を行います。なお、UDPポート 161 が開かれていて接続できる必要があります。

GitHub Enterprise Server (GHES): SNMP の有効化と設定
GitHub Enterprise Server (GHES): SNMP の有効化と設定

利用できるプロトコルバージョンは SNMP v2c または v3 で、 v2c はハードウェアレベルの情報のみ利用できます。ハードウェアレベルとソフトウェアレベルの両方の情報を扱いたい場合は v3 を選択し、かつプライバシーに関わる情報まで扱う場合は、SNMP v3 のセキュリティレベル authPriv で構成する必要があります。

監視用サーバからは、GitHub Enterprise Server のホスト名(またはIPアドレス)と、GitHub Enterprise Server で設定したセキュリティレベルに応じた各種パスワードをもって接続することができます。

詳細については、下記ドキュメントおよび SNMP のプロトコルに関する情報をご参照ください。

collectd による監視

GitHub Enterprise Server の環境では、collectd でも監視データを収集しており、外部の collectd に転送することができます。こちらも、インスタンスのディスクや、CPU、メモリなどの監視データを扱うことができます。

GitHub Enterprise Server がサポートしている colletd のバージョンは 5.x 以上なので、転送先のサーバーもこのバージョンに対応している必要があります。

collectd のデータ転送を有効にするには、 Management console の Settings の Monitorning から操作できます。

GitHub Enterprise Server (GHES): collectd のデータ転送の有効化と設定
GitHub Enterprise Server (GHES): collectd のデータ転送の有効化と設定

また、GitHub Enterprise Server のコマンドライン ユーティリティのひとつ ghe-export-graphs を利用して、 collectd が扱うデータをエクスポートすることができます。

$ ghe-export-graphs --help
Usage: ghe-export-graphs [-h]

Export data written to RRD databases by collectd as a gzip'd tarball of XML files.

OPTIONS:
  -h | --help      Show this message.

EXAMPLE:

 Export the graph data to a file:
   $ ghe-export-graphs > dump-file.tar.gz

詳細については、下記ドキュメントおよび collectd のプロトコルに関する情報をご参照ください。

Epilogue

日本語でログ周りを整理していると混乱しがちなこの二つ。

監査 = Audit
監視 = Monitor

自分なりに整理でき、よき学びになりました🤓