Prometheus

Prometheus概述

Prometheus是源于 Google Borgmon 的一个开源监控系统,用 Golang 开发。被很多人称为下一代监控系统。 Prometheus 基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 HTTP 接口就可以接入监控系统,不需要任何 SDK

Prometheus架构

Prometheus_第1张图片
image
  • Exporter是指输出被监控组件信息的Http接口,目前互联网公司常用的组件大部分都有 exporter 可以直接使用,比如 Varnish、Haproxy、Nginx、MySQL、Linux 系统信息 (包括磁盘、内存、CPU、网络等等)。
  • Prometheus主服务器,用来收集和存储时间序列数据
  • 应用程序client代码库
  • 短时jobs的push gateway
  • 基于Rails/SQL的GUI dashboard
  • 用于报警的alertmanager
  • 命令行工具查询

Prometheus安装

下载地址

step1 解压

tar xvfz prometheus-*.tar.gz

step2 配置

此处配置Prometheus 进行自我监控,创建一个prometheus.yml内容如下:

global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    target_groups:
      - targets: ['localhost:9090']
        labels:
          group: 'prometheus'

      # Another job or machine
      - targets: ['localhost:3000']
        labels:
          group: 'rails-app'

step3 启动运行

./prometheus --config.file=prometheus.yml

或者直接使用docker 容器运行

sudo docker run -d -p 7070:9090 -v /home/bozhon/docker/volumes/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /home/bozhon/docker/volumes/prometheus/storage:/prometheus  --restart=always   prom/prometheus

step4 验证查看

Prometheus_第2张图片
image

访问Prometheus所在服务器地址,本例使用docker的形式运行,访问http://172.17.25.122:7070

第一篇只是针对监控自身的数据安装部署运行了Prometheus,下一篇会举例更实用的监控配置

你可能感兴趣的:(Prometheus)