基于grafana+prometheus搭建基础设施监控

背景

prometheus是一个开源的流行监控报警系统,使用go语言开发,在docker社区使用非常多,是google borgMon的开源版本,也是k8s后CNCF第二大开源项目。

内容介绍

本期将依次按照过程搭建一个grafana+prometheus的服务器监控,内容偏向实操,主要有如下的内容:
1.下载需要的各项组件。
2.部署和配置
3.添加监控指标

安装环境介绍

本地环境是linux,所以都使用tar.gz安装,以避免各种依赖问题和方便配置。

部署prometheus

https://prometheus.io/download/下载适当版本的安装包,解压部署到机器上,可以使用./prometheus启动,然后访问默认9090端口,查看结果。如下图:

prometheus 9090

部署node_exporter

prometheus使用各种exporter来采集数据,这里的node_exporter用来记录服务器运行的基础指标,如CPU,内存等等。在https://prometheus.io/download/#node_exporter下载合适的node_exporter安装包,解压并安装,如上执行./node_exporter启动服务,默认端口9100,访问9100端口,正常的话可以获得指标。

node_exporter 9100

部署grafana

https://grafana.com/grafana/download下载合适的安装包,建议使用tar.gz包。下载完成后解压,进入到bin/目录,执行./grafana-server启动,默认端口3000,首次访问会要求输入密码(默认admin/admin)。

添加监控配置

到此需要的组件部署完毕,这里我们将node_exporterprometheus串起来,让数据流通。修改prometheus的配置文件prometheus.yml,在job部分添加targets,如下添加host:port,建议添加ip。

scrape_configs:
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090','localhost:9100']

设置完成后记得重启prometheus

添加grafana控制台

再回到grafana,包括两个步骤:添加数据源和导入控制台。

  1. 添加prometheus数据源
    configuration->data sources中添加,选择prometheus,端口默认9090。保存即可,如下图。

    data sources

  2. 添加控制台
    控制台可以通过json文件的形式导入,社区已经有非常多样式控制台给我们选择。在添加部分选择import,然后在https://grafana.com/grafana/dashboards找合适的控制台模板。这里是node_exporter相关的,使用了https://grafana.com/grafana/dashboards/11074。由于json比较大,加上可能网络的问题,建议将json下载到本地,然后从文件导入。完成后可以在dashboards板块开到了,如下就是最终的效果,刚开始可能没有数据,需要稍后一段时间。

    load

    dashboard

总结

以上就是本期的所有内容,可以看到相对容易搭建了一个基础设施的监控,且没有其他特殊依赖,grafana的控制台展现也比较美观大气,更重要的是,根据不同业务需求,可以很容易找到合适的exporter和控制台模板,即便自己开发exporter,也比较容易入门。
prometheus等的监控数据是存储在本地的,而且我们看到如果要添加监控实例,需要修改文件并重启服务。对于前一个问题,prometheus支持远程的存储,当然这会涉及到更多关于稳定性,可用性,一致性等分布式部署的挑战;而第二个问题,有提到使用etcd+confd等做配置的动态加载,prometheus支持file_sd_configs选项。

参考

[1]. prometheus
[2]. grafana
[3]. 多种dashboar模板
[4]. 多种exporter
[5]. Complete MySQL dashboard with Grafana & Prometheus

你可能感兴趣的:(基于grafana+prometheus搭建基础设施监控)