ブログ
HOME Developer Square ブログ 【SCSK技術者によるブログ】Node ExporterをSysdig Monitorに連携してみた
【SCSK技術者によるブログ】Node ExporterをSysdig Monitorに連携してみた
みなさん、こんにちは!
第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
担当者紹介
- 担当者名
- 鳥飼
- コメント
- Sysdigを中心にコンテナ、Kubernetes、クラウド領域の業務に従事しています。
- 保有資格
- Certified Kubernetes Administrator