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

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

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

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

Did this doc help you?

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.

GitHub Actions の支払いを管理する GitHubは、macOSランナーのホストにMacStadiumを使用しています。

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

A self-hosted runner can be located in either your repository, organization, or enterprise account settings on GitHub. セルフホストランナーを管理するには、セルフホストランナーが追加された場所に応じて以下の権限が必要になります。

  • User repository: You must be the repository owner.

  • Organization: You must be an organization owner.

  • Organization repository: You must be an organization owner, or have admin access to the repository.

  • Enterprise account: You must be an enterprise owner.

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

  2. サイドバーでActions(アクション)をクリックしてください。

    アクションの設定

  3. "Self-hosted runners(セルフホストランナー)"の下で、ランナーの名前、ラベル、ステータスを含む、登録されたランナーのリストを見ることができます。

    ランナーのリスト

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

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

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

セルフホストランナーアプリケーションのステータスと、そのアクティビティをモニタリングできます。 ログファイルは_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

Did this doc help you?

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.