Prometheus 与 Grafana 的监控面板搭建

背景

想折腾一套简单的监控方案很久了,最开始是用influxDB + Grafana的方案,距离上次已经过去大概2两年了,至今这套方案已经也还没啥毛病。大概一年前又尝试了用ElasticSearch + Kibana的方案,这套方案应该也是很多人用的,无奈这套方案太消耗资源,之前尝试的过程中导致CPU占用持续在2的样子,而且还ES那个磁盘占用有点吓人。

于是最近迫于对磁盘监控的强硬需求,开始重新部署监控方案,这个期间又开始尝试influxDB的方案,整体都搞定了,但是突然发现还需要自己手动配置面板,于是乎放弃了,改为采用Prometheus的方案。

Prometheus 方案介绍

这个是一个有点特别的方案,大致解释就是有一个中心配置多个机器地址,然后开始轮询形式监控,具体可以查看: https://github.com/prometheus/prometheus 该有的都有了,整体来说应该是完美满足现有的K8S潮流,虽然我对这一套不太喜欢。

Grafana 就没啥可说的了,推荐用这个,性能不错,现在是Go实现的,比很久之前用PHP实现的版本好太大。

接下是安装过程,先从Grafana开始安装开始

官方下载地址: https://grafana.com/grafana/download

有些人喜欢无脑推荐Docker, 如果机器资源足够确实可以尝试下,不过我就安心用rpm形式安装就好,毕竟本身就没有依赖。 https://grafana.com/docs/installation/rpm/ 好处就是系统直接更新,资源占用少。

配置过程中记得配置下DB和域名,效果会好一些。

Grafana

Prometheus 安装

下载地址: https://github.com/prometheus/prometheus/releases

一般我会推荐直接下载发行版去安装,毕竟官方提供了所有的二进制包,而且就是一个文件,又没啥依赖,如果喜欢Docker也可以,直接一条命令的问题。

安装完成后访问页面就比较简单了,默认端口9090.

prometheus

安装完成后就可以说有一个大概的环境了。

node_exporter 数据导出工具

这货的作用: 提供每一台机器的当前系统状态。

下载地址: https://github.com/prometheus/node_exporter/releases

还是上面的一样,这个完全是轻量级的服务,跑docker没必要,除非机器真是太闲了。

这个还要注意配置一下systemed的环境,参考官方的example:

vim /etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter

[Service]
User=www
EnvironmentFile=/etc/sysconfig/node_exporter
ExecStart=/opt/node_exporter/node_exporter $OPTIONS

[Install]
WantedBy=multi-user.target

vim /etc/sysconfig/node_exporter 这里可以考虑更改绑定地址

OPTIONS="--web.listen-address="0.0.0.0:9100""

试试访问 http://0.0.0.0:9100/metrics 应该可以获取到当前的数据,这就是关键了。

配置 Prometheus

上面在几台机器上安装完 node_exporter 后,就可以将对应的机器地址添加到 Prometheus 中了,配置如下:

vim prometheus.yml

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['127.0.0.1:9090']

  - job_name: 'host1'
    static_configs:
    - targets: ['127.0.0.1:9100']

  - job_name: 'host2'
    static_configs:
    - targets: ['10.11.1.131:9100']

  - job_name: 'host3'
    static_configs:
    - targets: ['10.11.1.72:9100']

比如我这里配置了三台机器,最终的效果就是如图这样:

Prometheus Targets

配置 Grafana 展示 Prometheus 的数据

如果需要从头开始配置一个个面板有点太难了,于是就有了现成的第三方

官方的参考链接: https://grafana.com/grafana/dashboards/8919

配置之前,你还需要手动配置一个数据源:

Grafana Prometheus DataSource

然后按照官方的配置安装,于是会非常顺利出现这样一个控制面板:

Gen10 Grafana

当前还没有任何评论

写下你最简单的想法