メインコンテンツへ移動

環境変数

最初に:本ページは運用プラットフォーム自体の設定のみを説明します

監視対象はすべて UI の「データソース」で設定します。MySQL/MongoDB/Redis/Kafka/Elasticsearch/ホスト/Flink に対応する環境変数は廃止されました。デプロイ後にデータソースページで追加するか、YAML テンプレートをダウンロードして一括インポートします(各項目の接続テストを実施します)。変更は即時反映され、コンテナ再起動は不要です。

1.4.x では ops.yaml の ENV_MYSQL_*/ENV_REDIS_* などで監視対象を設定できました(初回起動時にデータソースを初期登録)。1.5.0 ではこの仕組みを廃止し、これらの変数を読み込みません。設定は無効となり、起動ログに明示されます。1.4.x からアップグレードしたインスタンスでは既存データソースは変わらず、ops.yaml の旧設定行を削除できます。

本ページのその他の変数(トークン、サブパス、保持期間、オブジェクトストレージ、Alloy など)には影響しません。常に本ページの説明を基準にしてください。

運用プラットフォームの設定はすべて環境変数で渡します。Docker Compose は ops.yaml、Kubernetes は ConfigMap に記述します。以下は用途別の一覧です。指定のない項目は必要に応じて設定し、未設定時はデフォルト値を使用します。

共通/ゲートウェイ (Gateway)​

環境変数名説明
ENV_OPS_TOKENアクセス認証キー。初回デプロイ時に必ず変更してください
ENV_OPS_SUB_PATHリバースプロキシのサブパス。ポートへの直接接続時は不要。設定するとゲートウェイと Grafana が GF_SERVER_ROOT_URL と GF_SERVER_SERVE_FROM_SUB_PATH に自動対応します。例:/mdis
ENV_OPS_PORTops-server の内部待ち受けポート。デフォルト 8081。通常は変更不要
ENV_OPS_GATEWAY_PORTゲートウェイの外部公開ポート。デフォルト 48881

ホスト監視 (Node Exporter)​

環境変数はありません。UI の「データソース」で「ホスト」を追加します。アドレス形式は IP:59100(ポートは 59100 固定)です。

Docker Compose のデプロイホストと Kubernetes クラスター内のノードには ops-nodeagent が組み込み済みです(59100 で自動待ち受け)。重複登録や node_exporter の追加インストールは不要で、追加の外部ホストのみをデータソースページで登録します。

クラスター監視 (Kubernetes)​

1.3.0 以降、Kubernetes クラスター(ノード、コンテナ、Pod、クラスターオブジェクト状態)の監視に対応しています。詳細は Kubernetes クラスター監視を参照してください。

環境変数名説明
ENV_K8S_MONITOR_MODEKubernetes 監視モード:off(デフォルト、無効)/incluster(所属クラスターの ServiceAccount で対象を自動検出)。Kubernetes 形態の運用プラットフォームでは incluster が設定済みです。運用プラットフォームがクラスター外の場合は、監視対象クラスター内の収集コンポーネントが使用します。⚠️ 1.5.3 以降、クラスター外からの取得(static)は廃止され、この値は無効です
ENV_K8S_CLUSTER_NAMEクラスター識別子。メトリクスの origin_prometheus ラベルに設定され、Kubernetes パネル上部でクラスターを切り替える際に使用します。デフォルト default。複数クラスターでは prod-k8s/test-k8s など異なる名前を設定し、重複を避け、IP の使用は推奨しません
ENV_K8S_KSM_NAMESPACEincluster モードの kube-state-metrics の名前空間。デフォルト mdis-monitoring。⚠️ 2 種類の Kubernetes マニフェスト(単一ファイル ops.yaml と PVC の 11-configmap.yaml)では hap-ops に設定済みで、同梱 kube-state-metrics も hap-ops にあるため変更不要です。デフォルト mdis-monitoring は監視対象クラスター内の収集コンポーネントのみが使用します

incluster モードではデータソース登録は不要です。ops-prometheus が自身の ServiceAccount で kubelet/cAdvisor/kube-state-metrics を自動検出し、変更はリアルタイムに反映されます。

ミドルウェアと監視対象​

環境変数はありません。MySQL/MongoDB/Redis/Kafka/Elasticsearch はすべて UI の「データソース」で追加し、各データソースで用途を選択します:

  • グラフ表示(metrics):メトリクスを収集し、リソース監視ページにグラフを表示
  • アラート(alert):アラート監視の対象に追加
  • 診断(diagnose、MongoDB のみ):スロークエリ診断の対象データベースに追加。アカウントには clusterMonitor と対象データベースの dbAdmin が必要です。運用プラットフォームが profile:1 を実行して profiling を有効化します

exporter のポートは自動割り当てされるため、設定は不要です。

一括インポート​

データソースページ右上の「一括インポート」は YAML/JSON に対応します。「YAML テンプレートをダウンロード」で取得し、現在の環境の接続アドレスに変更してアップロードします。まず「検証のみ」を実行することを推奨します。形式チェックと個別の接続確認のみを行い、データは書き込みません。

「タイプ + 名前」で冪等性を確保します。同名項目は新規作成せず更新されるため、同じファイルを繰り返しインポートできます。更新時にパスワードが空欄なら元のパスワードを維持します。接続失敗でもインポートは続行しますが、結果に項目ごとの異常を表示します。

自動デプロイでは API を直接呼び出せます:

curl -X POST "http://デプロイサーバーIP:48881/api/alert/sources/import" \
-H "Content-Type: application/yaml" \
--data-binary @datasources.yaml
入力時の注意(テンプレートのコメントにも記載)
  • MySQL クラスター:各ノードの実アドレスを指定してください。mysqlrouter のような読み書き分離エンドポイントでは、振り分け先の 1 バックエンドしか収集できず、メンバー全体の状態を取得できません。
  • Elasticsearch:プライベートデプロイ内蔵 ES のユーザー名は elastic ではなく md です。誤ると収集プロセスは稼働していてもメトリクスを取得できません。
  • MongoDB レプリカセット:全メンバーをカンマ区切りで URI に指定してください。

データソースのサービスディスカバリー​

agent は 30 秒ごとに ops-server から「有効かつ用途に metrics を含む」データソースを取得し、対応する exporter を必要に応じて起動/停止します。Prometheus の収集対象もレジストリから配信され、動的に再読み込みされるため、変更は即時反映されます。

環境変数名説明
ENV_OPS_SD_URLops-prometheus/agent がレジストリ(ops-server)へアクセスするアドレス。デフォルト http://gateway:8081。⚠️ ops-server が直接待ち受ける 8081 であり、ゲートウェイの外部ポート 48881 ではありません(48881 は nginx で /api/sd ルートがありません)。Kubernetes Service は両ポートを公開する必要があります
ENV_OPS_SD_TOKENレジストリ API のトークン。gateway、ops-prometheus、agent で一致させます。空の場合は認証しません(Docker 内部ネットワークでのみ推奨)
ENV_AGENT_SD_HOSTagent サービスのホスト名(Prometheus が exporter を特定するために使用)。デフォルト agent。通常は変更不要
データソースを設定してもデータがない場合

まず agent コンテナのログを確認してください。[sd] 拉取 xxx 失败 が続く場合、レジストリにアクセスできていません。よくある原因は ENV_OPS_SD_URL が 48881 を指しているか、Kubernetes Service が 48881 のみを公開し、8081 を公開していないことです。この場合 exporter はすべて起動できず、ミドルウェア監視はすべて空になります。

データ保持期間​

環境変数名説明
ENV_PROMETHEUS_RETENTIONPrometheus メトリクスの保持期間。デフォルト 15d。例:30d
ENV_LOKI_RETENTIONLoki ログの保持期間。デフォルト 720h(30 日)。例:360h
ENV_TEMPO_RETENTIONTempo トレースの保持期間。デフォルト 720h(30 日)。例:360h

可観測性データの収集 (Alloy)​

環境変数名説明
ENV_TEMPO_GRPC_URLalloy から Tempo にトレースを転送する gRPC アドレス。例:http://ops-tempo:4317
ENV_PROMETHEUS_REMOTE_WRITE_URLremote_write の書き込み先。① alloy が運用プラットフォーム自体のメトリクスを送信する場合、同一クラスター内で直接接続可能。例:http://ops-prometheus:9090/prometheus/server/api/v1/write。② 他の Kubernetes クラスターの収集コンポーネントから送信する場合、ゲートウェイの外部ポートを経由し token が必要。例:http://<運用プラットフォームのアドレス>:30881/mdis/prometheus/server/api/v1/write(ops-prometheus は ClusterIP のため、クラスター外から :9090 にはアクセスできません)
ENV_PROMETHEUS_REMOTE_WRITE_TOKEN上記でゲートウェイ経由の場合の Bearer token。運用プラットフォームの ENV_OPS_TOKEN を設定します。未設定なら 401 が返り、収集側ログにのみ記録され、UI は「データなし」となります。:9090 への直接接続では不要
ENV_LOKI_PUSH_URLalloy から Loki にログを送信する HTTP API アドレス。例:http://ops-loki:3100/loki/api/v1/push
ENV_LOKI_PUSH_TOKENログ送信の Bearer token。収集元が別クラスターにあり、ゲートウェイ経由で送信する場合のみ必要(運用プラットフォームの ENV_OPS_TOKEN)。同一クラスター内で ops-loki に直接接続する場合は空欄。未設定でゲートウェイ経由にすると 401 が返り、収集側ログにのみ記録されます

ログストレージのバックエンド (Loki S3/MinIO、任意)​

未設定時は Loki のローカルファイルシステムを使用します。

環境変数名説明
ENV_S3_ENDPOINTS3 互換エンドポイント。host:port を指定し、http:// は付けないでください。例:minio:9000。Tencent Cloud COS の例:cos.ap-hongkong.myqcloud.com(bucket 接頭辞なし)。Tempo の minio-go は host:port のみ対応し、scheme があると Endpoint url cannot have fully qualified paths になります。Loki のプロトコルは設定の insecure で制御するため、scheme は不要です
ENV_S3_BUCKET_LOKIログ(Loki)の bucket 名。例:mdis-loki。⚠️ デプロイ前に必ず作成してください。存在しない場合 Loki が NoSuchBucket で繰り返し再起動します
ENV_S3_BUCKET_TEMPOトレース(Tempo)の bucket 名。例:mdis-tempo。Loki と別のバケットが必要で、事前作成してください
ENV_S3_BUCKET既存デプロイとの互換性のための旧共通バケット名(上記 2 つが未設定の場合のみ使用)。⚠️ 新規デプロイでは使用しないでください。Loki と Tempo の両方に渡され、同一バケットを共有すると Tempo が起動できません
ENV_S3_ACCESS_KEYS3 access key
ENV_S3_SECRET_KEYS3 secret key
ENV_S3_FORCE_PATH_STYLEbucket のアドレス形式。true(デフォルト)は path-style で MinIO/UCloud US3 に対応。Tencent Cloud COS/Alibaba Cloud OSS は virtual-host のみ対応し、false が必須。Loki(AWS SDK)と Tempo(minio-go。内部で bucket_lookup_type に変換して DNS を強制)に共通の設定です

アラートサブシステム(1.4.0 以降)​

1.4.0 で独自のアラートサブシステムを内蔵しました。設定データ(ルール/状態/履歴/通知チャンネル/データソース)は独立した ops-mongo コンテナに保存され、監視対象の業務 MongoDB とは完全に分離されています。

環境変数名説明
ENV_OPS_MONGODB_URIアラートサブシステム専用 MongoDB の接続先。デフォルトは内蔵 ops-mongo。例:mongodb://ops-mongo:27017
ENV_MONGODB_COLLECTION_PREFIXアラートサブシステムのコレクション名の共通接頭辞。例:mdis_
ENV_ALERT_CRYPTO_KEYデータソースの認証情報(パスワード/URI)を保存前に AES 暗号化するキー。初回デプロイ時にランダム文字列に変更し、厳重に保管してください。変更すると保存済み認証情報を復号できなくなり、再入力が必要です

アラート通知チャンネル(Feishu/DingTalk/WeCom/メール/カスタム Webhook)は UI の「アラート → 通知チャンネル」で設定し、環境変数は使用しません。メールの SMTP サーバー情報も同じページで入力します。

スロークエリ診断の調整(任意)​

MongoDB スロークエリの捕捉感度を調整します。デフォルト値は本番環境向けです。テスト環境で再現条件を緩める場合は、最初の 2 項目を下げられます。4 つの捕捉条件の詳細はスロークエリ分析を参照してください。

環境変数名説明
ENV_GATEWAY_DOCS_EXAMINED記録対象となるスキャンドキュメント数。デフォルト 100000。遅いクエリでもスキャン数が少なければ記録されません
ENV_GATEWAY_CAPTURE_INTERVAL_MS収集周期(ミリ秒)。デフォルト 600000(10 分)。スロークエリ発生後、次の収集周期まで待つ必要があります
ENV_GATEWAY_PROFILE_SLOW_MS監視対象データベースに設定する slowms 閾値(ミリ秒)。デフォルト 100
ENV_GATEWAY_LOG_EXPIRE_MS運用プラットフォーム専用データベースでのスロークエリ履歴保持期間(ミリ秒)。デフォルト 604800000(7 日)

gateway サービスに設定します。別途、変更できない固定条件として、同じクエリフィンガープリントが直近 120 分以内に 50 回以上出現する必要があります。

サービスログ連携(混同しやすいため必ず確認)​

「サービスログ」は HAP/HDP マイクロサービスが Loki に送信したログを検索する機能です。

設定先変数役割デフォルト
HAP/HDPENV_LOKI_URL書き込み側のスイッチ:logservice が Loki にログを送るかを制御。未設定ならインストーラーが StoreInLoki を false にし、サービスログを書き込みません空(書き込みなし)
運用プラットフォームENV_LOKI_URL検索先アドレス:ログを読み取る場所http://ops-loki:3100。標準デプロイでは設定不要

同名でも役割は異なります。「サービスログ」が空の場合は HAP/HDP サービス側の変数を設定し、運用プラットフォームの Loki の到達可能なアドレス(例:http://運用プラットフォームのホストIP:3100)を指定して、対象の製品サービスを再起動してください。