04|如何快速搭建Prometheus系统?
通用架构回顾
部署 Prometheus
- 深入了解
- 翻译
- 解释
- 总结
本文详细介绍了如何快速搭建Prometheus系统,并包括了部署Alertmanager和Grafana的步骤。文章首先回顾了监控系统的通用架构,并指出Prometheus相对容易搭建的原因在于其将服务端组件整合成一个进程,大幅减少了组件数量。接着,文章详细介绍了如何部署Prometheus模块,包括下载、解压、配置启动参数等步骤。然后,文章讲解了如何部署Node-Exporter进行机器监控,包括下载、启动、配置到prometheus.yml中等步骤。此外,文章还介绍了配置Alertmanager的过程,包括全局SMTP配置和收件人设置。最后,文章介绍了如何部署Grafana作为数据可视化工具,并展示了如何配置数据源和导入Dashboard。整体而言,本文以实操为主,通过具体的部署和配置步骤,帮助读者快速了解了如何搭建Prometheus系统,并且展示了Prometheus生态相关组件的部署过程。
《运维监控系统实战笔记》,新⼈⾸单¥59
全部留言(23)
- 最新
- 精选
- 凡人置顶秦老师,你好,文章中 有两个小细节问题 1. 文章中没有提到 需要修改 prometheus.yml 中的 # - alertmanager:9093。 2. 163邮箱的smtp协议 非ssl端口号是25 (https://note.youdao.com/ynoteshare/index.html?id=f9fef46114fb922b45460f4f55d96853)
作者回复: 👍🏻 prometheus.yml中确实需要配置alertmanager的地址,根据自己的环境的情况来配置。smtp确实也是支持ssl和非ssl。
2023-01-29归属地:安徽22 - 隆哥置顶①部署了prometheus,无法通过IP+9090访问,有可能是防火墙没有关闭,我使用的是CentOS系列 systemctl stop firewalld.service systemctl disable firewalld.service ②添加node_exporter在Status -> Targets无法查看,prometheus修改配置需要每次重新加载读取 systemctl restart prometheus ③如何添加报警规则 请在应用目录prometheus下创建一个rules文件夹,然后在文件夹中添加node_exporter.yml [root@bogon prometheus]#mkdir -p rules && cd rules && vim node_exporter.yml 添加规则内容之后,配置prometheus.yml,这样子目录更美观,新重启服务systemctl restart prometheus rule_files: - "rules/node_exporter.yml" ④为什么我grafana控制面板有时候图标会出现断层呢? 如果觉得教程麻烦,提供一键docker-compose剧本 version: '3' networks: monitor: driver: bridge services: prometheus: image: prom/prometheus container_name: prometheus hostname: prometheus restart: always volumes: - /data/prometheus/data:/prometheus - /data/prometheus/rules:/etc/prometheus/rules - /data/prometheus/conf/prometheus.yml:/etc/prometheus/prometheus.yml ports: - "9090:9090" networks: - monitor alertmanager: image: prom/alertmanager container_name: alertmanager hostname: alertmanager restart: always volumes: - /data/alertmanager/config/alertmanager.yml:/etc/alertmanager/alertmanager.yml depends_on: - prometheus ports: - "9093:9093" networks: - monitor node-exporter: image: quay.io/prometheus/node-exporter container_name: node-exporter hostname: node-exporter restart: always environment: TZ: Asia/Shanghai volumes: depends_on: - prometheus ports: - "9100:9100" networks: - monitor grafana: image: grafana/grafana container_name: grafana hostname: grafana restart: always volumes: - /data/grafana/data:/var/lib/grafana depends_on: - prometheus ports: - "3000:3000" networks: - monitor
作者回复: 👍 数据断了,可能是没有采集到,使用range query,查一下具体的指标,看看数据是否连续,比如 cpu_usage_idle[10m],使用Table视图查看,就能看到10分钟内具体的监控数据是什么,根据时间戳可以看出数据是否连续
2023-01-16归属地:福建1 - hshopeful置顶关于 pull 和 push 模式,个人的一些理解,有错误或遗漏的,希望老师指正: pull 模式的优点: 1、pull 模式很容易判断监控对象的存活性,push 模式很难 2、pull 模式的监控配置在服务端,比较容易统一控制,push 模式的监控配置在客户端,需要引入类似配置中心的组件,由客户端去拉取监控配置,从配置变更到配置生效的难易程度和时效性,pull 模式占优 3、pull 模式可以按需获取监控指标,push 模式只能被动接收监控指标,当然 push 模式也可以在服务端增加指标过滤规则 4、pull 模式下,应用与监控系统的耦合比较低,push 模式下,应用于监控系统的耦合性较高 push 模式的优点: 1、针对移动端的监控,只能使用 push 模式,不能使用 pull 模式 2、push 模式支持天然的水平扩展,pull 模式水平扩展比较复杂 3、push 模式适合短生命周期任务,pull 模式不适合 4、pull 模式依赖服务发现模块,push 模式不依赖 5、push 模式只用保证网络的正向联通(能够发送数据到服务端),比较简单,而 pull 模式需要保证网络的反向联通(服务端能够抓取多种多样的客户端暴露的接口),相对复杂 6、pull 模式需要暴露端口,安全性存在隐患,而 push 模式不存在 7、在聚合场景和告警场景下,push 模式的时效性更好
作者回复: 挺全面的 👍 pull模式优点2,不是太准确,有的时候,即便是pull模式,很多采集配置也是需要放在采集侧的,比如mysqld_exporter,监控系统这边(prometheus.yml)中只需要配置要拉取的mysqld_exporter的地址,但是mysqld_exporter要采集mysql的指标,其实mysqld_exporter里也有不少相关的配置
2023-01-16归属地:湖北214 - Amosヾ关于告警有一些建议和疑问: 1、告警分级(提示、严重、致命)全部邮件推送很难体现优先级,尤其是致命告警应该电话处理 2、目前社区是否有成熟的告警推送工具,比如企业微信机器人、钉钉机器人,这些需要自行编码实现?电话告警该如何实现呢?
作者回复: 第8讲介绍的Nightingale内置钉钉,飞书,企微机器人的推送方式,好像还有个prometheus-alert工具可以去github搜一下支持挺多告警媒介。电话告警的话,一般有个电话通道API,但是不像邮件有smtp协议级别的规范,所以一般需要自定义一小段代码做电话告警
2023-01-22归属地:江苏3 - AprilPrometheus没有提供很多管理上的API,又不想引入Service Discovery, 在targets变化后直接操作prometheus.conf有什么更为简单的方式吗?
作者回复: 使用基于文件的发现方式,然后通过配置管理工具,或者自己手撸,管理targets配置文件,targets配置文件变化之后,prometheus会自动重新加载,这种方式最为简单
2023-01-16归属地:北京22 - 那时刻请问老师,在k8s里部署prometheus,有哪些比较好的方式呢。
作者回复: 有这么几个方式可以看看选择一下: * https://prometheus-operator.dev/ * https://devapo.io/blog/technology/how-to-set-up-prometheus-on-kubernetes-with-helm-charts/ * https://phoenixnap.com/kb/prometheus-kubernetes
2023-01-17归属地:北京1 - 隆哥为啥不用docker形式来做实践呢,我觉得systemctl这种托管还是对主机入侵比较大。
作者回复: 这都是落地细节了,其实没有那么关键,二进制的方式能够让大家了解更多细节,容器的话,很多公司其实没有在用。 通常来讲,懂得如何使用二进制部署,一般也能自行搞定容器;懂得容器部署,未必能搞定二进制方式部署。
2023-01-16归属地:福建1 - Geek_df0d4d请问生产上有什么prometheus的高可用方案吗
作者回复: 国内来看,用VictoriaMetrics和Thanos作为Prometheus增强方案的居多
2023-04-06归属地:上海 - 孙宇翔老师您好,我想监控像摄像机这类设备的在线、离线,还有流量等数据,普罗米修斯是否合适,配置里面该怎么设置,完全没头绪。。。
作者回复: 需要看看这些设备是怎么暴露监控数据的,摄像机我不知道,比如打印机是走snmp,就通过snmp的采集插件去拉数据就可以了
2023-03-02归属地:浙江3 - Matthew老师,文章中提到的几个软件安装包,都需要从 github 上下载,但是下载速度太慢。能否提供下国内镜像源的地址呢?
作者回复: 国内估计没有
2023-02-06归属地:江苏2