2024年度クラウドネイティブセキュリティおよび利用状況レポート
みなさん、こんにちは!
第10回担当の鳥飼です。
これまでSysdig Secureの機能を主に取り扱ってきましたが、今回はSysdig Monitorにスポットライトを当てたいと思います。
よく「PrometheusメトリクスをSysdig Monitorに統合できるか」と質問を受けることがあります。
答えはYesです。
Sysdig agentはデフォルトでコンテナやホストのメトリクスを収集しますが、それに加え、任意のExporterからメトリクスを吸い上げることもでき、お客様の要件に沿ったカスタマイズ性の高いモニタリング監視を実現することが出来ます。
今回は第一弾として、最もシンプルな設定で動作を確認できるNode Exporterから取得したメトリクスをSysdig Monitorで表示する方法をご紹介します!
Sysdig Secureはクラウドやワークロードを保護するのに対し、Sysdig Monitorはモニタリング監視を担い、死活監視やリソース消費量の把握などを行うことができます。
Sysdig agentには軽量のPrometheusサーバーが組み込まれており、prometheus.yamlを適当なパスに配置することで、エンドポイントに対してスクレイピングを行います。
※今回はAmazon Linux 2023/docker v25.0.5を利用しました。
$ docker run -d \ --net="host" \ --pid="host" \ -v "/:/host:ro,rslave" \ quay.io/prometheus/node-exporter:latest \ --path.rootfs=/host
$ pwd /home/ec2-user/ $ cat prometheus.yaml global: scrape_interval: 15s scrape_configs: - job_name: 'node-exporter' static_configs: - targets: ['localhost:9100']
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
$ 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