共通で考えること
・不要となった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 を使ってコンテナ監視をしてみた