监控篇1-Prometheus+Grafana+Alertmanager+Node_exporter

监控篇1-Prometheus+Grafana+Alertmanager+Node_exporter

当我们拥有主机,想使用一套开源软件来监控主机的服务、告警,如何搭建使用呢?本篇开启Prometheus+Grafana相关教程。

1. 监控体系

1.1 主要服务

  • Prometheus:开源监控报警系统和时序列数据库(TSDB)
  • Alertmanager:Prometheus体系中告警的统一处理中心。提供了多种内置第三方告警通知方式,同时还提供了对Webhook通知的支持。
  • Grafana:监控仪表系统,支持多种数据源。 监控仪表系统效果图

1.2 流程说明

Grafana添加Prometheus数据源,通过加载相应的模板文件,展现可视化的数据在仪表盘里。

Prometheus是基于Pull模型的架构方式,通过配置文件配置相关exporter服务的地址,获取相应的数据,同时支持对监控数据查询、聚合。

通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息。

Alertmanager流程图

1.3 Exporter服务

范围 常用Exporter
数据库 MySQL Exporter,Redis Exporter,MongoDB Exporter,MSSQL Exporter等
硬件 Node Exporter,Apcupsd Exporter,IoT Edison Exporter, IPMI Exporter等
消息队列 Kafka Exporter,RabbitMQ Exporter,Beanstalkd Exporter,NSQ Exporter等
存储 Ceph Exporter, Gluster Exporter, HDFS Exporter, ScaleIO Exporter等
HTTP服务 Nginx Exporter,Apache Exporter,HAProxy Exporter等
API服务 AWS ECS Exporter,Docker Cloud Exporter,Docker Hub Exporter,GitHub Exporter等
日志 Fluentd Exporter, Grok Exporter等
监控系统 Collectd Exporter,Graphite Exporter,InfluxDB Exporter,Nagios Exporter,SNMP Exporter等
其它 Jenkins Exporter,Blockbox Exporter,JIRA Exporter,Confluence Exporter等

2. 安装部署

2.1 服务统一目录

为方便统一放置服务,这里统一放在monitordir目录下,大家可以根据自己实际情况处理。

$ mkdir -p ~/monitordir

PS:由于Alertmanager涉及的东西也不少,本篇不展开描述。

2.2 安装prometheus

$ cd ~/monitordir 
$ wget -c https://github.com/prometheus/prometheus/releases/download/v2.38.0/prometheus-2.38.0.linux-amd64.tar.gz
$ tar zxf prometheus-2.38.0.linux-amd64.tar.gz
$ cd prometheus-2.38.0.linux-amd64
$ nohup ./prometheus --config.file=prometheus.yml --web.listen-address=127.0.0.1:19090  --web.enable-lifecycle &

是否启动成功可以看当前目录下的nohup.out文件,启动web的监听地址是127.0.0.1:19090,注意如果想给外部使用,不要使用127.0.0.1 。

2.3 安装node_exporter

$ cd ~/monitordir 
$ wget -c https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
$ tar zxf node_exporter-1.3.1.linux-amd64.tar.gz
$ cd node_exporter-1.3.1.linux-amd64
$ nohup ./node_exporter  --web.listen-address=":19100" &

是否启动成功可以看当前目录下的nohup.out文件,启动web的监听地址是:19090

2.4 部署Grafana

  • 部署
$ cd ~/monitordir 
$ wget -c https://dl.grafana.com/oss/release/grafana-8.5.1.linux-amd64.tar.gz
$ mv grafana-8.5.1.linux-amd64 grafana
$ cd grafana/bin
$ nohup  ./grafana-server start >server.out 2>&1 &
  • 默认启动端口是3000端口,一般建议改成其他端口,如何修改:
$ cd ~/monitordir/grafana/conf
$ vim defaults.ini

http_port = 13000

将服务kill掉之后,重启即可。

  • 查看

在跑起来服务之后,到你的浏览器中,访问http://localhost:3000 ,应该就可以看到 Grafana 跑起来的初始登录界面。

初始的用户名是 admin,密码:admin,进去后修改密码。

2.5 关联配置

上面我们已经安装启动服务了,那么下面将介绍如何关联。

2.5.1 prometheus获取node_exporter

$ cd ~/monitordir/prometheus-2.38.0.linux-amd64/conf
$ vim prometheus.yml 


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:19090"]

  - job_name: 'node_local'
    static_configs:
    - targets: ['localhost:19100']

修改的地方:

  • 因为prometheus修改成了19090,所以这里的端口需要修改。
  • 增加job获取node_exporter的数据,添加新的配置项。注意配置项格式要正确。

生效:

由于我们之前启动的时候使用了--web.enable-lifecycle,那么我们只需要这么做,就可以动态加载配置文件:

$ curl -XPOST http://localhost:19090/-/reload

2.5.2 Grafana添加prometheus数据源

  • 添加Data Sources

Grafana添加prometheus数据源1

  • 点击Add data source

Grafana添加prometheus数据源2

  • 选择Prometheus

Grafana添加prometheus数据源3

  • 配置Prometheus信息,点击save & test

Grafana添加prometheus数据源4

  • 添加成功后,我们可以看到有这个数据源

Grafana添加prometheus数据源5

2.5.3 Grafana添加模板

  • 导入模板import

Grafana添加模板1

  • 配置模板

Grafana添加模板2

这里我们可以去官网查查模板:https://grafana.com/grafana/dashboards

这里只是举例模板,实际模板请自行确认模板安全。

Grafana添加模板3

点击Copy ID to clipboard得到ID值。

  • 配置模板ID

Grafana添加模板4

当然你也可以用json内容去加载,这里只是简单举例。

  • 按照步骤来,最后可以看到可视化界面。

Grafana添加模板5

刚开始加完后,需要等一会才会收集到后台的数据,从而展示相关数据。


本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!

欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。

公众号二维码

updatedupdated2022-08-302022-08-30