ブログ

【SCSK技術者によるブログ】Node ExporterをSysdig Monitorに連携してみた

2024年度クラウドネイティブセキュリティおよび利用状況レポート

みなさん、こんにちは!
第10回担当の鳥飼です。
これまでSysdig Secureの機能を主に取り扱ってきましたが、今回はSysdig Monitorにスポットライトを当てたいと思います。
よく「PrometheusメトリクスをSysdig Monitorに統合できるか」と質問を受けることがあります。
答えはYesです。
Sysdig agentはデフォルトでコンテナやホストのメトリクスを収集しますが、それに加え、任意のExporterからメトリクスを吸い上げることもでき、お客様の要件に沿ったカスタマイズ性の高いモニタリング監視を実現することが出来ます。
今回は第一弾として、最もシンプルな設定で動作を確認できるNode Exporterから取得したメトリクスをSysdig Monitorで表示する方法をご紹介します!

Sysdig Monitorとは

Sysdig Secureはクラウドやワークロードを保護するのに対し、Sysdig Monitorはモニタリング監視を担い、死活監視やリソース消費量の把握などを行うことができます。

構成図

Sysdig agentには軽量のPrometheusサーバーが組み込まれており、prometheus.yamlを適当なパスに配置することで、エンドポイントに対してスクレイピングを行います。

構成図

用意するもの

  • Sysdig MonitorのSaaSアカウント
  • Docker環境

※今回はAmazon Linux 2023/docker v25.0.5を利用しました。

手順

1). Node Exporterコンテナを立ち上げる

$ docker run -d \
  --net="host" \
  --pid="host" \
  -v "/:/host:ro,rslave" \
  quay.io/prometheus/node-exporter:latest \
  --path.rootfs=/host

2). スクレイピング設定をprometheus.yamlへ記述する

$ pwd
/home/ec2-user/

$ cat prometheus.yaml
global:
  scrape_interval: 15s
scrape_configs:
  - job_name: 'node-exporter'
    static_configs:
    - targets: ['localhost:9100']

3). Sysdig agentコンテナを起動する

2.で作成したファイルをSysdig agentコンテナにマウントし、起動します。

$ docker run -d --name sysdig-agent --restart always --privileged --net host --pid host \
    -e ACCESS_KEY=<your_access_key> \
    -e COLLECTOR=<your_collector_url> \
    -e SECURE=true \
    -v /var/run/docker.sock:/host/var/run/docker.sock \
    -v /dev:/host/dev \
    -v /proc:/host/proc:ro \
    -v /boot:/host/boot:ro \
    -v /lib/modules:/host/lib/modules:ro \
    -v /usr:/host/usr:ro \
    -v /etc:/host/etc:ro \
    -v /home/ec2-user/prometheus.yaml:/opt/draios/etc/prometheus.yaml:ro \
    --shm-size=512m \
    quay.io/sysdig/agent

4). [Sysdig Monitor > Explore]でnodeから始まるメトリクス(node-exporterがexposeしているメトリクス)が表示されていることが確認できました。

構成図

5). Sysdig agentのログからもスクレイピングできていることが確認できます。

$ docker logs sysdig-agent | grep promscrape
```
2024-08-30 09:51:17.029, 32175.32261, Information, promscrape:prom_stats:76: endpoint http://localhost:9100/metrics (job node-exporter): 566 total timeseries sent
2024-08-30 09:51:17.029, 32175.32261, Information, promscrape:prom_stats:82: endpoint http://localhost:9100/metrics: RAW: scraped 566, sent 566, dropped by: job filter 0, global filter 0
```

最後に

prometheus.yamlで設定可能なところやPromQLをプラットフォーム上で実行できるところなど、OSSのPrometheusと互換性があるところが魅力的ですね

今後、様々なexporterをSysdig Monitorに連携しご紹介できればと思っています、exporterシリーズ次回もお楽しみに!

参考

Sysdigドキュメント - Example Prometheus Configuration file
https://docs.sysdig.com/en/docs/sysdig-monitor/integrations/monitoring-integrations/custom-integrations/collect-prometheus-metrics/enable-prometheus-native-service-discovery/#example-prometheus-configuration-file
Prometheus GitHub - Node Exporter
https://github.com/prometheus/node_exporter

担当者紹介

SCSK 鳥飼
担当者名
鳥飼
コメント
Sysdigを中心にコンテナ、Kubernetes、クラウド領域の業務に従事しています。
保有資格
Certified Kubernetes Administrator

Sysdigに関するお問い合わせはこちらから

最近の投稿

カテゴリー

アーカイブ

ご質問・お問い合わせはこちら

top