Prometheus 监控部署

一、Prometheus简介

Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成为受欢迎度仅次于 Kubernetes 的项目。

作为新一代的监控框架,Prometheus 具有以下特点:

强大的多维度数据模型:

1、时间序列数据通过 metric 名和键值对来区分。

2、所有的 metrics 都可以设置任意的多维标签。

3、数据模型更随意,不需要刻意设置为以点分隔的字符串。

4、可以对数据模型进行聚合,切割和切片操作。

5、支持双精度浮点类型,标签可以设为全 unicode。

灵活而强大的查询语句(PromQL):在同一个查询语句,可以对多个 metrics 进行乘法、加法、连接、取分数位等操作。

易于管理: Prometheus server 是一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储。

高效:平均每个采样点仅占 3.5 bytes,且一个 Prometheus server 可以处理数百万的 metrics。

使用 pull 模式采集时间序列数据,这样不仅有利于本机测试而且可以避免有问题的服务器推送坏的 metrics。

可以采用 push gateway 的方式把时间序列数据推送至 Prometheus server 端。

可以通过服务发现或者静态配置去获取监控的 targets。

有多种可视化图形界面。

易于伸缩。

需要指出的是,由于数据采集可能会有丢失,所以 Prometheus 不适用对采集数据要 100% 准确的情形。但如果用于记录时间序列数据,Prometheus 具有很大的查询优势,此外,Prometheus 适用于微服务的体系架构。

参考网址:

1、Prometheus官方网站:https://prometheus.io/

2、grafana官方网站:https://grafana.com/

3、Prometheus官方文档:https://prometheus.io/docs/prometheus/latest/getting_started/

4、Prometheus 入门与实践:https://www.ibm.com/developerworks/cn/cloud/library/cl-lo-prometheus-getting-started-and-practice/index.html

5、 实战 Prometheus 搭建监控系统 https://www.codercto.com/a/35819.html

6、 Prometheus操作指南 https://github.com/yunlzheng/prometheus-book

                                          https://yunlzheng.gitbook.io/prometheus-book/

7、Prometheus实战 https://songjiayang.gitbooks.io/prometheus/content/introduction/

二、Prometheus 服务端部署

1、下载服务端安装程序:


2、安装服务端程序:

tar xvfz prometheus-*.tar.gz

cd prometheus-*

cp -rf /software/prometheus/prometheus-2.9.2.linux-amd64/* /usr/local/prometheus


3、配置服务端监控自己:

修改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

    static_configs:

      - targets: ['localhost:9090']

4、启动服务端程序

# Start Prometheus.

# By default, Prometheus stores its database in ./data (flag --storage.tsdb.path).

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

curl localhost:9090/metrics

三、Prometheus 客户端部署

tar -xf node_exporter-0.18.0.linux-amd64.tar.gz

cp node_exporter-0.18.0.linux-amd64/* /usr/local/nodes/node

cd  /usr/local/nodes/node

./node_exporter

curl http://localhost:9100/metrics

四、配置监控客户端

修改Prometheus 服务端配置(prometheus.yml):

scrape_configs:

  - job_name: 'prometheus'

    static_configs:

      - targets: ['192.168.0.107:9090']

  - job_name: 'server'

    static_configs:

      - targets: ['192.168.0.107:9100']

重启服务端Prometheus 进程。

ps -lef|grep prometheus

kill -9 14577

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

五、Prometheus 插件部署

六、Prometheus 展示组件grafana部署

1、下载grafana https://grafana.com/grafana/download?platform=linux

2、安装grafana

$ wget https://dl.grafana.com/oss/release/grafana-6.1.6-1.x86_64.rpm 

$ yum install fontconfig【依赖】

$ yum install freetype* 【依赖】

$ yum install urw-fonts  【依赖】

$ yum localinstall grafana-6.1.6-1.x86_64.rpm 

$ systemctl daemon-reload

$ systemctl start grafana-server

$ systemctl status grafana-server

$ systemctl enable grafana-server.service

$ curl http://localhost:3000/login

默认账号密码admin admin 登录后改密码

3、配置grafana

1)添加数据源

2)配置数据源

3)增加模板

增加Node Exporter Full模板

https://grafana.com/dashboards/1860

4)展示结果

你可能感兴趣的:(Prometheus 监控部署)