当我们拥有主机,想使用一套开源软件来监控主机的服务、告警,如何搭建使用呢?本篇开启Prometheus+Grafana相关教程。
1. 监控体系
1.1 主要服务
- Prometheus:开源监控报警系统和时序列数据库(TSDB)
- Alertmanager:Prometheus体系中告警的统一处理中心。提供了多种内置第三方告警通知方式,同时还提供了对Webhook通知的支持。
- Grafana:监控仪表系统,支持多种数据源。
1.2 流程说明
Grafana添加Prometheus数据源,通过加载相应的模板文件,展现可视化的数据在仪表盘里。
Prometheus是基于Pull模型的架构方式,通过配置文件配置相关exporter服务的地址,获取相应的数据,同时支持对监控数据查询、聚合。
通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向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
- 点击
Add data source
- 选择
Prometheus
- 配置Prometheus信息,点击
save & test
- 添加成功后,我们可以看到有这个数据源
2.5.3 Grafana添加模板
- 导入模板
import
- 配置模板
这里我们可以去官网查查模板:https://grafana.com/grafana/dashboards
这里只是举例模板,实际模板请自行确认模板安全。
点击Copy ID to clipboard
得到ID值。
- 配置模板ID
当然你也可以用json内容去加载,这里只是简单举例。
- 按照步骤来,最后可以看到可视化界面。
刚开始加完后,需要等一会才会收集到后台的数据,从而展示相关数据。
本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!
欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。