prometheus-入门

Prometheus 是由 SoundCloud 开源监控告警解决方案2015 年在 github 上开源以来,已经吸引了 很多大公司的使用;2016 年 Prometheus 成为继 k8s 后,第二名 CNCF(Cloud Native Computing Foundation) 成员。

实战

安装prometheus软件

cd /usr/local/src/
wget https://github.com/prometheus/prometheus/releases/download/v1.7.1/prometheus-1.7.1.linux-amd64.tar.gz
tar -zxf prometheus-1.7.1.linux-amd64.tar.gz
mv prometheus-1.7.1.linux-amd64 /data/app/
ln -s /data/app/prometheus-1.7.1.linux-amd64/ /data/app/prometheus

修改配置文件

global:
scrape_interval: 15s
evaluation_interval: 15s
external_labels:
monitor: 'codelab-monitor'
rule_files:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'linux'
static_configs:
- targets: ['192.168.56.12:9100']
labels:
alias: linux-node2

启动prometheus并访问

./prometheus -config.file=prometheus.yml

安装exporter 端

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz
wget https://github.com/prometheus/node_exporter/releases/download/v0.14.0/node_exporter-0.14.0.linux-amd64.tar.gz
tar -zxf mysqld_exporter-0.10.0.linux-amd64.tar.gz
tar -zxf node_exporter-0.14.0.linux-amd64.tar.gz
mv node_exporter-0.14.0.linux-amd64 /data/app/
mv mysqld_exporter-0.10.0.linux-amd64 /data/app/
ln -s /data/app/node_exporter-0.14.0.linux-amd64/ /data/app/node_exporter
ln -s /data/app/mysqld_exporter-0.10.0.linux-amd64/ /data/app/mysqld_exporter

启动node_exporter

screen -R node_exporter
cd /data/app/node_exporter
./node_exporter

登录图像页面检查服务是否配置成功

  • http://localhost:9090/metrics: 监控指标
  • http://localhost:9090/graph: 图像界面

metrics返回的结果包含多个标签的值。如果想只看延迟是0.99的值可以输入如下参数:

prometheus_target_interval_length_seconds{quantile="0.99"}

你也可以对返回结果做个count值:

count(prometheus_target_interval_length_seconds)

输入以下表达式来绘制在Prometheus中发生的所有存储块操作的每秒速率:

rate(prometheus_local_storage_chunk_ops_total[1m])

你也可以输出其他参数查看监控后服务器的信息,比如:使用up参数判断linux-node2是否存活。

up{job="linux-node2"}

其他高级的例子

avg(rate(rpc_durations_seconds_count[5m])) by (job, service)

级联同步数据

promtheus 配置文件中增加如下内容:

scrape_configs:
- job_name: 'federate'
scrape_interval: 15s honor_labels: true
metrics_path: '/federate' params:
'match[]': ##定义要同步的监控项
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
- '{job="node_discovery"}' static_configs:
- targets:
- 'linux-node1:9090' ## 目标库可以写多行。

参考文档

prometheus-官网

Prometheus 实战

PROMETHEUS 监控系统介绍与实践总结

prometheus-监控mysql

prometheus中文文档

官方容器站

Prometheus 监控方案

prometheus-入门尝试的更多相关文章

  1. GPG入门尝试

    GPG入门尝试 参考:阮一峰的网络日志 在所附链接中,对大多数信息的解释说明已经较为详细,在此只补充实际操作中的一些问题和解决方法 gpg --decrypt demo.en.txt --output ...

  2. Prometheus 入门教程(一):Prometheus 快速入门

    文章首发于[陈树义]公众号,点击跳转到原文:https://mp.weixin.qq.com/s/ZXlBPHGcWeYh2hjBzacc3A Prometheus 是任何一个高级工程师必须要掌握的技 ...

  3. Prometheus入门教程(二):Prometheus + Grafana实现可视化、告警

    文章首发于[陈树义]公众号,点击跳转到原文:https://mp.weixin.qq.com/s/56S290p4j9KROB5uGRcGkQ Prometheus UI 提供了快速验证 PromQL ...

  4. Prometheus : 入门

    Prometheus 是一个开源的监控系统.支持灵活的查询语言(PromQL),采用 http 协议的 pull 模式拉取数据等特点使 Prometheus 即简单易懂又功能强大. Prometheu ...

  5. Prometheus 入门与实践

    原文链接:https://www.ibm.com/developerworks/cn/cloud/library/cl-lo-prometheus-getting-started-and-practi ...

  6. Prometheus入门

    什么是TSDB? TSDB(Time Series Database)时序列数据库,我们可以简单的理解为一个优化后用来处理时间序列数据的软件,并且数据中的数组是由时间进行索引的. 时间序列数据库的特点 ...

  7. Prometheus入门到放弃(7)之redis_exporter部署

    redis监控,prometheus需要使用redis_exporter客户端. 这里我们采用docker方式部署,既可以部署在redis所在服务器,也可以部署在其他机器: docker镜像地址:ht ...

  8. Prometheus入门到放弃(6)之AlertManager进阶

    前面几个篇幅,我们介绍了alertmanger报警配置,在实际运维过程中,我们都会遇到,报警的重复发送,以及报警信息关联性报警.接下来我们就介绍下通过alertmanger对告警信息的收敛.一.告警分 ...

  9. Prometheus入门到放弃(5)之AlertManager部署

    alertmanager与exporters.cadvisor一样,都是独立于prometheus项目,这里我们也使用docker方式部署alertmanager. 1.下载镜像 镜像地址:https ...

  10. Prometheus入门到放弃(4)之cadvisor监控docker容器

    Prometheus监控docker容器运行状态,我们用到cadvisor服务,cadvisor我们这里也采用docker方式直接运行. 1.下载镜像 [root@prometheus-server ...

随机推荐

  1. Java基础教程(18)--继承

    一.继承的概念   继承是面向对象中一个非常重要的概念,使用继承可以从逻辑和层次上更好地组织代码,大大提高代码的复用性.在Java中,继承可以使得子类具有父类的属性和方法或者重新定义.追加属性和方法. ...

  2. python__new__与__init__的区别

    __new__ __init__区别 1 class A(object): 2 def __init__(self,*args, **kwargs): 3 print "init A&quo ...

  3. requireJS中如何用r.js对js进行合并和压缩css文件

    我运行的环境是windows+node.js,首先是用npm安装requirejs(全局安装,即使用 'npm install requirejs -g',这样方便在各个目录调用),接着就是下载r.j ...

  4. 浏览器根对象window之操作方法

    1.1 不常用 alert:带有一条指定消息和一个OK按钮的警告框. confirm:带有指定消息和OK及取消按钮的对话框. prompt:可提示用户进行输入的对话框. print:打印网页. ope ...

  5. Python解析SWAN气象雷达数据--(解析、生成ASCII、Image、netCDF)

    解析   from datetime import * import time import calendar import json import numpy as np from struct i ...

  6. 利用GDAL从内存中直接解析图像数据

    对于网络数据源,调度中可以把数据写入本地,然后读取本地数据格式进行影像的解析(地形有时候也用tif等格式). 此种方式会每次调度进行不必要的IO开销和时间花费. GDAL提供了相应的接口,直接从内存中 ...

  7. Retrofit+RxJava(2)-基本使用

    首先是抽象的基类 public abstract class BaseApi { public static final String API_SERVER = "服务器地址" p ...

  8. 离线安装SharePoint2016

    离线安装SharePoint2016的过程中,遇到了不少问题,该文章将安装过程尽量详细描述,供自己后续参考,请不要嫌文章啰嗦哈. 本人使用的是Windows Server 2012 R2 Standa ...

  9. Linux服务器安装redis数据库教程

    前面小Alan给大家说了jdk的安装,这篇跟大家聊聊redis非关系型数据库在Linux服务器的安装. redis简单介绍 REmote DIctionary Server(Redis) 是一个由Sa ...

  10. zabbix系列之八——安装后配置三Triggers

    1Triggers(触发器) 描述 详细 备注 术语描述 1)触发器是评估监控项采集的数据的逻辑表达式,代表了当前系统状态. 2)触发器可定义一个什么数据是可接受的阈值,因此,如果接收的数据超过了可接 ...