ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2020-11-12. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

クラスタノードのモニタリング

GitHub Enterprise Server クラスタは、2 つ以上のノードに分散された冗長サービスで構成されています。 もしも個々のサービスまたは1つのノード全体に障害があっても、それがクラスタのユーザに即座に見えることはありません。 ただし、パフォーマンスと冗長性が影響を受けるため、GitHub Enterprise Server クラスタの健全性を監視することが重要です。

ここには以下の内容があります:

クラスタのステータスの手動でのチェック

GitHub Enterprise Server には、クラスタの健全性をモニタリングするためのコマンドラインユーティリティが組み込まれています。 管理シェルからghe-cluster-statusコマンドを実行すると、接続性やサービスステータスの検証を含む一連のヘルスチェックが各ノード上で実行されます。 結果出力には、すべてのテスト結果にtext okもしくはerrorが含まれます。 たとえば失敗したテストだけを表示するには以下のようにしてください。

admin@ghe-data-node-0:~$ ghe-cluster-status | grep error
> mysql-replication ghe-data-node-0: error Stopped
> mysql cluster: error

メモ: すべてのテストにパスした場合、このコマンドは何も出力しません。 これはクラスタが健全であることを意味します。

Nagiosでのクラスタステータスのモニタリング

GitHub Enterprise Server をモニタリングするよう、Nagios を設定できます。 各クラスタノードの基本的な接続性のモニタリングに加えて、ghe-cluster-status -nコマンドを使うようNagiosを設定してクラスタステータスをチェックできます。 これは、Nagiosが理解できるフォーマットの出力を返します。

必要な環境

  • Nagiosを動作させるLinuxのホスト。
  • GitHub Enterprise Serverクラスターへのネットワークアクセス。

Nagiosホストの設定

  1. 空のパスフレーズで SSH キーを生成してください。 Nagios はこれを使用して GitHub Enterprise Server クラスタへの認証を行います。

    nagiosuser@nagios:~$ ssh-keygen -t ed25519
     > Generating public/private ed25519 key pair.
     > Enter file in which to save the key (/home/nagiosuser/.ssh/id_ed25519):
     > Enter passphrase (empty for no passphrase): leave blank by pressing enter
     > Enter same passphrase again: press enter again
     > Your identification has been saved in /home/nagiosuser/.ssh/id_ed25519.
     > Your public key has been saved in /home/nagiosuser/.ssh/id_ed25519.pub.

    セキュリティの警告: パスフレーズを持たない SSH キーは、ホストへの完全なアクセスを承認されていた場合、セキュリティリスクになることがあります。 このキーの承認は、単一の読み取りのみのコマンドに限定してください。

    Note: If you're using a distribution of Linux that doesn't support the Ed25519 algorithm, use the command:

    nagiosuser@nagios:~$ ssh-keygen -t rsa -b 4096
  2. Copy the private key (id_ed25519) to the nagios home folder and set the appropriate ownership.

    nagiosuser@nagios:~$ sudo cp .ssh/id_ed25519 /var/lib/nagios/.ssh/
    nagiosuser@nagios:~$ sudo chown nagios:nagios /var/lib/nagios/.ssh/id_ed25519
  3. ghe-cluster-status -n コマンドのみを実行するために公開鍵を認証するには、/data/user/common/authorized_keys ファイル中で command= プレフィックスを使ってください。 任意のノードの管理シェルから、このファイルを変更してステップ1で生成した公開鍵を追加してください。 For example: command="/usr/local/bin/ghe-cluster-status -n" ssh-ed25519 AAAA....

  4. /data/user/common/authorized_keys ファイルを変更したノード上で ghe-cluster-config-apply を実行し、設定を検証してクラスタ内の各ノードにコピーしてください。

    admin@ghe-data-node-0:~$ ghe-cluster-config-apply
    > Validating configuration
    > ...
    > Finished cluster configuration
  5. Nagios プラグインがこのコマンドの実行をうまく行えることをテストするには、このコマンドを Nagios のホストからインタラクティブに実行してください。

    nagiosuser@nagios:~$ /usr/lib/nagios/plugins/check_by_ssh -l admin -p 122 -H hostname -C "ghe-cluster-status -n" -t 30
    > OK - No errors detected
  6. Nagios の設定中にコマンド定義を作成してください。

    定義の例
    define command {
          command_name    check_ssh_ghe_cluster
          command_line    $USER1$/check_by_ssh -H $HOSTADDRESS$ -C "ghe-cluster-status -n" -l admin -p 122 -t 30
    }
    
  7. このコマンドを GitHub Enterprise Server クラスタ内のノードのサービス定義に追加します。

    定義の例
    define host{
          use                     generic-host
          host_name               ghe-data-node-0
          alias                   ghe-data-node-0
          address                 10.11.17.180
          }
    
    define service{
            use                             generic-service
            host_name                       ghe-data-node-0
            service_description             GitHub Cluster Status
            check_command                   check_ssh_ghe_cluster
            }
    

Nagios に定義を追加すると、設定に従ってサービスチェックが実行されます。 Nagios の Web インターフェースで新しく設定されたサービスを確認することができます。

Nagios の例