要点OpenTelemetry Collector の journald receiver を使用して、ClickStack で systemd ジャーナルのログを収集・可視化します。デモデータセットとあらかじめ用意されたダッシュボードが含まれます。
既存システムとのインテグレーション
前提条件
- 稼働中の ClickStack インスタンス
- systemd を備えた Linux システム (Ubuntu 16.04+、CentOS 7+、Debian 8+)
- 監視対象システムに Docker または Docker Compose がインストールされていること
1
ClickStack API key を取得する
OpenTelemetry Collector はデータを ClickStack の OTLP エンドポイント に送信しますが、その際に認証が必要です。- ClickStack の URL (例: http://localhost:8080) で HyperDX を開きます
- 必要に応じてアカウントを作成するか、ログインします
- Team Settings → API Keys に移動します
- インジェスト API key をコピーします
- 環境変数として設定します。
2
systemd journal が動作していることを確認する
システムで systemd が使用されており、journal ログが存在することを確認します。3
4
Docker Compose でデプロイする
journald receiver が journal ファイルを読み取るには、journalctl binary が必要です。公式の otel/opentelemetry-collector-contrib イメージには、デフォルトでは journalctl が含まれていません。コンテナー環境でデプロイする場合は、collector をホストに直接インストールするか、systemd utilities を含むカスタムイメージをビルドしてください。詳しくは、トラブルシューティングのセクション を参照してください。5
HyperDX でログを確認する
設定後、HyperDX にログインしてログが取り込まれていることを確認します。- Search view に移動します
- source を Logs に設定します
service.name:systemd-logsでフィルタしますunit、priority、MESSAGE、_HOSTNAMEなどのフィールドを含む構造化されたログエントリが表示されるはずです
デモデータセット
1
2
3
デモデータで ClickStack を実行する
デモログを使って ClickStack を起動します。このデモでは、コンテナー内で
journalctl を必要としないよう、journald ではなくテキストログを扱う filelog receiver を使用します。4
HyperDX でログを確認する
ClickStack の起動後、以下を実行します。- HyperDX を開き、アカウントにログインします
- Searchビューに移動し、ソースを
Logsに設定します - 時間範囲を 2025-11-14 00:00:00 - 2025-11-17 00:00:00 に設定します
タイムゾーン表示HyperDX はタイムスタンプをブラウザーのローカルタイムゾーンで表示します。デモデータの対象期間は 2025-11-15 00:00:00 - 2025-11-16 00:00:00 (UTC) です。時間範囲を広めに設定しているため、どこからアクセスしてもデモログを確認できます。
ダッシュボードと可視化
1
してダッシュボード設定を取得する
2
あらかじめ用意されたダッシュボードをインポートする
- HyperDX を開き、Dashboards セクションに移動します
- 右上の三点メニューから Import Dashboard をクリックします
systemd-logs-dashboard.jsonファイルをアップロードし、Finish Import をクリックします
3
ダッシュボードを表示する
このダッシュボードには、次の可視化が含まれています:- 時系列のログ量
- ログ数が多い systemd ユニットの上位項目
- SSH 認証イベント
- サービス障害
- エラー率
デモデータセットを使用する場合は、時間範囲を 2025-11-15 00:00:00 - 2025-11-16 00:00:00 (UTC) に設定してください (ローカルのタイムゾーンに応じて調整してください) 。
トラブルシューティング
HyperDX にログが表示されない
journalctl が見つからないエラー
exec: "journalctl": executable file not found in $PATH と表示される場合:
otel/opentelemetry-collector-contrib イメージには journalctl が含まれていません。次のいずれかの方法で対応できます。
- ホストに collector をインストールする:
- テキストエクスポート方式を使用します (デモと同様に) 。
filelogreceiver で journald のエクスポートを読み込みます
次のステップ
- 重要なシステムイベント (サービス障害、認証失敗、OOM キル) に対するアラートを設定します
- 特定のユースケース (SSH のセキュリティ監視、サービスの健全性監視) 向けに追加のダッシュボードを作成します
- 特定の systemd ユニットで絞り込んでノイズを減らし、重要なサービスに集中します
本番環境への移行
- Kubernetes で collector をデーモンセットとしてデプロイする
- 各ホストで collector を systemd サービスとして実行する
- 自動デプロイに OpenTelemetry Operator を使用する