Managed Service for Prometheus は、node_exporter を使用して Elastic Compute Service (ECS) の Linux または Windows ホストから OS レベルのメトリクスを収集し、process_exporter でプロセス関連の監視データを取得し、さらに textfile コレクターを通じてユーザーがファイルに書き込んだカスタム監視メトリクスを取得することをサポートします。
前提条件
Managed Service for Prometheus が有効化されています。インスタンスの課金。
ECS インスタンスが作成されています。ECS コンソール(エクスプレス版)を使用した ECS インスタンスの作成と管理。
Resource Center が有効化されています。Resource Center の有効化。
ホストモニタリングのメリット
ホストモニタリングは、Alibaba Cloud ECS インスタンス向けの自動化された可観測性ソリューションを提供し、ホスト検出、エージェントインストール、メトリクススクレイプ、アラート機能を網羅しています。
Alibaba Cloud ECS インスタンス、オンプレミスのデータセンターサーバー、サードパーティクラウドサーバーをサポートしています。ECS インスタンスの場合、サービスがエクスポーターを自動インストールし、スクレイプ構成を生成します。マネージド Prometheus エージェントがメトリクスのスクレイプ、ストレージ、可視化、およびアラート機能を処理します。自動検出がサポートされていない Alibaba Cloud 以外のホストについては、手動で Alibaba Cloud エージェントをインストールしてデータをプッシュしてください。
メリット | 説明 |
ほぼリアルタイムのホスト検出 |
|
ほぼリアルタイムのエージェントインストール |
|
ほぼリアルタイムのメトリクススクレイプ |
ホストは作成後 30~60 秒以内に統合されます。スクレイプ間隔は 1~60 秒の範囲で調整可能です。 |
サーバーレスエージェント |
|
インテリジェントなメトリクスラベル |
|
大規模なデータ収集とストレージ |
|
包括的な上流・下流の監視データ |
|
プロセスレベルの監視 |
|
専門家レベルの Grafana ダッシュボードがデフォルトで含まれる |
|
ステップ 1:ホストモニタリングデータの統合
-
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、インテグレーションセンター をクリックします。
アクセスセンター ページで、左側のナビゲーションウィンドウの インフラストラクチャ をクリックし、次に ホスト監視 をクリックします。
説明Managed Service for Prometheus は Resource Center を使用して VPC および ECS インスタンスを検出します。Resource Center が有効化されていない場合、統合プロセス中に有効化を促されます。Resource Center の有効化。
Resource Center の有効化は非同期操作です。ステータスが更新されない場合は、10~20 秒待ってから 再検出 をクリックしてください。
表示されたパネルで、対象の VPC を選択し、次の表に従って 設定情報 を設定します。
パラメーター
説明
ポリシー名
任意。この統合の名前を指定します。
注記
この機能は Cloud Monitor から ECS のエージェントレスメトリクスを収集します。また、Node-Exporter、Process-Exporter、Windows-Exporter などのエクスポーターをインストールして、ホストエージェントメトリクスを収集することもできます。
本番環境のホストにエージェントをインストールすることは、本番環境への変更とみなされます。組織の基準に従って変更リクエストを提出してください。
クロスリージョンアクセスが有効になっている場合、エージェントを使用してノード、プロセス、Windows のメトリクスを収集できません。
LifseaOS では現在エクスポーターのインストールがサポートされていません。LifseaOS を実行しているインスタンスは自動的にスキップされます。
リソース使用量:エージェントは GOMAXPROCS=1、CPU 制限 30%、メモリ制限 256 MB で systemd サービスとして実行されます。通常の状態ではリソース使用量は低く抑えられています。ただし、ホスト上のプロセス数に応じて収集オーバーヘッドが増加します。
リスク警告:プロセス PSS メモリメトリクスの収集 機能を有効にすると、各プロセスの smaps ファイルを読み取り、一時的に mmap_lock を保持します。これにより、大量のメモリを使用するプロセスや頻繁に mmap 操作を行うプロセスにおいて、レイテンシーグリッチが発生する可能性があります。Proportional Set Size (PSS) メトリクスが不要な場合は、この機能を無効にしてください。
Node-exporter インストールモード
自動インストール(推奨): 選択した ECS インスタンスに node-exporter を自動的にインストールします。手動での操作は不要です。
自己インストール: node-exporter をご自身でインストールします。
ホスト検出モード
ステインラベル選択: ブラックリスト方式。一致するラベルを持つインスタンスは除外されます。デフォルトでは、コンテナ監視サービスノードはスクレイプされません。
無条件: 現在の VPC 内のすべての ECS ホストにエクスポーターをインストールし、監視メトリクスを収集します。
タグ選択: ホワイトリスト方式。一致するタグを持つインスタンスのみを統合します。
IP CIDR 選択: 指定した CIDR ブロック内に IP アドレスを持つインスタンスを統合します。VPC 内のすべてのインスタンスを選択するには、VPC の CIDR ブロックを入力してください。
インスタンス ID: インスタンス ID をカンマ (,) 区切りで指定します。
ECS ステインラベル
各ステインラベルはキーと値のペアです。複数のラベルを設定できます。
TextFile の収集
指定されたファイルから Prometheus メトリクスをスクレイプするかどうかを設定します。
プロセスの状態メトリクスの収集
デフォルトでプロセス監視データを収集します。
プロセス PSS メモリメトリクスの収集
有効にすると、各プロセスの
smapsファイルを読み取り、PSS(比例セットサイズ常駐メモリ)および関連メトリクスを収集します。Node-Exporter サービスポート
デフォルトポートは 9100 です。同じ ACK クラスター内に arms-prometheus と ack-prometheus-operator の両方がインストールされている場合、両方の node-exporter セットがデフォルトでポート 9100 を使用するため、ポート競合が発生し、サービスエラーが生じる可能性があります。
メトリクススクレイプ間隔(秒)
スクレイプ間隔。デフォルト:15 秒。
セキュリティグループの自動構成
デフォルトで有効になっています。
カスタム ECS タグの注入
ECS タグキーを指定します。システムがそのタグのキーと値のペアを Prometheus メトリクスにラベルとして注入します。
OK をクリックします。統合が完了するまで 1~2 分お待ちください。
統合後にダッシュボードにデータが表示されない場合は、ECS セキュリティグループのインバウンドルールで、CIDR ブロック 100.64.0.0/10 および 192.168.0.0/18 からのポート 9100 および 9256(node-exporter および process-exporter のデフォルトポート)へのアクセスが許可されていることを確認してください。セキュリティグループルールの確認。異なるポートを使用している場合は、それに応じてルールを調整してください。
node-exporter ポート競合のトラブルシューティングと解決
同じ ACK クラスター内に arms-prometheus と ack-prometheus-operator の両方がデプロイされている場合、それぞれの node-exporter DaemonSet が hostPort 9100 を争奪し、一方の node-exporter Pod が起動できなくなります。これを解決するには、いずれかの node-exporter DaemonSet のポートを 9101 に変更してください。
次のコマンドを実行して、どの DaemonSet の node-exporter Pod がスケジュールに失敗しているかを確認します。
kubectl get pods -A | grep node-exporter kubectl describe pod <pod-name> -n <namespace>競合している DaemonSet を編集します。
kubectl edit daemonset <daemonset-name> -n <namespace>DaemonSet の YAML で、
--secure-listen-address引数を見つけ、ポートを9100から9101に変更します。また、containerPortおよびhostPortの値も9101に更新します。args: - --secure-listen-address=0.0.0.0:9101 ... ports: - containerPort: 9101 hostPort: 9101 name: https保存して終了します。node-exporter Pod が新しいポートで再起動し、実行されていることを確認してください。
説明Helm を使用してコンポーネントを最初にインストールしていた場合、後続の
helm upgradeによって変更内容が上書きされる可能性があります。アップグレード前に、変更済みの構成をバックアップするか、チャートバージョンをロックしてください。
カスタム監視用の ServiceMonitor の構成
ポート競合を解決したら、ARMS コンソールで ServiceMonitor を構成し、新しいポートの node-exporter インスタンスからメトリクスをスクレイプします。
ARMS コンソールにログインします。
左側のナビゲーションウィンドウで、Prometheus モニタリング > サービス検出 を選択します。
ServiceMonitor の作成 をクリックします。作成パネルで、YAML モード を選択します。
ポート 9101 の node-exporter サービスを対象とする ServiceMonitor 構成を入力します。以下は例です。
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: node-exporter-custom namespace: <namespace> spec: endpoints: - port: https interval: 15s scheme: https tlsConfig: insecureSkipVerify: true namespaceSelector: matchNames: - <namespace> selector: matchLabels: app.kubernetes.io/name: node-exporter<namespace>は、node-exporter がデプロイされている名前空間に置き換えてください。OK をクリックします。ServiceMonitor は数分以内に有効になります。
ステップ 2:モニタリングダッシュボードの表示
左側のナビゲーションウィンドウで、アクセス管理 をクリックします。
アクセス管理 ページで、アクセス済みの環境 タブをクリックし、ECS Environment を選択します。
ECS Environment リストで、対象環境の名前をクリックして詳細ページを開きます。
コンポーネントの管理 タブの コンポーネントタイプ セクションで、Dashboard をクリックして、組み込みの Grafana ダッシュボードを表示します。
ステップ 3:アラートの構成
Managed Service for Prometheus コンソールにログインします。左側のナビゲーションウィンドウで、統合管理 をクリックします。
アクセス管理 ページで、アクセス済みの環境 タブをクリックし、ECS Environment を選択します。
ECS Environment リストで、対象環境の名前をクリックして詳細ページを開きます。
コンポーネントの管理 タブの コンポーネントタイプ セクションで、Alarm Rules をクリックして、組み込みのアラートルールを表示します。
組み込みアラートルールはイベントを生成しますが、通知は送信しません。通知を送信するには、編集 をクリックして通知方法を構成してください。しきい値、持続時間、内容もカスタマイズできます。Prometheus アラートルールの作成。
シンプルモード では、通知受信者、通知期間、繰り返しポリシーを設定できます。
Grafana ダッシュボードの例
ECS 概要ダッシュボード

ECS 詳細ダッシュボード
