对Docker的度量收集方法进行调研

共通的思考

・需要定期检查和删除无用的Docker镜像和卷。
使用自动化的删除工作可能会有删除一些暂时停用的内容的风险。
需要确定操作规则并自动化处理,或者视情况手动确认并删除。

是否需要将Elasticsearch、Fluentd等配置为冗余结构?

普罗米修斯+Grafana

only need one option :
Prometheus使用了拉取模式。
Prometheus以指定的间隔获取Exporter的信息。
数据的可视化是通过Grafana实现的。

主机和容器的度量信息收集

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

考虑使用Prometheus收集的信息来发出警报

如果需要进行警报通知,则使用Alertmanager。还有Docker镜像可供使用。
https://hub.docker.com/r/prom/alertmanager
尽管问题可能不大,但在Prometheus中有时会触发警报,
因此可能需要进行一些配置以阻止警报的情况发生。

如果有SNMP Trap在警报通知中

请使用以下其中一个选项进行操作验证,并考虑使用哪个选项:
1. kaija/webhook-snmp
2. chrusty/prometheus_webhook_snmptrapper
3. SUSE/prometheus-webhook-snmp
4. 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

你选中的出口商的仪表板是否已经公开?
如果没有,考虑自己创建一个仪表板。
由于可以针对仪表板中显示的值创建警报规则并发送警报通知,因此请考虑是否要使用。

考虑使用冗长的结构

如果要实现冗长结构,可以单独构建两个Prometheus,并使用相同的配置文件来运行。有关详细信息,请参阅以下网站。

解释HA + 可扩展设置的意思是什么? #1500
有关Prometheus的冗余设置的官方立场

考虑是否长期保存度量标准。

・默認情况下,数据将在15天后被删除。
・如需长期保存数据,请使用Remote Storage。
远程端点和存储
Prometheus 的远程存储是什么?

请参考以下网址

我已经使用Prometheus监控生产环境三个月了
如何监控Kubernetes
在使用大规模的Prometheus时遇到的问题

使用Docker在Prometheus中实现数据持久化的方法
Prometheus入门
将Grafana仪表板作为代码化

在数据中心网络中利用Prometheus的案例
利用Micrometer/Prometheus进行大规模系统监控
Cookpad和Prometheus
Preferred Networks上的Prometheus
关于在AbemaTV引入名为Prometheus的监控系统的故事
在Kubernetes之外监控Prometheus的故事-为什么我们破坏了Kubernetes上的Prometheus

Beats + Elasticsearch + Kibana => 蓝牙+弹性搜索+可视化分析

Push型資料的視覺化是透過Kibana實現的。

我只测试了Metricbeat,但它似乎能按照指定的间隔收集信息,并将信息发送到指定的Elasticsearch作为输出目标。

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

弹性公司的Docker镜像
https://hub.docker.com/u/elastic

在Metricbeat的配置中,可以收集Docker容器和中间件的信息。
更多详细信息,请参考官方网站:
https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-modules.html

可以在elastic/beats的官方GitHub中参考beats的docker-compose示例和配置文件(yaml)。
beats/deploy/docker/
beats/deploy/kubernetes/

使用Elastic Stack非常简单!创建Docker容器监控仪表板
尝试在Docker上运行Elastic Stack [Metricbeat部分]
使用docker上的Filebeat nginx模块,在Kibana中显示nginx的日志
快速检查使用Elastic Stack的Auditbeat在Docker上能做些什么
尝试使用Packetbeat-创建Kibana
使用Winlogbeat+Elasticsearch+Kibana可视化Windows事件日志
持久化Docker容器中Elasticsearch的数据

需要满足输出搜索结果的功能要求。

从Kibana 6.x开始,免费的X-Pack Reporting范围内可使用CSV导出功能。

试试Kibana6.x的Reporting CSV导出功能,以便能够导出Kibana搜索结果为CSV文件。进行Elastic Stack Ver 6.0.0的实验。

如果要导入Kibana的仪表板

Kibana仪表盘的导入和导出

如果在搜索日语的系统中使用的话

Elasticsearch 7.2.0 + Kuromoji + Kibana + docker-compose 安装笔记
总结了在日语中使用Elasticsearch的设置
新的形态素解析器”Sudachi”用于Elasticsearch
在nextcloud + Elasticsearch中成功实现了日语全文搜索的笔记

考虑警报通知的方式

调查利用Elasticsearch数据进行警报通知的方法。

是否考虑定期删除Elasticsearch的数据?

Kibana 6.6 中增加了一个名为Index Lifecycle Management(ILM)的功能。它是用于管理Elasticsearch索引的界面。
Index Lifecycle Management(ILM)是通过实施Hot-Warm-Cold架构来管理索引的。
使用Elasticsearch的Index Lifecycle Management(ILM),可以删除指定时间段后的索引。
使用elasticsearch Index lifecycle policies时的操作方法。

使用 Index Lifecycle Management(索引生命周期管理)功能时,Fluentd的Elasticsearch插件也提供了支持。您还需要在Fluentd上安装elasticsearch-xpack gem。

也有一个叫做Curator的工具可用。有关详细信息,请参考以下网站。
似乎可以进行快照和关闭等操作,除了删除之外。
Curator可用于Elasticsearch的维护。

Docker镜像有很多可以使用的选项。其中有一些可以通过指定每天运行一次或指定cron设置文件来挂载卷以设置运行间隔。
https://hub.docker.com/search?q=elasticsearch-curator&type=image

Zabbix服务器和Zabbix Docker监控

– 准备Zabbix服务器
– 在要监视的主机上启动Zabbix Docker Monitoring容器
– 对Zabbix服务器进行配置

请参考以下网站获取更详细信息:
使用Zabbix轻松监控Docker容器
通过使用Zabbix Docker Monitoring来进行容器监控试验

广告
将在 10 秒后关闭
bannerAds