总所周知Zabbix在监控界占有不可撼动的地位,功能强大。但是对容器监控显得力不从心。Prometheus则解决了容器的监控问题。 采集的监控数据均以metric(指标)形式保存在时序数据库中(TSDB),每一条时间序列由 metric 和 labels 组成,每条时间序列按照时间的先后顺序存储它的样本值。 Prometheus通过HTTP协议周期性抓取被监控组件的状态,被监控组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。 这样做非常适合做虚拟化环境监控系统,比如Vm、Docker、Kubernetes等。 服务后可打开浏览器尝试访问,http://ip:9090 (IP为部署的服务器ip,本机部署则直接127.0.0.1),如果顺利的话你将访问到如下页面 Web控制台 管理页面简介 Alert:用于配置告警规则
部署prometheus监控平台 安装部署prometheus服务监控端 监控一个远端机器 监控一个服务—mysql 一、软件获得 官方网站:https://prometheus.io -2.16.0.linux-amd64.tar.gz 远端主机监控插件(类似于zabbix-agent): wget https://github.com/prometheus/node_exporter /prometheus --config.file=prometheus.yml & 四、启动测试 看到这个页面说明prometheus启动成功了,默认监控了自己,我们来看一下本机的监控状态 点击 通过这个URL我们可以知道prometheus把监控的数据都统一存放在一起,然后生成一个web页面,用户可以通过web页面查看相关的数据,这些数据遵循了时序数据库的格式,也就是key=value的形式. 这些数据就是我们的监控指标,只不过现在我们还没有办法分析,借助图形展示才会更方便阅读 prometheus显示同样也提供了图表,可以通过图表很直观的看到监控项的状态,只不过自带的图形实在是不怎么好看。
6m20s mon-prometheus-operator-alertmanager ClusterIP 10.101.189.189 <none> 9093/TCP 6m20s mon-prometheus-operator-operator ClusterIP 10.100.215.55 <none> 8080/TCP,443/ TCP 6m21s mon-prometheus-operator-prometheus ClusterIP 10.105.9.119 <none> 9090/TCP 6m21s prometheus-operated ClusterIP None release: mon sessionAffinity: None type: NodePort status: loadBalancer: {} 图片5.png 图片6.
详细介绍见官网:https://prometheus.io/docs/introduction/overview/ 部署环境 CDH5.16.2 CentOS 7 Prometheus部署在CDH集群的工具节点上 安装Prometheus 部署服务器上建立文件夹并进行解压 tar -zxvf prometheus-2.17.2.linux-amd64.tar.gz -C /opt/ ? ? 访问部署机器的9091端口 ? 以Spark为例,批处理任务可以使用SparkListener进行监控指标的抓取,流应用可以使用StreamListener进行监控,将这些指标采集到Prometheus后,可以实现作业级别的细粒度监控 Flink亦支持Prometheus抓取监控指标。再依赖于Prometheus提供的各种Exporter如kafka ES。目的是用Prometheus+Grafana来构建一套大数据的监控平台。
Prometheus是继kubernetes第二个从CNCF中毕业的项目,个人也是非常的喜欢这款通过数据指标发现和预测告警的开源监控平台,官方的话就不多说了,根据官网的介绍有以下功能,但是有些简短的概括了你也不一定知道 Prometheus之白话文一段 实现高纬度的数据模型 时间序列数据通过 metric 名和键值对来区分,这里你可以区分多(隔离)环境的监控指标。 上面整那么多的意思就是除了 Zabbix,Prometheus也是没有什么不能监控的,甚至做的更简单,更人性化,但是这里不会介绍太多Prometheus的指标类型,网上很多,就不想整了, https: Prometheus之少不了的部署篇 ServerName ServerVersion Functions 配置文件 Promethues v2.12.0 数据处理 prometheus.yaml influxdb 监控平台就基本上部署完成了,接下来就是要看看自己监控哪些服务了,根据自己的监控对象接入到Prometheus中。
1、官网下载地址 推荐下载 prometheus 1.8以后的版本,根据不同的操作系统选择自己需要的下载包 https://prometheus.io/download/ 2、创建数据目录 及系统目录 wget https://github.com/prometheus/prometheus/releases/download/v2.11.1/prometheus-2.11.1.linux-amd64 User=root ExecStart=/data/prometheus/prometheus \ --config.file=/data/prometheus/prometheus.yml \ http://localhost:9090 alertmanager http://localhost:9093 至此部署完成并送上prometheus架构 ! 后篇在讲解如何配置监控及报警
上回已经讲好快速部署prometheus alertmanager 这回接着如果配置报警,本文我主要以接入mysql报警为案例 进行全面的讲解 软加载监控报警 1、首先讲解一下prometheus.yml =":11000" & [root@grafana prometheus]# cat /usr/local/prometheus/mysql/.my.cnf [client] user=DB_USER password=DB_PASSWORD host=DB_URL 3.4 查看prometheus下面的状态 监控的数据就会出现 state UP 状态证明prometheus已经捕获得DB信息 证明已经连接成功 3.5 测试报警webhook报警 首先这个需要要使用prometheus这个语法 以up为例 http://prometheus_server_ip:9093/graph? prometheus 2、file_sd_config 方法手工配置较为麻烦 随着机器数量增加不足 较为麻烦 3、prometheus本身 对分布式支持不太友好(笔者自己认为) 最后谢谢过程中 帮助我的
部署 6、使用 Grafana 体验 Kubernetes 集群监控 6.1、使用 kubectl port-forward 转发 6.2、修改 Service Type 类型为 NodePort 6.3 Prometheus: Prometheus 资源是声明性地描述 Prometheus 部署的期望状态。 Operator 部署 Kubernetes 集群部署完毕之后,我们就可以开始执行 Prometheus Operator 部署了。 10.106.114.242 <none> 8080/TCP 52m 6、使用 Grafana 体验 Kubernetes 集群监控 好了,服务都正常启动起来了, 本地浏览器访问 http://127.0.0.1:9090 即可查看 Prometheus 默认 UI 页面,跟上一篇文章 初试 Prometheus + Grafana 监控系统搭建并监控 Mysql
Prometheus Shell命令 tar zxf prometheus-2.9.2.linux-amd64.tar.gz -C /usr/local vim /etc/systemd/system/ prometheus.service [Unit] Description=Prometheus Server Documentation=https://prometheus.io/docs/introduction 2.9.2.linux-amd64/prometheus --config.file=/usr/local/prometheus-2.9.2.linux-amd64/prometheus.yml --storage.tsdb.path 查看监控数据(https://grafana.com/dashboards/9276) ? 告警 模拟node_exporter宕机 systemctl stop node_exporter ? 以上就完成了一个简单的监控告警配置!特别感谢网上的一些文档。参考文档:https://jianshu.com/p/e59cfd15612e
监控完全体 = Prometheus + Node Exporter + cadvisor + grafana Prometheus 作为轮转数据库,从各个服务器采集数据; node-exporter 部署 Promoetheus# 准备配置文件 /data/docker/prometheus/prometheus.yml global: scrape_interval: 15s # By scrape_interval: 5s static_configs: - targets: ['localhost:9090'] # 采集node exporter监控数据 'main' option listen_ipv6 '0' option listen_port '9100' option listen_interface -device=/dev/kmsg \ --net=myDefault \ songtianlun/cadvisor:v0.46.0 $ curl http://localhost:8080 部署
Prometheus Server,同时监控这些自定义资源事件的变化来做相应的处理,是整个系统的控制中心。 Prometheus: Prometheus 资源是声明性地描述 Prometheus 部署的期望状态。 Operator 部署 Kubernetes 集群部署完毕之后,我们就可以开始执行 Prometheus Operator 部署了。 10.106.114.242 <none> 8080/TCP 52m 6、使用 Grafana 体验 Kubernetes 集群监控 好了,服务都正常启动起来了, 本地浏览器访问 http://127.0.0.1:9090 即可查看 Prometheus 默认 UI 页面,跟上一篇文章 初试 Prometheus + Grafana 监控系统搭建并监控 Mysql
虚拟化运维KubernetesPrometheus Kubernetes集群监控-安装部署Prometheus Operator 王先森2023-12-252023-12-25 Prometheus Operator 介绍 Prometheus Operator:为监控 Kubernetes 资源和 Prometheus 实例的管理提供了简单的定义,简化在 Kubernetes 上部署、管理和运行 Prometheus Prometheus Operator 的核心特性是 watch Kubernetes API 服务器对特定对象的更改,为 Kubernetes 提供了对 Prometheus 机器相关监控组件的本地部署和管理方案 ,该项目的目的是为了简化和自动化基于 Prometheus 的监控栈配置,主要包括以下几个功能: Kubernetes 自定义资源:使用 Kubernetes CRD 来部署和管理 Prometheus Prometheus 监控目标配置:基于熟知的 Kubernetes 标签查询自动生成监控目标配置,无需学习 Prometheus 特地的配置。
它适用于以机器为中心的监控以及高度动态的面向服务架构的监控。在微服务的世界中,Prometheus的多维度数据收集和查询非常强大。 5 目标 Google指出,监控分为白盒监控和黑盒监控之分。 白盒监控:通过监控内部的运行状态及指标判断可能会发生的问题,从而做出预判或对其进行优化。 Prometheus监控的目标如下: 根据历史监控数据,对未来做出预测 发生异常时,及时报警,或做出相应措施 根据监控报警及时定位问题根源 通过可视化图表展示,便于直观获取信息 6 部署过程 本次部署一台 Node_exporter 部署Node_exporter采集服务器资源信息。 在Prometheus文件夹下创建node.json文件,添加需要监控的主机列表。
第6章 警报管理 Prometheus是一个按功能划分的平台,指标的收集和存储与警报是分开的。警报管理功能由名为Alertmanager的工具提供,该工具是监控体系中的独立组件。 __tcp.example.com SRV记录以获得Alertmanager的主机名 提示:你需要重新加载或重新启动Prometheus,以启用Alertmanager配置 6.6.2 监控Alertmanager 与Prometheus一样,Alertmanager暴露了自身的相关指标 代码清单:监控Alertmanager的Prometheus作业 - job_name: 'alertmanager' static_configs important; background-color: #f6f6f6; margin: 0; padding: 0;" bgcolor="#f6f6f6">