使用Prometheus监控MinIO服务器
Prometheus是一个开源监视平台,可帮助您分析和监视基础结构组件。Prometheus服务器通过抓取HTTP端点从目标收集指标。
Minio现在具有内置支持,可在未经身份验证的端点上导出Prometheus兼容数据。这使Prometheus可以监视Minio服务器的部署,而无需共享服务器凭据,并且无需运行外部Prometheus导出器。
在本文中,我们将研究Minio Prometheus端点下的可用数据点,并了解如何使用这些字段为基于Minio的存储基础架构创建关键警报。最后,我们还将看到如何使用Grafana可视化数据点。
设置Minio和Prometheus
设置Prometheus来抓取Minio端点很简单。按照[如何使用Prometheus监视Minio服务器]指南设置使用Prometheus监视Minio服务器。
请注意,Minio服务器发行版中添加了Prometheus支持RELEASE.2018–05–11T00–29–24Z,因此您需要具有此版本或更高版本。要开始使用Minio,请参阅Minio QuickStart文档。
Minio Prometheus出口商字段
Minio使用Prometheus Go客户端以及内部管理数据来检测和导出数据。这是您可以从Minio Prometheus端点获得的数据点。
正常运行时间(适用于Minio服务器/网关)
process_start_time_seconds:这存储自Minio服务器进程启动以来的时间。您可以将其与Prometheus查询语言一起使用,以轻松生成有趣的见解。例如,使用获得Minio服务器正常运行时间,time() — process_start_time_seconds并使用来检测崩溃循环changes(process_uptime_seconds[30m])
存储(仅适用于Minio服务器实例)
minio_disk_storage_used_bytes :这是Minio服务器使用的总磁盘存储(以字节为单位)。
如果启用了缓存,则可以使用以下附加指标
minio_disk_cache_storage_bytes :这是当前Minio实例可用的总缓存容量(以字节为单位)。
minio_disk_cache_storage_free_bytes :这是当前Minio实例可用的可用缓存容量(以字节为单位)。
请求期限(适用于Minio服务器/网关)
使用Prometheus直方图度量标准类型将请求持续时间信息分为请求类型。该指标的基本名称是minio_http_requests_duration_seconds。您可以添加_bucket到基本名称以获取所有请求类型的累积计数器。因此,minio_http_requests_duration_seconds_bucket将显示如下内容:

其他选项minio_http_requests_duration_seconds_sum显示以秒为单位显示当前服务所有HTTP请求所花费的总时间,并minio_http_requests_duration_seconds_count显示所有已服务请求的总和。
网络统计信息(可用于Minio服务器/网关)
minio_network_received_bytes_total :这显示Minio服务器接收的字节总数(以字节为单位)。
minio_network_sent_bytes_total :这是Minio服务器发送的字节总数(以字节为单位)。
磁盘统计信息(仅适用于Minio服务器实例)
minio_total_disks :这是Minio服务器可用的磁盘总数。
minio_offline_disks :这是脱机磁盘总数。
用例
除非您有一个集成的警报系统,该系统会在发生问题时通知相关的涉众,否则仅靠监视是没有什么用的。值得庆幸的是,普罗米修斯(Prometheus)可以做所有这些以及更多。
将Minio服务器数据插入Prometheus监控后,即可配置Prometheus alertmanager并创建警报规则。这样,您就可以进行生产准备,端到端监视和警报设置。
让我们探讨这种警报设置的一些有趣用例。
磁盘离线时发出警报
使用该minio_offline_disks字段,可以在Minio服务器实例上的磁盘离线时设置警报。这是示例警报规则的外观
groups:- name: Minio rules: - alert: DiskOffline expr: minio_offline_disks != 0 for: 5m labels: severity: page annotations: summary: Disk offline
可用空间小于指定阈值时发出警报
使用该minio_disk_storage_free_bytes字段,可以在Minio服务器实例的可用存储空间不足时设置警报。警报规则示例如下所示
groups:- name: Minio rules: - alert: StorageSpaceExhausted expr: minio_disk_storage_free_bytes <
可用字节数低于10GiB时将发出警报。
当Minio服务器实例处于高负载时发出警报
按照上述示例,您可以使用该minio_http_requests_duration_seconds_bucket字段在Minio服务器处于高负载时设置警报。
格拉法纳
Grafana是用于了解指标的可视化平台。它与Prometheus集成得很好,并有助于可视化分析Prometheus数据。如果到目前为止,您已经将Minio数据输入到Prometheus服务器中。
现在让我们看看如何设置Grafana以从Prometheus中获取数据并通过Grafana仪表板对其进行可视化。
安装Grafana
在基于Ubuntu / Debian的平台上,Grafana已经有deb可用的软件包。使用安装
$ wget https://s3-us-west-2.amazonaws.com/grafana- releases/release/grafana_5.1.2_amd64.deb
$ sudo apt-get install -y adduser libfontconfig
$ sudo dpkg -i grafana_5.1.2_amd64.deb
安装完成后,使用以下命令启动Grafana
$ sudo service grafana-server start
对于其他平台,请参阅Grafana文档。默认情况下,Grafana侦听端口3000。通过上的浏览器访问Grafana UI http://localhost:3000。默认凭据为用户名= admin和密码= admin
创建仪表板
一旦可以访问UI,就可以为Grafana创建数据源,以从Prometheus中获取数据。单击设置>>数据源>>添加数据源。然后在下拉菜单中选择Prometheus作为数据类型,并添加Prometheus URL和数据源名称。
然后,单击左侧栏中的创建>>仪表板。在仪表板内部,您可以添加面板。选择一个图形作为新面板。图形打开后,单击图形顶部菜单栏上的编辑按钮。现在,您可以编辑图形属性。在这里,您可以选择Minio公开的任何数据点和数据源。