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

セルフホストランナーのモニタリングとトラブルシューティング

セルフホストランナーをモニターして、その活動を見て、一般的な問題を診断できます。

ノート: GitHub Actionsは、GitHub Enterprise Server 2.22で限定ベータとして利用可能でした。 ベータは終了しました。 GitHub Actionsは、GitHub Enterprise Server 3.0以降で一般に利用可能になりました。 詳しい情報については、GitHub Enterprise Server 3.0 のリリースノートを参照してください。


ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。

GitHubを使ったセルフホストランナーのステータスのチェック

セルフホストランナーは、リポジトリ、Organization、 GitHub Enterprise Serverのインスタンス上のEnterprise設定で見つかります。 セルフホストランナーを管理するには、セルフホストランナーが追加された場所に応じて以下の権限が必要になります。

  • ユーザリポジトリ: リポジトリのオーナーでなければなりません。

  • Organization: Organizationのオーナーでなければなりません。

  • Organizationのリポジトリ: Organizationのオーナーであるか、リポジトリへの管理アクセス権を持っていなければなりません。

  • Enterprise: GitHub Enterpriseサイト管理者でなければなりません。

  1. Organizationもしくはリポジトリ内で、メインページにアクセスして Settings(設定)をクリックしてください。

  2. 左のサイドバーで、Actionsをクリックしてください。

  3. [Self-hosted runners] で、ランナーの名前、ラベル、ステータスなど、登録済みのランナーのリストを表示できます。

    ランナーのリスト

    ステータスは以下のいずれかです。

    • Idle: ランナーはGitHub Enterprise Serverに接続されており、ジョブを実行する準備ができています。
    • Active: ランナーは現在ジョブを実行しています。
    • Offline: ランナーはGitHub Enterprise Serverに接続されていません。 これは、マシンがオフラインになっているか、マシン上でセルフホストランナーアプリケーションが動作していないか、セルフホストランナーアプリケーションがGitHub Enterprise Serverと通信できていないかです。

セルフホストランナーアプリケーションのログファイルのレビュー

セルフホストランナーアプリケーションのステータスと、そのアクティビティをモニタリングできます。 ログファイルは_diagディレクトリに保存されており、アプリケーションが起動されるたびに新しいログが生成されます。 ファイル名はRunner_で始まり、その後にアプリケーションが起動された時刻のUTCタイムスタンプが続きます。

ワークフロージョブの実行に関する詳細なログについては、Worker_ファイルについて述べた次のセクションを参照してください。

ジョブのログファイルのレビュー

セルフホストランナーアプリケーションは、処理するジョブごとに詳細なログファイルを生成します。 これらのファイルは_diagディレクトリに保存され、ファイル名はWorker_で始まります。

journalctlを使ってのセルフホストランナーアプリケーションのチェック

サービスを利用してアプリケーションを実行しているLinuxベースのセルフホストランナーでは、リアルタイムのアクティビティをモニターするのにjournalctlが使えます。 デフォルトのsystemdベースのサービスは、以下の命名規則を使います。 actions.runner.<org>-<repo>.<runnerName>.service この名前は80文字を超える場合には切り捨てられるので、サービス名を見つける方法としては.serviceファイルをチェックするのが良いでしょう。 例:

$ cat ~/actions-runner/.service
actions.runner.octo-org-octo-repo.runner01.service

journalctlを使って、セルフホストランナーのリアルタイムアクティビティをモニターできます。

$ sudo journalctl -u actions.runner.octo-org-octo-repo.runner01.service -f

この出力例では、runner01が起動し、testActionという名前をジョブを受信し、結果のステータスを表示していることがわかります。

Feb 11 14:57:07 runner01 runsvc.sh[962]: Starting Runner listener with startup type: service
Feb 11 14:57:07 runner01 runsvc.sh[962]: Started listener process
Feb 11 14:57:07 runner01 runsvc.sh[962]: Started running service
Feb 11 14:57:16 runner01 runsvc.sh[962]: √ Connected to GitHub
Feb 11 14:57:17 runner01 runsvc.sh[962]: 2020-02-11 14:57:17Z: Listening for Jobs
Feb 11 16:06:54 runner01 runsvc.sh[962]: 2020-02-11 16:06:54Z: Running job: testAction
Feb 11 16:07:10 runner01 runsvc.sh[962]: 2020-02-11 16:07:10Z: Job testAction completed with result: Succeeded

systemdの設定を見るには、サービスファイルを以下で見つけることができます。 /etc/systemd/system/actions.runner.<org>-<repo>.<runnerName>.service セルフホストランナーアプリケーションサービスをカスタマイズしたい場合、このファイルを直接修正しないでください。 「セルフホストランナーアプリケーションのサービスとしての構成」に述べられている指示に従ってください。

launchdを使ってのセルフホストランナーアプリケーションのチェック

サービスとしてアプリケーションを実行しているmacOSベースのセルフホストランナーでは、リアルタイムのアクティビティをモニターするのにlaunchctlが使えます。 デフォルトのlaunchdベースのサービスは、以下の命名規則を使います。 actions.runner.<org>-<repo>.<runnerName> この名前は80文字を超える場合には切り捨てられるので、サービス名を見つける方法としてはランナーのディレクトリ内にある.serviceファイルをチェックするのが良いでしょう。

% cat ~/actions-runner/.service
/Users/exampleUsername/Library/LaunchAgents/actions.runner.octo-org-octo-repo.runner01.plist

svc.shスクリプトはlaunchctlを使ってアプリケーションが動作しているかをチェックします。 例:

$ ./svc.sh status
status actions.runner.example.runner01:
/Users/exampleUsername/Library/LaunchAgents/actions.runner.example.runner01.plist
Started:
379 0 actions.runner.example.runner01

結果の出力には、プロセスIDとアプリケーションのlaunchdサービスの名前が含まれます。

launchdの設定を見るには、サービスファイルを以下で見つけることができます。 /Users/exampleUsername/Library/LaunchAgents/actions.runner.<repoName>.<runnerName>.service セルフホストランナーアプリケーションサービスをカスタマイズしたい場合、このファイルを直接修正しないでください。 「セルフホストランナーアプリケーションのサービスとしての構成」に述べられている指示に従ってください。

PowerShellを使ってのセルフホストランナーアプリケーションのチェック

サービスとしてアプリケーションを実行しているWindowsベースのセルフホストランナーでは、リアルタイムのアクティビティをモニターするのにPowerShellが使えます。 サービスはGitHub Actions Runner (<org>-<repo>.<runnerName>)という命名規則を使います。 ランナーのディレクトリ内にある.serviceファイルを調べても、サービスの名前を見つけることができます。

PS C:\actions-runner> Get-Content .service
actions.runner.octo-org-octo-repo.runner01.service

Windowsのサービスアプリケーション(services.msc)でも、ランナーのステータスを見ることができます。 PowerShellを使ってサービスが動作しているかをチェックできます。

PS C:\actions-runner> Get-Service "actions.runner.octo-org-octo-repo.runner01.service" | Select-Object Name, Status
Name                                                  Status
----                                                  ------
actions.runner.octo-org-octo-repo.runner01.service    Running

PowerShellを使ってセルフホストランナーの最近のアクティビティをチェックすることができます。 この出力例では、アプリケーションが起動し、testActionという名前をジョブを受信し、結果のステータスを表示していることがわかります。

PS C:\actions-runner> Get-EventLog -LogName Application -Source ActionsRunnerService

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
     136 Mar 17 13:45  Information ActionsRunnerService          100 2020-03-17 13:45:48Z: Job Greeting completed with result: Succeeded
     135 Mar 17 13:45  Information ActionsRunnerService          100 2020-03-17 13:45:34Z: Running job: testAction
     134 Mar 17 13:41  Information ActionsRunnerService          100 2020-03-17 13:41:54Z: Listening for Jobs
     133 Mar 17 13:41  Information ActionsRunnerService          100 û Connected to GitHub
     132 Mar 17 13:41  Information ActionsRunnerService            0 Service started successfully.
     131 Mar 17 13:41  Information ActionsRunnerService          100 Starting Actions Runner listener
     130 Mar 17 13:41  Information ActionsRunnerService          100 Starting Actions Runner Service
     129 Mar 17 13:41  Information ActionsRunnerService          100 create event log trace source for actions-runner service

自動アップデートプロセスのモニタリング

セルフホストランナーは、特定のバージョンのしきい値を下回るとジョブを処理できなくなるため、定期的に自動更新プロセスを確認することをお勧めします。 セルフホストランナーアプリケーションは自動的に更新されますが、このプロセスにはオペレーティングシステムやその他のソフトウェアの更新は含まれません。これらの更新を個別に管理する必要があります。

更新のアクティビティは、Runner_ログファイルで見ることができます。 例:

[Feb 12 12:37:07 INFO SelfUpdater] An update is available.

加えて、さらなる情報が_diagディレクトリにあるSelfUpdateログファイルにあります。

セルフホストランナー内のコンテナのトラブルシューティング

Dockerがインストールされていることを確認

ジョブがコンテナを必要とするなら、セルフホストランナーはLinuxベースで、Dockerがインストールされていなければなりません。 セルフホストランナーにDockerがインストールされており、サービスが動作中であることを確認してください。

サービスのステータスの確認には、systemctlが使えます。

$ sudo systemctl is-active docker.service
active

Dockerがインストールされていないなら、Dockerに依存するアクションは以下のエラーで失敗します。

[2020-02-13 16:56:10Z INFO DockerCommandManager] Which: 'docker'
[2020-02-13 16:56:10Z INFO DockerCommandManager] Not found.
[2020-02-13 16:56:10Z ERR  StepsRunner] Caught exception from step: System.IO.FileNotFoundException: File not found: 'docker'

Dockerの権限の確認

ジョブが次のエラーで失敗するなら、

dial unix /var/run/docker.sock: connect: permission denied

セルフホストランナーのサービスアカウントがDockerサービスを使う権限を持っているかを確認してください。 systemdの中のセルフホストランナーの設定を調べれば。このアカウントは特定できます。 例:

$ sudo systemctl show -p User actions.runner.octo-org-octo-repo.runner01.service
User=runner-user

問題がまだ解決していませんか?

GitHubコミュニティで質問するサポートへの連絡