Prometheus介绍和部署

Prometheus介绍

Prometheus是一个最初在SoundCloud上构建的开源监控系统 。它现在是一个独立的开源项目,为了强调这一点,并说明项目的治理结构,Prometheus 于2016年加入CNCF,作为继Kubernetes之后的第二个托管项目。

特点

  • 具有由 metric 名称和键/值对标识的时间序列数据的多维数据模型
  • PromQL,有一个灵活的查询语言
  • 不依赖分布式存储,只和本地磁盘有关
  • 通过 HTTP 的服务拉取时间序列数据
  • 也支持推送的方式来添加时间序列数据
  • 通过服务发现或静态配置发现目标
  • 多种图形和仪表板支持

组件

Prometheus系统由多个组件组成,其中许多组件是可选的:

  • Prometheus Server:用于抓取指标、存储时间序列数据
  • exporter:暴露指标让任务来抓
  • pushgateway:push 的方式将指标数据推送到该网关
  • alertmanager:处理报警的报警组件
  • adhoc:用于数据查询

大多数 Prometheus 组件都是用 Go 编写的,因此很容易构建和部署为静态的二进制文件。

架构图

此图说明prometheus的体系结构及其一些系统组件

Prometheus介绍和部署_第1张图片

整体流程比较简单,Prometheus 直接接收或者通过中间的 Pushgateway 网关被动获取指标数据,在本地存储所有的获取的指标数据,并对这些数据进行一些规则整理,用来生成一些聚合数据或者报警信息,Grafana 或者其他工具用来可视化这些数据。

基于k8s安装

两种安装方法:

1.Prometheus-operator:GitHub - prometheus-operator/prometheus-operator: Prometheus Operator creates/configures/manages Prometheus clusters atop Kubernetes #就是自定义了一下crd需要自己去注册创建各种服务的监控

2.Kube-prometheus:GitHub - prometheus-operator/kube-prometheus: Use Prometheus to monitor Kubernetes and applications running on Kubernetes #包含了已有很多种集成的监控

推荐使用Kube-prometheus安装

选择最新版下载

Prometheus介绍和部署_第2张图片

 Prometheus介绍和部署_第3张图片

下载安装文件 :git clone GitHub - prometheus-operator/kube-prometheus: Use Prometheus to monitor Kubernetes and applications running on Kubernetes

安装operator:

cd manifests/setup && kubectl create -f .

安装Prometheus:

cd .. && kubectl create -f .

创建alert、grafana、prom域名 ingress发布

vim prom-ingress.yaml

创建alert、grafana、prom域名 ingress发布
vim prom-ingress.yaml


apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  creationTimestamp: "2020-04-23T13:42:11Z"
  generation: 1
  name: prom-ingresses
  namespace: monitoring
  resourceVersion: "9525872"
  selfLink: /apis/extensions/v1beta1/namespaces/monitoring/ingresses/prom-ingresses
  uid: 1ed9143c-7c03-4b8b-b926-00e31024a436
spec:
  rules:
  - host: alert.test.com
    http:
      paths:
      - backend:
          serviceName: alertmanager-main
          servicePort: 9093
        path: /
  - host: grafana.test.com
    http:
      paths:
      - backend:
          serviceName: grafana
          servicePort: 3000
        path: /
  - host: prom.test.com
    http:
      paths:
      - backend:
          serviceName: prometheus-k8s
          servicePort: 9090
        path: /

grafan默认账号密码是admin

你可能感兴趣的:(1024程序员节)