はじめに
この記事では、Datadogを使ってGitLabを監視(モニタリング)する方法について書いていきます。
DatadogではGitLabとのインテグレーションが充実しているため、簡単にさまざまなモニタリングを始められます。特に現在Datadogを使っている人は、いつものツールに違和感無くGitLab情報が入ってくるのでとても便利ではないでしょうか。
モニタリングできるもの
大きく分けて以下の2種類のモニタリングが可能です。
- CI/CDパイプラインのモニタリング
- GitLab Self-managedインスタンスのモニタリング
前者は、GitLabのCI/CDパイプラインの実行状況を見るもので、SaaS(gitlab.com)とオンプレ版(Self-managed)のどちらでも有効です。
後者は、社内のデータセンターやクラウドに自分でGitLabをインストールして運用する場合に、その状況をモニタリングするものです。GitLabは、Linuxにパッケージでインストールしたり、コンテナでDockerやKubernetesで動かしたり、非常に柔軟な構成が特長です。DevSecOpsの核となるツールなので、日頃からモニタリングして安定運用したいところです。
CI/CDパイプラインのモニタリング
DatadogのCI Visibility機能により、とても見やすくパイプラインの実行状況を追っていくことができます。具体的な画面などは以下の公式ブログ記事を参照してください。
各パイプラインの実行状況が視覚的に確認できます。プロパティ情報も取得されています。
CI/CDの実行状況の全体的な統計情報も一目瞭然です。
エラーが発生したジョブのエラーログもその場で確認できます。
Datadogとの連携方法(CI/CD向け)
GitLab側から連携の設定をします。
必要なもの
- DatadogのAPIキー
設定の場所
- GitLab.com: トップグループの設定>インテグレーション>Datadog
- Self-managed: 管理者エリア>設定>インテグレーション>Datadog
設定項目
- Datadogのサイト
- DatadogのAPIキー
- CI表示レベルを有効にする
- パイプラインジョブのログ収集を有効にする
- タグ (Datadogでは重要ですね!)
GitLab Self-managedインスタンスのモニタリング
Self-managedのインスタンスのモニタリングも、DatadogではGitLabインテグレーションが用意されているため、メトリクスやログの収集が簡単に設定できます。ダッシュボードも用意されていますので、常に運用状況が把握できます。特にPlatform Engineeringとして社内にサービス提供しているような方には手放せません。
ブログ記事
Datadogとの連携方法(Self-managed向け)
Datadog AgentでGitLabインスタンスおよびサーバー自体のモニタリングを行います。
GitLab側の設定
- 管理者エリア>設定メトリクスとプロファイリング>メトリクス - Prometheus
- metricsエンドポイントにアクセスするためのホワイトリスト
- https://docs.gitlab.com/administration/monitoring/ip_allowlist/
gitlab_rails['monitoring_whitelist'] = ['127.0.0.0/8', '192.168.0.1']
Datadog Agent側の設定
- GitLabインテグレーション
- ドキュメント
- https://docs.datadoghq.com/integrations/gitlab/
- 上記ドキュメントにはホストの場合とコンテナの場合の設定が説明されています。
-
gitlab.d/conf.yaml
を作成し(〜.exampleをコピー)- GitLabインスタンスのメトリクスURLを設定
- ログ収集の設定
-
gitlab-runner.d/conf.yaml
の作成(必要に応じて) - Datadog Agentの再起動
- ドキュメント
- 一般的なサーバーモニタリング設定
- 必要に応じて
Datadog Webコンソール側の設定
- GitLabインテグレーション
まとめ
以上タヌキを犬でモニタリングする方法をご紹介しました。