GitHub Enterprise Server のシステム ログについて
お使いの GitHub Enterprise Server インスタンス のアクティビティと例外をトレース、確認、トラブルシューティングするには、システム ログを確認できます。 インスタンスには、次の 2 種類のシステム ログが格納されます。
- Syslog または特定のサービスによって格納されたディスク上のプレーン テキスト ログ ファイル
- ジャーナリングによって格納されるバイナリ ログ ファイル
既定では、GitHub Enterprise Server は 24 時間ごとにシステムログを自動的にローテーションし、7 日間保持されます。 システム ログには、システム レベルのイベント、アプリケーション ログ、Git イベントについてのデータが含まれています。 ログ ファイルは頻繁に書き込まれ、サイズが大きくなる可能性があるため、お使いの GitHub Enterprise Server インスタンス とは別に、ホスト上のログ エントリを抽出して解析することをお勧めします。
GitHub Enterprise Server インスタンスへの管理 SSH アクセス権を持つユーザーは、システム ログにアクセスして読み取ることができます。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
システム ログと監査ログを外部システムに転送して、分析やリテンション期間を長くすることができます。 詳しくは、「ログの転送」と「Enterprise の監査ログのストリーミング」をご覧ください。
システム ログを確認するだけでなく、他の方法でインスタンスのアクティビティを監視することもできます。 たとえば、監査ログとプッシュ ログを確認したり、グローバル Webhook を構成したりできます。 詳しくは、「Enterprise でアクティビティを監視する」をご覧ください。
Note
次のログの一覧は、包括的なものではありません。
システム ログ ファイル
GitHub Enterprise Server は、いくつかのカテゴリのシステム ログをプレーン テキストでインスタンスのディスクに書き込みます。 インスタンスへの管理 SSH アクセス権を持つユーザーは、Linux コマンド ライン ツール (例: cat
、tail
、head
、less
および more
) を使用してこれらのファイルを解析できます。
- データベースのログ ファイル
- GitHub アプリケーションのログ ファイル
- HTTP サーバーのログ ファイル
- [Management Console] のログファイル
- インスタンス構成のログ ファイル
- 検索用ログ ファイル
- システム サービスのログ ファイル
データベースのログ ファイル
次のログ ファイルには、インスタンス上のデータベース サービスからのイベントを記録します。
Path | 説明 |
---|---|
/var/log/mysql/mysql.log | インスタンスの MySQL データベースに関連するイベントを記録します。 |
/var/log/mysql/mysql.err | インスタンスの MySQL データベースに関連するエラーを記録します。 |
/data/user/mssql/log/errorlog | インスタンスの MSSQL データベースに関連するエラーを記録します。 その他のイベントについては、この記事で後述する「データベースのジャーナル ログ」を参照してください。 |
GitHub アプリケーションのログ ファイル
次のログ ファイルには、インスタンス上の GitHub アプリケーションからのイベントを記録します。
Path | 説明 |
---|---|
/var/log/github/audit.log | インスタンス上の GitHub アプリケーションのアクティビティのユーザー、リポジトリ、およびシステム イベントを記録します。 github_audit キーワードを使用して、ログ内のエントリをフィルター処理できます。 |
/var/log/github/exceptions.log | GitHub アプリケーションで発生した例外を記録します。 |
/var/log/github/gitauth.log | HTTPS または SSH を使用して Git 認証要求を記録します。 babeld サービスは、すべての Git 認証リクエストとアクティビティを処理します。 |
/var/log/github/production.log | GitHub アプリケーションの内部イベントを記録します。 Web サイトへの要求の場合は、応答したコントローラー アクションが含まれます。 ジョブまたは要求の配信元に応じて、構造が異なるエントリを含む場合があります。 |
HTTP サーバーのログ ファイル
次のログ ファイルには、インスタンスの HTTP サーバーからのイベントを記録します。
Path | 説明 |
---|---|
/var/log/nginx/error.log* | Web 要求のエラーを記録します。 |
/var/log/nginx/gist.log | gists に関連する HTTP 要求を記録します。 詳しくは、「Gist の作成」をご覧ください。 |
/var/log/nginx/gist.error.log | Gists の HTTP 要求に関連するエラーを記録します。 |
/var/log/nginx/github.log | GitHub アプリケーションへの HTTP 要求を記録します。 |
/var/log/nginx/github.error.log | HTTP 要求に関連付けられているエラーを記録します。 |
/var/log/nginx/pages.log | GitHub Pages に関連付けられている HTTP 要求を記録します。 詳しくは、「GitHub Pages について」をご覧ください。 |
/var/log/nginx/pages.error.log | GitHub Pages の HTTP 要求に関連するエラーを記録します。 |
[Management Console] のログファイル
次のログ ファイルには、インスタンスの [Management Console] からのイベントが含まれています。 詳しくは、「管理コンソールについて」をご覧ください。
Path | 説明 |
---|---|
/var/log/enterprise-manage/audit.log | インスタンスの [Management Console] にアクティビティを記録します。 |
/var/log/enterprise-manage/unicorn.log | 管理者が Web UI または REST API を使用して [Management Console] で実行する HTTP と HTTPS の操作を記録します。 |
インスタンス構成のログ ファイル
次のログ ファイルには、インスタンスの構成に関連するイベントが含まれています。
Path | 説明 |
---|---|
/data/user/common/ghe-config.log | 最新の 構成実行に関連付けられたイベントをに記録します。 構成の実行が失敗すると、ログへの出力が停止します。 このログには、インスタンスのソフトウェアをアップグレードするプロセス中に実行された移行に関する情報も記録されます。 詳しくは、「コマンド ライン ユーティリティ」をご覧ください。 |
/data/user/config-apply/logs/YYYYMMDD/* | 以前の構成実行のログ ファイルを格納します。 インスタンスは日付を反映するディレクトリにファイルを格納し、各ファイル名には実行のノードと ID が反映されます。 |
検索用ログ ファイル
次のログ ファイルには、インスタンスの検索機能を提供するサービスからのイベントが含まれています。
Path | 説明 |
---|---|
/var/log/elasticsearch/github-enterprise.log | インスタンスが検索サービスを提供するために使用する Elasticsearch サービスに関連付けられているイベントを記録します。 |
システム サービスのログ ファイル
次のログには、インスタンス上のシステム サービスからのイベントが含まれています。
Path | 説明 |
---|---|
/var/log/coredumps.log | 予期せず終了するシステム プロセスに関する情報を記録します。 |
/var/log/boot.log | インスタンスのブート プロセスに関する情報を記録します。 |
/var/log/chrony/ | このディレクトリには、ネットワーク タイム プロトコル (NTP) 同期とインスタンスのシステム クロックに関連するログが含まれています。 詳しくは、「時間の同期を構成する」をご覧ください。 |
/var/log/haproxy.log | インスタンスに対するすべての Web 要求と API 要求を記録します。 HTTP 接続の場合、エントリには、クライアントが要求した URL と、要求の HTTP メソッドが含まれます。 |
/var/log/ssh-console-audit.log | 管理者が管理シェル (SSH) を使用して実行するコマンドを記録します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。 |
/var/log/mail-replies/metroplex.log | インスタンスが受信したメールに関する情報を記録します。 詳しくは、「通知のためのメール設定」をご覧ください。 |
システム ジャーナルのシステム ログ
いくつかの GitHub Enterprise Server サービス (babeld
サービスなど) はコンテナー化されます。 GitHub Enterprise Server は、これらのサービスのシステム ログをバイナリ形式でシステム ジャーナルに書き込みます。
インスタンスへの管理 SSH アクセス権を持つユーザーは、コマンドを使用してこれらのログを journalctl
解析できます。 詳細については、オンラインの Linux マニュアル ページの journalctl(1) を参照してください。
systemd ジャーナルのログを表示するには、次のコマンドを実行します。SERVICE-NAME を、次のログのリストにあるサービス名に置き換えます。 他のすべてのコンテナ化されたサービスのログを表示するには、 nomad job status
を実行し、ID
を SERVICE-NAME として使用します。
journalctl -t SERVICE-NAME
GitHub アプリケーションのジャーナル ログ
次のログには、インスタンス上の GitHub アプリケーションからのイベントを記録します。
サービス名 | 説明 |
---|---|
github-resqued | バックグラウンド ジョブに関連するイベントを記録します。 ジョブに組み込み認証または外部認証が含まれている場合、このログには要求に関する情報が含まれます。 インスタンスが LDAP 認証を使用し、LDAP 同期が有効になっている場合、LDAP 同期のイベントがこのログに表示されます。 詳しくは、「LDAPの利用」をご覧ください。 |
github-unicorn | ユーザーがインスタンスの Web UI または API を介して実行する HTTP 操作と HTTPS 操作を記録します。 操作に組み込み認証または外部認証が含まれている場合、このログには要求に関する情報が含まれます。 LDAP または SAML 認証でデバッグ ログが有効になっている場合、認証された要求のデバッグ レベルの情報がこのログに表示されます。 詳しくは、「LDAPの利用」または「SAML認証」をご覧ください。 |
Git のジャーナル ログ
次のログには、インスタンスでの Git アクティビティに関連するイベントが含まれています。
サービス名 | 説明 |
---|---|
babeld | リポジトリにアクセスするための認証を含め、インスタンス上のすべての Git アクティビティのイベントを記録します。 |
codeload | インスタンス上のリポジトリのコード アーカイブの生成、または取得に関連するアクティビティのイベントを記録します。 |
gpgverify | コミット署名の検証に関連するイベントを記録します。 詳しくは、「コミット署名の検証について」をご覧ください。 |
ストレージのジャーナル ログ
次のログには、インスタンスにデータを格納または取得するサービスからのイベントが含まれています。
サービス名 | 説明 |
---|---|
alambic | Git LFS オブジェクト、アバター 画像、Web UI のコメントからの添付ファイル、リリース アーカイブなど、ファイルの保存と取得に関連するイベントを記録します。 |
データベースのジャーナル ログ
次のログには、インスタンス上のデータベース サービスに関連付けられたイベントを記録します。
サービス名 | 説明 |
---|---|
mysql | インスタンスの MySQL データベースに関連するイベントを記録します。 |
mssql | インスタンスの MSSQL データベースに関連するイベントを記録します。 |
Webhook のジャーナル ログ
次のログ ファイルには、インスタンスのWebhookに関連するイベントが含まれています。
サービス名 | 説明 |
---|---|
hookshot-go | トリガーされた Webhook、配信、エラーなど、インスタンス上のすべての Webhook アクティビティのイベントを記録します。 |
サポート バンドルのシステム ログについて
サポート バンドルを生成すると、ファイルにシステム ログが含まれます。 詳しくは、「GitHub Support へのデータの提供」をご覧ください。