easyui网站开发实战 pdf,让别人访问我的网站,郑州做网站推广电话,申请建设工作网站的函Prometheus介绍和安装
1. Prometheus介绍
Prometheus#xff08;普罗米修斯#xff09;是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目#xff0c;拥有非常活跃的开发人员和用户社区。为强调开源及独立维护#xff0c;Prometheus于2016年加入云原生云…Prometheus介绍和安装
1. Prometheus介绍
Prometheus普罗米修斯是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目拥有非常活跃的开发人员和用户社区。为强调开源及独立维护Prometheus于2016年加入云原生云计算基金会CNCF成为继Kubernetes之后的第二个托管项目。Prometheus基于时序数据库 非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。
官方网站https://prometheus.io
项目托管https://github.com/prometheus Prometheus 特点
1多维数据模型由度量名称和键值对标识的时间序列数据
2PromQL一种灵活的查询语言可以利用多维数据完成复杂的查询
3不依赖分布式存储单个服务器节点可直接工作
4基于HTTP的pull方式采集时间序列数据
5推送时间序列数据通过PushGateway组件支持
6通过服务发现或静态配置发现目标
7多种图形模式及仪表盘支持grafana
8适用于以机器为中心的监控以及高度动态面向服务架构的监控 Prometheus 架构
Prometheus 由多个组件组成但是其中许多组件是可选的
1Prometheus Server用于收集指标和存储时间序列数据并提供查询接口
2client Library客户端库例如GoPythonJava等为需要监控的服务产生相应的/metrics并暴露给Prometheus Server。目前已经有很多的软件原生就支持Prometheus提供/metrics可以直接使用。对于像操作系统已经不提供/metrics可以使用exporter或者自己开发exporter来提供/metrics服务。
3push gateway主要用于临时性的 jobs。由于这类 jobs 存在时间较短可能在 Prometheus 来 pull 之前就消失了。对此Jobs定时将指标push到pushgateway再由Prometheus Server从Pushgateway上pull。
4exporter用于暴露已有的第三方服务的 metrics 给 Prometheus。
5alertmanager从 Prometheus server 端接收到 alerts 后会进行去除重复数据分组并路由到对收的接受方式发出报警。常见的接收方式有电子邮件pagerdutyOpsGenie, webhook 等。
6Web UIPrometheus内置一个简单的Web控制台可以查询指标查看配置信息或者Service Discovery等实际工作中查看指标或者创建仪表盘通常使用GrafanaPrometheus作为Grafana的数据源
**注**大多数 Prometheus 组件都是用 Go 编写的因此很容易构建和部署为静态的二进制文件。 为了能够更加直观的了解Prometheus Server接下来我们将在k8s里部署并运行一个Prometheus Server实例通过Node Exporter采集当前主机的系统资源使用情况。 并通过Grafana创建一个简单的可视化仪表盘。
2. 在Kubernetes里部署Prometheus
说明我们使用helm来安装Prometheus所以请先安装helm
1配置helm仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update2使用helm安装Prometheus
先把包下载下来需要更改values.yaml
helm pull bitnami/prometheus --untar每台机器安装nfs
systemctl restart chronyd
yum install -y nfs-utils更改values.yaml
cd prometheus
vi values.yaml #更改所有storageClass配置指定为nfs-client这个是前面我们配置的NFS的sc还有两处需要将enablefalse改为 true安装
helm install prometheus .查看helm安装的应用
helm list -A3访问Prometheus
查看service
kubectl get svc通过80端口对应的的port来访问Prometheus和Alertmanager
http://192.168.222.101:31525
Prometheus的Exporter
在Prometheus的架构设计中Prometheus Server并不直接服务监控特定的目标其主要任务负责数据的收集存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西如主机的CPU使用率我们需要使用到Exporter。
Exporter是一个用于收集和暴露应用程序指标的工具。它允许你将应用程序中的特定指标暴露给Prometheus监控系统。Exporter可以作为一个独立的进程运行它通过暴露一个HTTP端点来提供指标数据。Prometheus可以通过定期访问Exporter的端点来获取最新的指标数据并进行存储和可视化。
Exporter提供了针对各种应用程序和服务的特定实现包括数据库、消息代理、Web服务器等。我们平时用的各种服务如Nginx、MySQL、Redis、RabbitMQ、MongoDB等都有自己的Exporter它们会从应用程序中提取指标并将其格式化为Prometheus可理解的格式。
总之通过使用Prometheus exporter你可以方便地监控应用程序的性能、资源利用率和其他重要指标。它提供了一种简单而强大的方式来收集和分析应用程序的监控数据帮助你及时发现潜在的问题并做出相应的调整。
1Node Exporter
Node Exporter主要用来采集主机上的各种指标如CPU、内存、磁盘、网络等Node exporter作为一个独立的进程在主机上运行并通过HTTP端点暴露指标数据。Prometheus可以定期访问该端点以获取最新的主机指标数据并将其存储和可视化。
Node exporter可以在各种操作系统上运行包括Linux、Windows和Mac。它使用系统级接口和命令行工具来收集主机指标数据并将其转换为Prometheus可理解的格式。
我们可以给K8S各个节点安装Node Exporter
helm install node-exporter bitnami/node-exporter查看pod
kubectl get pod