美文网首页
基于grafana+prometheus搭建基础设施监控

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

作者: 西5d | 来源:发表于2020-10-28 11:51 被阅读0次

    背景

    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=<job_name>` 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搭建基础设施监控

          本文链接:https://www.haomeiwen.com/subject/lxmqvktx.html