新鲜出炉prometheus(prometheus监控)
前言PrometheusPrometheus 是有 SoundCloud 开发的开源监控系统和时序数据库,基于 Go 语言开发通过基于 HTTP 的 pull 方式采集时序数据,通过服务发现或静态配置去获取
前言PrometheusPrometheus 是有 SoundCloud 开发的开源监控系统和时序数据库,基于 Go 语言开发通过基于 HTTP 的 pull 方式采集时序数据,通过服务发现或静态配置去获取要采集的目标服务器,支持多节点工作,支持多种可视化图表及仪表盘。
贴一下官方提供的架构图:

Pormetheus 几个主要模块有,Server,Exporters,Pushgateway,PromQL,Alertmanager,WebUI等,主要逻辑如下:Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。
当新拉取的数据大于配置内存缓存区时,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)Prometheus 配置 rules,然后定时查询数据,当条件触发时,会将 alert 推送到配置的 Alertmanager。
Alertmanager 收到警告时,会根据配置,聚合、去重、降噪等操作,最后发送警告可以使用 API,Prometheus Console 或者 Grafana 查询和聚合数据GrafanaGrafana 是一个开源的度量分析及可视化套件。
通过访问数据库(如InfluxDB、Prometheus),展示自定义图表ExporterExporter 是 Prometheus 推出的针对服务器状态监控的 Metrics 工具目前开发中常见的组件都有对应的 exporter 可以直接使用。
常见的有两大类,一种是社区提供的,包含数据库,消息队列,存储,HTTP服务,日志等,比如 node_exporter,mysqld_exporter等;还有一种是用户自定义的 exporter,可以基于官方提供的 Client Library 创建自己的 exporter 程序。
每个 exporter 的一个实例被称为 target,Prometheus 通过轮询的方式定期从这些 target 中获取样本数据。

原理简介

安装数据收集器 node-exporter安装 node-exportercd /optwget tar xvf node_exporter-1.4.0-rc.0.linux-amd64.tar.gzmv node_exporter-1.4.0-rc.0.linux-amd64 node_exportermv node_exporter /usr/local/
运行如下命令测试 node-exporter 收集器启动情况,正常情况下会输出服务端口/usr/local/node_exporter/node_exporter添加到系统服务vim /etc/systemd/system/node_exporter.service。
添加如下内容[Unit]Description=mysqld_exporterAfter=network.target[Service]ExecStart=/usr/local/node_exporter/node_exporterRestart=on-failure[Install]WantedBy=multi-user.target
加载并重启服务# 加载配置systemctl daemon-reload# 启动服务systemctl restart node_exporter.service# 查看服务状态systemctl status node_exporter.service# 配置开机启动systemctl enable node_exporter.service
查看数据收集情况重新起一个终端,查看数据收集情况也可以在浏览器中查看curl http://127.0.0.1:9100/metrics安装 prometheus 和 grafana安装 docker&docker-compose。
本文介绍的安装方法是基于 docker-compose 的,所以需要先安装相关 docker 环境相关方法可以见笔者的其他文章,本文中不做详细介绍安装 prometheus 和 grafana可以直接 clone 这个项目来快速搭建:。
https://github.com/FX-Max/docker-install-everything/tree/master/prometheus该项目是笔者弄的一个使用 docker-compose 搭建软件开发常见服务的项目,大家觉得有帮助,可以帮忙点个 star,感谢。
根据实际情况,修改 prometheus.yml 文件中的内容,将ip修改为上面安装了 node-exporter 的服务器ip即可然后在该目录下执行 docker-compose up -d即可,docker ps
查看服务启动情况CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES6f360e9ab242 grafana/grafana "/run.sh" 25 hours ago Up 25 hours 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp grafana97b92b65aca6 prom/prometheus "/bin/prometheus --c…" 25 hours ago Up 21 hours 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp prometheus3f5906f07bf6 prom/pushgateway "/bin/pushgateway" 25 hours ago Up 25 hours 0.0.0.0:9091->9091/tcp, :::9091->9091/tcp pushgatewayf556168c1b8b prom/alertmanager "/bin/alertmanager -…" 25 hours ago Up 25 hours 0.0.0.0:9093->9093/tcp, :::9093->9093/tcp alertmanager。
docker-compose.yml 内容:prometheus.yml 内容:查看 prometheus访问 http://127.0.0.1:9090/targets,效果如下,上面我们通过 node_exporter 收集的节点状态是 up 状态。

配置 Grafana访问 http://127.0.0.1:3000,登录 Grafana,默认的账号密码是 admin:admin,首次登录需要修改默认密码。




添加 prometheus 服务地址,此处由于服务是基于 docker-compose 构建的,没有填写ip,直接填写服务名即可。添加监控模版

输入官方模版 id,1860,点击 load。然后按照下图选择确认即可。

导入成功后,会自动跳转到监控面板页面,如下图。

结语本文简单介绍了 prometheus + grafana 服务搭建流程,初步跑通了整个服务当然它还有很多功能,后续笔者会开新的文章来分享参考文档官方模板库:https://grafana.com/grafana/dashboards/。
node 模板:https://grafana.com/grafana/dashboards/1860MySQL 模板:https://grafana.com/grafana/dashboards/7362
docker 搭建 prometheus&grafana:https://blog.51cto.com/keep11/4261521来源:https://www.cnblogs.com/immaxfang/p/16621417.html
举报/反馈
- 标签:
- 编辑:李松一
- 相关文章
-
不要告诉别人prometheus(prometheus监控)
自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。现在,它是一个独立的开源项目,并且独…
-
太疯狂了image(image是什么意思啊)
在我们的电脑中,图片可以储存为很多格式,摄影师常见的包括nef、tiff、dng、psd、jpg等等。1.原厂Raw格式原厂Raw文件,直接记录…
- 学到了PCS(pcs是什么单位)
- 这都可以?PCS(pcs是什么单位)
- 这都可以description(description中文翻译)
- 这都可以cms(cms是什么单位)
- 奔走相告cms(cms是什么单位)