12 Prometheus 二

01.Prometheus安装部署

第一步:下载prometheus:官网直接下载即可
第二步:解压

tar -zxvf prometheus-2.8.1.linux-amd64.tar.gz -C /usr/local/  ---解压到/usr/local目录下
cd /usr/local/
mv prometheus-2.8.1.linux-amd64/ prometheus  ---修改目录名称

第三步:在system管理文件里面添加如下内容

[Unit]
Description=Prometheus Node Exporter
After=network.target

[Service]
# 要写明prometheus配置文件的位置和yml文件的位置
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.read-timeout=5m  --web.max-connections=10 --storage.tsdb.retention=15d --storage.tsdb.path=/prometheus/data --query.max-concurrency=20 --query.timeout=2m
User=root
[Install]
WantedBy=multi-user.target

第四步:启动和开机自启

systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus
systemctl status prometheus

第五步:访问监控服务器的IP+9090端口
在这里插入图片描述
在这里插入图片描述

02.exporter简介

prometheus exporter简介
一、服务分类
1.在线服务:请求的客户端和发起者需要立即响应(高并发、低延迟:并发数、接口响应时间、错误数、延迟时间),面对突发流量能进行资源的自动伸缩
2.离线服务:请求发送到服务端但不要求立即获取结果(监控服务的每个执行阶段、成功/失败的次数)
3.批处理:批量任务的执行(一般定时执行),针对每个任务的执行耗时、待处理任务、阻塞任务、处理成功/失败的任务数
二、数据规范
1.prometheus制定了一套独特的监控数据规范,符合这一规范的监控数据都可以被统一采集、分析和展现
2.prometheus为监控对象提供一个标准的HTTP GET接口,调用接口每次都将返回所有的监控数据
3.监控数据以文本形式组织,每个指标都占用一行,除了文本的最后一个空行,其他空行都将被忽略
4.HELP:指标的注释
 TYPE:定义一个监控指标
三、exporter简介
1.exporter诞生的原因:大多数监控无法直接提供监控接口(本身不支持HTTP接口、安全性、稳定性、代码耦合等)
2.exporter是一个采集监控数据并通过prometheus监控规范对外提供数据的组件
3.官方实现的exporter:blackbox_exporter、consul_exporter、graphite_exporter、haproxy_exporter、memcached_exporter、mysqld_exporter、node_exporter、statsd_exporter
4.第三方实现的exporter:Redis exporter、RabbitMQ exporter等
5.prometheus会周期性地调用exporter提供的metrics数据接口来获取数据
6.exporter通过被监控对象提供的监控相关的接口获取监控数据(HTTP/HTTPS、TCP、本地文件(node)、标准协议方式)
官方主要依赖库:go、java、scala、python、ruby等
四、功能特性总结
1.prometheus只会采集指定格式的监控信息
2.exporter按照prometheus规定的格式采集各种软件的监控信息(mysql、node、consul、rabbitMQ等)
3.部分exporter在采集监控信息时需要获取一定的权限用于采集指定信息(如:mysql)
4.类似于多功能充电线,什么品牌的手机选择对应型号的线即可;不同的软件选择对应exporter即可

03.安装node_exporter 以及启动

第一步: node_exporter安装在被监控端,安装方式也比较简单,直接下载解压安装即可,默认启动后监听9100端口。

# 下载
[root@node02 ~]# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

# 二进制解压式安装
[root@node02 ~]# tar -zxf node_exporter-0.18.1.linux-amd64.tar.gz -C /usr/local/
[root@node02 ~]# mv /usr/local/node_exporter-0.18.1.linux-amd64 /usr/local/node_exporter-0.18.1
[root@node02 ~]# ln -sv /usr/local/node_exporter-0.18.1 /usr/local/node_exporter

# 启动
[root@node02 ~]# cd /usr/local/node_exporter
[root@node02 node_exporter]# ./node_exporter &
[root@node02 node_exporter]# netstat -tulnp |grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      6433/./node_exporte 

第二步:node_exporter默认监听9100端口,在服务端增加被监控的目标主机,即可通过客户端的node_exporter采集数据,如下:

[root@prometheus prometheus]# cat prometheus.yml 
global:
  scrape_interval:     15s 
  evaluation_interval: 15s 
  external_labels:
    monitor: 'codelab-monitor'

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
    - targets: ['localhost:9090','192.168.0.128:9100']    
    - --- 在被监控端安装node_exporter (也可以在prometheus服务器自己主机上安装,这样也能收集自己的信息数据),然后在prometheus服务端的prometheus.yml文件添加被监控端IP和9090端口即可
    - #目标targets是一个列表,用逗号分隔,添加目标监控主机的ip和端口,也可以通过主机名,但是需要在hosts进行解析

重启prometheus后生效!!!

第三步:可以通过访问目标主机的ip+端口进行获取数据测试,如下:

[root@prometheus ~]# curl 192.168.0.128:9100/metrics    # 可以看到一系列的系统指标,如cpu的1,5,15分钟的负载值
...
# HELP node_load1 1m load average.
# TYPE node_load1 gauge
node_load1 0.08
# HELP node_load15 15m load average.
# TYPE node_load15 gauge
node_load15 0.05
# HELP node_load5 5m load average.
# TYPE node_load5 gauge
node_load5 0.04
# HELP node_memory_Active_anon_bytes Memory information field Active_anon_bytes.
# TYPE node_memory_Active_anon_bytes gauge
node_memory_Active_anon_bytes 2.45653504e+08
# HELP node_memory_Active_bytes Memory information field Active_bytes.
# TYPE node_memory_Active_bytes gauge
node_memory_Active_bytes 3.42388736e+08
...

第五步:在Prometheus的web端可以通过prometheus的/graph上的查询搜索框进行查询对应监控节点的负载值 (图略)

第六步:默认没有守护进程管理node_exporter,然后添加node_exporter.service

[root@node02 ~]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/docs/introduction/overview
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=simple
PIDFile==/var/run/node_exporter.pid
ExecStart=/usr/local/node_exporter/node_exporter
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target
[root@node02 ~]# systemctl daemon-reload
[root@node02 ~]# systemctl start node_exporter
[root@node02 ~]# ps -ef |grep node_exporter
root     15574     1  7 16:49 ?        00:00:00 /usr/local/node_exporter/node_exporter
root     15578  6373  0 16:49 pts/0    00:00:00 grep --color=auto node_exporter
[root@node02 ~]# netstat -tulnp |grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      15574/node_exporter 
[root@node02 ~]# systemctl restart node_exporter

04.Prometheus服务发现(注册中心)

在这里插入图片描述

05.指标抓取周期

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

06.prometheus可集成的服务发现机制

在这里插入图片描述

07.基于文件的服务发现

在这里插入图片描述
书写格式:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

08.基于DNS的服务发现

在这里插入图片描述

09.基于k8s API的服务发现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.对target重新打标签(改标签值 改标签名 删除标签 删除target)

在这里插入图片描述
在这里插入图片描述

显示的蓝色的是重新打标之后的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大纲案例:
在这里插入图片描述
教学案例:给target打新的endpoint标签
在这里插入图片描述
然后重启prometheus

在这里插入图片描述
大纲案例:
在这里插入图片描述
教学案例:给target上的app打新标签名
在这里插入图片描述
备注:上面图片的regex:"<app>" 替换为regex:"(app)" 不用转义和尖括号了
在这里插入图片描述
教学案例:由于已经给target打了新标签名,所以要把原来的标签删除(删除旧标签名)
在这里插入图片描述
在这里插入图片描述
教学案例:删除target(不想监控某个target时进行drop删除动作)
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值