4

Prometheus监控实战应用 - Jeff的技术栈

 2 years ago
source link: https://www.cnblogs.com/guyouyin123/p/16220484.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

1.Prometheus的主要特征及概述

概述:

Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。因为kubernetes(俗称k8s)的流行带动了prometheus的发展。

时间序列数据特点:
1.性能好
2.存储成本低,高效的压缩算法,节省存储空间,有效降低IO。

Prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用3.5byte左右空间,上百万条时间序列,30秒间隔,保留60天,大概花了200多G(来自官方数据)

特征:

1.多维度数据模型
2.灵活的查询语言
3.不依赖分布式存储,单个服务器节点是自主的
4.以HTTP方式,通过pull模型拉去时间序列数据
5.也可以通过中间网关支持push模型
6.通过服务发现或者静态配置,来发现目标服务对象
7.支持多种多样的图表和界面展示

2.普罗米修斯原理架构图

3.下载安装启动Prometheus

官网下载地址:https://prometheus.io/download/
//下载
wgt https://github.com/prometheus/prometheus/releases/download/v2.35.0/prometheus-2.35.0.linux-amd64.tar.gz
//解压
tar -xf prometheus-2.35.0.linux-amd64.tar.gz -C /usr/local
//改名
mv prometheus-2.35.0.linux-amd64 prometheus
//默认启动
nohup ./prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
//端口检查
lsof -i:9090
ss -naltp |grep 9090
 
//浏览器访问192.168.0.215:9090

4.web客户端操作

//浏览器访问192.168.0.215:9090
默认监控本机

5.默认图像

6.目录解释

console_libraries目录:
consoles目录:
LICENSE问价:
NOTICE文件:
prometheus文件:默认启动的可执行文件
prometheus.yml配置文件:默认配置文件
promtool文件:

7.配置文件

vi prometheus.yml

global:
  scrape_interval:     60s # 拉取时间间隔
  evaluation_interval: 60s # 告警时间间隔

- job_name: "prometheus"  #监控名称取名字
    static_configs:
      - targets: ["localhost:9090"] #被监控机器的ip和端口

8.监控指标

指标配置下载:https://prometheus.io/download/

8.1.监控其他机器node_exporter

在其他机器安装node_exporter,端口9100

第一步:下载安装node_exporter

//下载
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
//解压
tar -xf node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local/
//改名
mv node_exporter-1.3.1.linux-amd64 node_exporter
//启动
nohup /usr/local/node_exporter/node_exporter &
//浏览器输入,监控数据,端口9100
http://192.168.0.216:9100/metrics

第二步:配置到prometheus

vi /usr/local/prometheus/prometheus.yml

  - job_name: "node"
    static_configs:
      - targets: ["192.168.0.216:9100"]
        labels:
          instance: 192.168.0.216
          group: node
      - targets: ["192.168.0.247:9100"]
        labels:
          instance: 192.168.0.247
          group: node
      - targets: ["192.168.0.235:9100"]
        labels:
          instance: 192.168.0.235
          group: node
      - targets: ["192.168.0.236:9100"]
        labels:
          instance: 192.168.0.236
          group: node

//重启prometheus
lsof -i:9090
kill -9 xxxx
nohup ./prometheus &

查看:

8.2监控mysql指标mysqld_exporter

第一步:下载安装mysqld_exporter

端口:9104

//下载
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz

//解压
tar -xf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local/
//改名
mv mysqld_exporter-0.14.0.linux-amd64 mysqld_exporter
//创建mysqld_exporter需要使用mysql的用户名和密码,文件需要手动创建
vi /usr/local/mysqld_exporter/my.cnf
[client]
host=192.168.0.215
user=root
password=123456
port=3306
//启动mysqld_exporter
nohup ./mysqld_exporter --config.my-cnf=./my.cnf &
//检查端口
lsof -i:9104

第二步:配置到prometheus

vi /usr/local/prometheus/prometheus.yml

- job_name: "sg-215-mysql"
    static_configs:
      - targets: ["192.168.0.215:9104"]

//重启prometheus
lsof -i:9090
kill -9 xxxx
nohup ./prometheus &

查看:

8.3监控postgres指标postgres_exporter

第一步:下载安装postgres_exporter

//下载
wget https://github.com/prometheus-community/postgres_exporter/releases/download/v0.10.1/postgres_exporter-0.10.1.linux-386.tar.gz
//解压
tar -xf postgres_exporter-0.10.1.linux-386.tar.gz -C /usr/local/
//改名
mv postgres_exporter-0.10.1.linux-386 postgres_exporter
//添加环境变量
export DATA_SOURCE_NAME="postgresql://postgres:[email protected]:32432/postgres?sslmode=disable"
//启动
nohup ./postgres_exporter &
//浏览器输入:http://192.168.0.215:9187/metrics

第二步:配置到prometheus

- job_name: "postgreSql"
    static_configs:
      - targets: ["192.168.0.215:9187"]
        labels:
          instance: 192.168.0.247:32432
          group: postgreSql
      - targets: ["192.168.0.216:9187"]
        labels:
          instance: hk-center.pg.rds.aliyuncs.com:5432
          group: postgreSql

8.4监控redis指标redis_exporter

第一步:下载安装redis_exporter

//下载
wget https://github.com/oliver006/redis_exporter/releases/download/v1.37.0/redis_exporter-v1.37.0.linux-386.tar.gz
//解压
tar -xf redis_exporter-v1.37.0.linux-386.tar.gz -C /usr/local/
//改名
mv redis_exporter-v1.37.0.linux-386 redis_exporter
//启动
./redis_exporter -help //查看参数
nohup ./redis_exporter -redis.addr 192.168.0.247:30279 & //无密码
nohup ./redis_exporter -redis.addr 192.168.0.247:30279 -redis.password 123456 & //有密码

//浏览器输入:http://192.168.0.215:9121/metrics

第二步:配置到prometheus

- job_name: "redis"
    static_configs:
      - targets: ["192.168.0.215:9121"]
        labels:
          instance: 192.168.0.247:30279
          group: redis

9.监控站点

9.1blackbox_exporter应用场景

HTTP 测试: 定义 Request Header 信息、判断 Http status / Http Respones Header / Http Body 内容
TCP 测试:  业务组件端口状态监听、应用层协议定义与监听
ICMP 测试: 主机探活机制
POST 测试: 接口联通性
SSL证书过期时间

9.2下载安装blackbox_exporter

https://prometheus.io/download/
//下载
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.20.0/blackbox_exporter-0.20.0.linux-amd64.tar.gz
//解压
tar -xf blackbox_exporter-0.20.0.linux-amd64.tar.gz -C /usr/local/
//改名
mv blackbox_exporter-0.20.0.linux-amd64 blackbox_exporter
//启动
nohup ./blackbox_exporter &
//浏览器输入http://192.168.0.215:9115/

9.3网站监控-prometheus配置

vi /usr/local/prometheus/prometheus.yml

//重启prometheus
lsof -i:9090
kill -9 xxxx
nohup ./prometheus &

网站监控:

  - job_name: 'http_status'
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
      - targets: ['https://admin.d.blueshark.com']
        labels:
          instance: admin.d.blueshark.com
          group: web
      - targets: ['https://admin.k.blueshark.com']
        labels:
          instance: admin.k.blueshark.com
          group: web
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - target_label: __address__
        replacement: 192.168.0.215:9115

9.4ping检测-prometheus配置

ping检测:

  - job_name: 'ping_status'
    metrics_path: /probe
    params:
      module: [icmp]
    static_configs:
      - targets: ['192.168.0.249']
        labels:
          instance: 'ping_status'
          group: 'icmp'
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - target_label: __address__
        replacement: 192.168.0.215:9115
YAML 复制 全屏

9.5端口检测--prometheus配置

端口检测:

  - job_name: 'port_status'
    metrics_path: /probe
    params:
      module: [tcp_connect]
    static_configs:
      - targets: ['192.168.0.215:80', '192.168.0.216:80', '192.168.0.217:80']
        labels:
          instance: 'port_status'
          group: 'port'
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - target_label: __address__
        replacement: 192.168.0.215:9115

Recommend

  • 61
    • www.jianshu.com 6 years ago
    • Cache

    Spring Boot应用监控实战 - 简书

    概述 之前讲过Docker容器的可视化监控,即监控容器的运行情况,包括 CPU使用率、内存占用、网络状况以及磁盘空间等等一系列信息。同样利用SpringBoot作为微服务单元的实例化技术选型时,我们不可避免的要面对的一个问题就是如何实时监控应用的运行状况数据,比如:...

  • 43

    任何服务都离不开监控系统,对于管理维护服务的组织来说,监控是必备技能之一。近几年来,容器化、微服务、云原生等方式成为流行的现代架构思想,这给监控系统带来了不小的挑战。具体来说,监控系统需要在动态的云环境或者基于容器的微服务...

  • 23

    很久以前,加利福尼亚州山景城有一家名为 Google 的公司。该公司推出了大量产品,其中最著名的是广告系统和搜索引擎平台。为了运行这些不同的产品,该公司建立了一个名为 Borg 的平台。Borg 系统是:“一个集群管理器,可以运行来自成千上...

  • 29

    Prometheus 会收集时间序列数据,为了处理这些数据,它使用一个多维时间序列数据模型。这个时间序列数据模型结合了时间序列名称和称为标签(label)的键 / 值对,这些标签提供了维度。每个时间序列由时间序列名称和标签的组合唯一标识。

  • 40

    该文章正在审核中 如有...

  • 3

    【中间件】Prometheus实现应用监控 | 一灰灰Blog 1. prometheus 安装

  • 9

    【编者的话】Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Prometheus是一个开源的服务监控系统和时间序列数据库。 Gr...

  • 6

    在这篇文章中我们介绍了如何利用Prometheus监控应用。在后续的工作中随着监控的深入,我们结合自己的经验和官方文档总结了一些 Metrics 的实践。希望这些实践能给大家提供参考。确定监控对象在具...

  • 5
    • qiankunli.github.io 2 years ago
    • Cache

    《Prometheus监控实战》笔记

    metric 种类 counter(计数器),始终增加,比如http请求数、下单数。 so,代码上不支持 直接Set值。 gauge(测量仪),当期值的一次快照测量,可增可减。比如磁盘使用率、当前同时在线用户数 Histogram(直方图...

  • 6

    prometheus监控JMX需要向Tomcat内添加jmx_prometheus_javaagent包,并暴露一个端口给外部访问来获取数据。本文采用0.3.1版本:​

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK