首页
运维教程
Linux基础
系统服务
系统架构
数据库
shell脚本
虚拟化
大数据
DevOps
企业案例
运维开发
python
go语言
运维安全
行业资讯
网络基础
系统安全
运维面试
学习路线
学习方法
面试题库
职场解惑
常用软件
运维软件
办公软件
书籍资源
日知录
招聘信息
读书计划
书单
关于我们
首页 运维教程Linux基础prometheus的介绍及安装

prometheus的介绍及安装

文章目录

Prometheus 是什么?
Prometheus 的优点
1. 配置灵活
2. 监控更多多样性
3. 非常高效的存储
prometheus的架构
prometheus的工作流程
prometheus 部署
通过网址访问

Prometheus 是什么?

Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社区也十分活跃,他们便将它独立成开源项目,并且有公司来运作。google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。

Prometheus 的优点

1. 配置灵活

使用过zabbix的同学应该都体验过安装时候的安装依赖包的痛苦,而premetheus核心部分只有一个单独的二进制文件,下载解压安装即可,没有依赖的第三方库。

2. 监控更多多样性

prometheus支持多种语言的的客户端,我们通过客户端方便对核心业务进行埋点,比如下单,添加购物车等流程。
而且prometheus已经有非常多的系统集成:比如
应用层面的监控:nginx,haproxy,mysql ,docker等
系统层面如: SNMP协议监控,主机监控,进程监控
容器云监控: docker,k8s openstack私有云

3. 非常高效的存储

平均一个采样数据占 ~3.5 bytes左右,320万的时间序列,每30秒采样,保持60天,消耗磁盘大概228G。

prometheus的架构

在这里插入图片描述
对照图中的每一部分进行介绍:
– prometheus server
主要负责数据的采集和存储,提供PromQL查询语言支持
Retrieval:采样模块,prometheus的服务器在哪里拉取数据,检索拉取到的数据分发给 TSDB进行存储
TSDB:存储模块默认本地存储为TSDB
HTTP server : 提供http接口查询和面板,默认端口为9090

  • short-lived jobs:
    存在时间不足以被删除的短暂或批量业务,无法通过pull的方式拉取,需要使用push的方式,与pushgeteway结合使用

  • Service Discovery:
    服务发现,prometheus支持多种服务发现机制: 文件,DNS,k8s,openstack,等,基于服务发现的过程,通过第三方接口,prometheus查询到需要监控的target列表,然后轮询这些target获取监控数据

    • 客户端SDK
      官方提供的客户端类库有go,java,python,ruby
  • pushgateway
    支持临时性的job主动推送指标的中间网关,prometheus默认通过pull方式从exporters拉取,但有些情况我们是不允许promethes与exporters直接进行通信的,这时候我们可以使用pushgateway由客户端主动push数据到pushgateway,在由prometheus拉取。很多时候我们需要自定义一些组件来采集

    • proDash
      使用rails开发的dashboard,用于可视化指标数据

    • exporters
      支持其他数据源的指标导入到prometheus,支持数据库,硬件,消息中间件,存储系统,http服务器,jmx等
      负责收集目标对象的性能数据,并通过http接口供prometheus server获取
      只要符合接口格式,就可以被采集

  • alertmanager
    实验性组件,用来进行报警

  • prometheus_cli
    命令行工具

prometheus的工作流程

  1. prometheus server 定期从配置好的jobs或者exporters中拉metrics.或者接受来自pushgateway发过来的metrics,或者从其他的prometheus server中拉取metrics

  2. prometheus server 在本地存储收集到的metrics,并运行已经定义好的arlt.rules,记录新的时间序列或者向alertmanager推送报警

  3. Alertmanager根据配置文件,对接受的警报进行处理,发出告警

  4. 在图形界面中,可视化采集数据,可以使用别人写好的grafana模板。

prometheus 部署

下载地址:https://github.com/prometheus/prometheus/releases/

[root@zmedu-17 ~]# tar xf prometheus-2.7.2.linux-amd64.tar.gz 
[root@zmedu-17 ~]# mv prometheus-2.7.2.linux-amd64 /usr/local/prometheus
[root@zmedu-17 ~]# cd /usr/local/prometheus/
[root@zmedu-17 prometheus]# pwd
[root@zmedu-17 prometheus]# ls
console_libraries  NOTICE          promtool
consoles           prometheus
LICENSE            prometheus.yml

[root@zmedu-17 prometheus]# ./prometheus --version
prometheus, version 2.7.2 (branch: HEAD, revision: 82f98c825a1437c0a24056eb4dc986d9a3fc7fae)
  build user:       root@ab86c672c33a
  build date:       20190302-14:57:04
  go version:       go1.11.5
[root@zmedu-17 prometheus]# 


后台启动普罗米修斯:

[root@zmedu-17 prometheus]# ./prometheus &
[1] 66474

通过网址访问

通过后台执行http://192.168.1.17:9090
在这里插入图片描述

本文链接:http://www.geekyunwei.com/1996.html

网友评论comments

发表评论

邮箱地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2021 极客运维 备案号: 京ICP备2021004281号
扫二维码
扫二维码
返回顶部