2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dockerのメトリクス収集方法の調査

Last updated at Posted at 2019-08-22

共通で考えること

・不要となったDockerイメージ、ボリュームの定期的な確認・削除。
 自動削除のジョブだと一時的に停止していたものまで削除してしまう危険がある。
 運用ルールを決めて自動化するか、目視確認して削除するのか決定する。

・Elastcsearch、Fluentdなどを冗長構成にするかどうか

Prometheus + Grafana

Prometheus はプル型。
Prometheus がExporterの情報を指定した間隔で取得する。
データの可視化はGrafana

ホストマシンとコンテナのメトリクス情報収集

対象のメトリクス ツール名
ホストマシン Node Exporter
Dockerコンテナ cAdvisor

Prometheusで収集した情報でアラートを通知するかの検討

アラート通知するなら、Alertmanager。Dockerイメージも公開されている。
https://hub.docker.com/r/prom/alertmanager
 問題ないのにPrometheusでアラートとなる場合があるので、
 アラートを抑止する設定を行う必要が発生する場合もあります。

アラート通知でSNMP Trapがある場合

以下のいずれかで動作確認してどれを使うか検討
kaija/webhook-snmp
chrusty/prometheus_webhook_snmptrapper
SUSE/prometheus-webhook-snmp
maxwo/snmp_notifier

Prometheusのexporter選定、導入方法の検討

Dockerコンテナの稼働状況の監視は、Blackbox exporter
https://hub.docker.com/r/prom/blackbox-exporter

(1) その他のミドルウェアのExporterがあるかどうかは、公式サイト参照
https://prometheus.io/docs/instrumenting/exporters/

(2) DockerHubに対象のexporterがあるかの確認、および、動作確認

Dockerイメージが公開されていない場合、直接インストール、または、
自分でDockerイメージ作るかを検討

Grafanaのダッシュボード選定、アラート機能を使うか検討
https://grafana.com/grafana/dashboards

 ・選択したexporterのダッシュボードが公開されているか
 ・なければ自分でダッシュボードを作成することを検討
 ・ダッシュボードに表示した値に対してアラートルールを
  作成してアラート通知することが可能なので、使うかどうか検討

冗長構成を組むか検討

冗長構成にする場合、別々に2つのPrometheusを構築して、
同じ構成ファイルで動かす。詳細は、以下のサイトを参照。

explaining a HA + scalable setup? #1500
Prometheusの冗長化について公式のスタンス

メトリクスを長期保存するかどうかの検討

・デフォルトでは15日経過時点で削除される
・長期保存する場合は、Remote Storageを利用する
Remote Endpoints and Storage
Prometheus の Remote Storage とは?

参考URL

Prometheusで本番環境の監視をして3か月経ちました
Kubernetesを監視する方法
大規模なPrometheusを使用した場合における課題

Prometheus on Dockerでデータを永続化する方法
入門 Prometheus
Grafana Dashboards as Code

データセンターネットワークでのPrometheus活用事例
Micrometer/Prometheusによる大規模システムモニタリング
Cookpad and Prometheus
Prometheus at Preferred Networks
AbemaTVにPrometheusというモニタリングシステムを導入した話
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPrometheusを破壊したのか〜

Beats + Elasticsearch + Kibana

Push型
データの可視化は、Kibana

Metricbeatのみ動作確認しましたが、Metricbeatが指定した間隔で、
情報を収集して出力先に指定したElasticsearchに情報を送っているようです。

やりたいこと ツール名
CPU,メモリ等の情報収集 Metricbeat
パケット情報収集 Packetbeat
稼働状況の監視 Heartbeat
ログファイルの収集 Filebeat
Windowsのイベントログの収集 Winlogbeat
監査データの収集 Auditbeat

Elastic社のDockerイメージ
https://hub.docker.com/u/elastic

Metricbeatの設定で、Dockerコンテナ、ミドルウェアの情報を収集することも可能
詳細は、公式サイトを参照
https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-modules.html

Beatsのdocker-composeの例や設定ファイル(yaml)は公式のGitHubを参照
elastic/beats
beats/deploy/docker/
beats/deploy/kubernetes/

Elastic Stackで簡単!Dockerコンテナ監視ダッシュボード作成
Elastic Stack, on Dockerを動かしてみた[Metricbeat編]
docker上で Filebeat nginx Module を使って nginxのlogをKibanaで表示させた
Elastic StackのAuditbeatで何ができるのかDockerでさくっと確認してみる
Packetbeatを使ってみる - Kibanaを立ててみた
Windows のイベントログを Winlogbeat+Elasticsearch+Kibana で可視化する
Dockerコンテナ上のElasticsearchのデータを永続化する

検索結果の出力機能が要件にある

Kibana 6.xからX-Pack Reportingの無償範囲でCSVエクスポート機能が使える

Kibanaの検索結果をCSVでエクスポートできるように
Kibana6.xのReporting CSV Export機能を試してみる
ElasticスタックVer 6.0.0を試す

KibanaのDashboardをインポートする場合

KibanaのSaved Objectsをインポート、エクスポートする方法
Kibanaの設定をまるっと別のElasticsearchに移したい(改訂版)
Kibana dashboard export and import

日本語を検索するシステムで使う場合

Elasticsearch 7.2.0 + Kuromoji + Kibana + docker-compose インストールメモ
Elasticsearchを日本語で使う設定のまとめ
Elasticsearchのための新しい形態素解析器 「Sudachi」
nextcloud + Elasticsearch で日本語全文検索が動いたメモ

アラート通知方法の検討

Elasticsearchのデータを元にアラート通知する方法の調査

Elasticsearchのデータを定期的に削除するかどうかの検討

Kibana 6.6からIndex Lifecycle Management(ILM)という機能が追加されています。ElasticsearchのIndex管理を行う画面。
Index Lifecycle Management(ILM)
インデックスライフサイクル管理でHot-Warm-Coldアーキテクチャーを実装
ElasticsearchのIndex Lifecycle Management(ILM)を使って、指定された期間を過ぎたインデックスを削除する
elasticsearch Index lifecycle policiesの使い方

Index Lifecycle Management(ILM)は、FluentdのElasitcsearchプラグインでもサポートされています
gemでelasticsearch-xpackもFluentdにインストールする必要があります。

Curatorというツールもあります。詳細は以下のサイトを参照。
削除以外にスナップショットやクローズなどの操作もできるようです。
CuratorによるElasticsearchのメンテナンス

Dockerイメージはたくさん公開されています。1日1回実行するものやボリュームマウントするcronの設定ファイルの指定で実行間隔を指定できるものがあるようです。
https://hub.docker.com/search?q=elasticsearch-curator&type=image

Zabbix Server + Zabbix Docker Monitoring

・Zabbix Serverの準備
・監視対象ホストにZabbix Docker Monitoringのコンテナ起動
・Zabbix Serverへの設定

詳細は以下のサイトを参照
ZabbixでDockerコンテナを簡単に監視する
Zabbix Docker Monitoring を使ってコンテナ監視をしてみた

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?