监控 - Prometheus 介绍和安装

监控的意义

监控(monitor):监视公司的服务器或者服务,一旦出现问题,及时告诉运维人员去处理,将公司的损失减少到最小。

监控在公司里非常重要,监控的背后:收集数据,分析数据,可以提前预知一些问题,及时处理。

及时的发现问题,提醒工程师尽快的去解决问题,减少公司的损失,提升了产品的品质,增强了用户的信任。

Prometheus是什么

Prometheus 是一个监控软件(监控容器非常好,也可以监控其他的非容器的机器的业务,例如:MySQL,nginx,redis,系统等)。

Prometheus是一个开源系统监控和警报工具包,最初是在SoundCloud上构建的。

Prometheus于2016年加入了云原生计算基金会,成为继Kubernetes之后的第二个托管项目。

Prometheus 是一个时序数据库(time series database):按照事情发生的时间记录数据的数据库。

Prometheus 收集其指标并将其存储为时间序列数据,即指标信息与记录它的时间戳一起存储,以及称为标签的可选键值对。

Prometheus 架构图


 

采集数据:exporter   pushgateway  中间件(代理)

存储数据:tsdb

提供数据:http server 

显示数据: grafana

告警、报警:alertmanager

exporter : 是prometheus的客户端程序,需要安装到被监控的服务器上。exporter是一个程序,需要去定制,但是prometheus平台给我们开发了很多通用的或者定制的exporter

exporter会到客户机(被监控的服务器上)收集指定的指标数据,例如:cpu的使用率,内存的使用率,磁盘的使用情况,网络的带宽使用情况等等数据

promQL 是Prometheus里的SQL语句--》可以实现增删改查等操作。

jobs --》作业,任务--》一个运行的程序对应进程 --》长作业:长时间的工作
    长时间一直运行的程序产生的进程--》守护进程 --》一直运行,不退出的

short-lived jobs 短作业:短时间的工作 --》进程

Prometheus targets 被监控的目标--》被监控的服务器

pushgateway:短时间运行的程序可以主动将自己的数据push到pushgateway里存放,然后prometheus server到pushgateway去拉数据。

grafana 是出图工具,数据显示的工具。

grafana 比 Prometheus 自带的web界面出图工具要漂亮。

什么是指标?

指标(metric):是外行术语的数字度量。术语时间序列是指记录随时间的变化。用户想要测量的内容因应用程序而异。对于 Web 服务器,可能是请求时间;对于数据库,它可以是活动连接数或活动查询数。

指标在理解应用程序以某种方式工作的原因方面起着重要作用。假设您正在运行一个 Web 应用程序,并发现它很慢。要了解您的应用程序发生了什么,您将需要一些信息。例如,当请求数较高时,应用程序可能会变慢。如果您有请求计数指标,则可以确定原因并增加处理负载的服务器数。

什么是标签?

标签(Labels )启用 Prometheus 的维度数据模型:同一指标名称的任何给定标签组合都会标识该指标的特定维度实例化(例如:对处理程序使用该方法的所有 HTTP 请求)。查询语言允许基于这些维度进行筛选和聚合。更改任何标签值(包括添加或删除标签)都将创建新的时间序列。

标签名称可能包含 ASCII 字母、数字以及下划线。它们必须匹配正则表达式 .以(两个"_")开头的标签名称保留供内部使用。

标签值可以包含任何 Unicode 字符。

具有空标签值的标签被视为等效于不存在的标签。

push和pull 那个更加好?

1.数据的实时性--》得到最新鲜的数据 --》push

2.服务器的负载,网络的负载--》可控性 --》pull


安装Prometheus

一.使用容器安装

[root@docker ~]# docker run -d -p 9090:9090 --name sc-prometheus-1 prom/prometheus
Unable to find image 'prom/prometheus:latest' locally
latest: Pulling from prom/prometheus
3cb635b06aa2: Pull complete 
34f699df6fe0: Pull complete 
33d6c9635e0f: Pull complete 
f2af7323bed8: Pull complete 
c16675a6a294: Pull complete 
827843f6afe6: Pull complete 
3d272942eeaf: Pull complete 
7e785cfa34da: Pull complete 
05e324559e3b: Pull complete 
170620261a59: Pull complete 
ec35f5996032: Pull complete 
5509173eb708: Pull complete 
Digest: sha256:cb9817249c346d6cfadebe383ed3b3cd4c540f623db40c4ca00da2ada45259bb
Status: Downloaded newer image for prom/prometheus:latest
a5fe141746a6123ced3257b89244b1555c2728c31022ffe916b3ed970c79f6d7

[root@docker ~]# docker ps
CONTAINER ID   IMAGE             COMMAND                   CREATED          STATUS          PORTS                                       NAMES
a5fe141746a6   prom/prometheus   "/bin/prometheus --c…"   19 seconds ago   Up 18 seconds   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   sc-prometheus-1

http://192.168.102.137:9090/graph --》访问图形界面

http://192.168.102.137:9090/metrics  --》Prometheus提供的数据的API

grafana 就是访问Prometheus的http://192.168.102.137:9090/metrics 接口获取数据,然后出图展示。


二.源码二进制安装

1.下载源码包,用xftp上传到Linux里。

wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz


[root@docker ~]# mkdir /prom

[root@docker ~]# cd /prom

[root@docker prom]# ls
prometheus-2.34.0.linux-amd64.tar.gz

2.解压

[root@docker prom]# tar xf prometheus-2.34.0.linux-amd64.tar.gz 
[root@docker prom]# ls
prometheus-2.34.0.linux-amd64  prometheus-2.34.0.linux-amd64.tar.gz
[root@docker prom]# cd prometheus-2.34.0.linux-amd64

[root@docker prometheus-2.34.0.linux-amd64]# ls
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool

3.修改环境变量

[root@docker prom]# PATH=/prom:$PATH

[root@docker prom]# which prometheus
/prom/prometheus

注意:先把容器启动的Prometheus停掉并且删除,否则会启动不起来。

[root@docker prom]# docker stop sc-prometheus-1
sc-prometheus-1

[root@docker prom]# docker rm sc-prometheus-1
sc-prometheus-1

4.在后台启动Prometheus

[root@docker prom]# nohup prometheus --config.file=/prom/prometheus.yml &
[1] 54097
[root@docker prom]# nohup: 忽略输入并把输出追加到"nohup.out"
 
[root@docker prom]# netstat -anplut|grep prom
tcp6       0      0 :::9090                 :::*                    LISTEN      54097/prometheus    
tcp6       0      0 ::1:9090                ::1:40076               ESTABLISHED 54097/prometheus    
tcp6       0      0 ::1:40076               ::1:9090                ESTABLISHED 54097/prometheus  

Prometheus.yml 是 Prometheus 的配置文件。

[root@docker prom]# vim prometheus.yml 

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"  #监控的一个任务

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]  #具体被监控的服务器的访问接口

5.访问:http://192.168.102.137:9090

6.停止 Prometheus

[root@docker prom]# ps aux|grep prom
root      34842  0.7  2.8 981508 52412 pts/1    Sl   10:01   0:02 prometheus --config.file=/prom/prometheus.yml
root      37565  0.0  0.0 112824   988 pts/1    S+   10:07   0:00 grep --color=auto prom
[root@docker prom]# kill -9 34842


[root@docker prom]# ps aux|grep prom
root      37740  0.0  0.0 112824   984 pts/1    S+   10:07   0:00 grep --color=auto prom
[1]+  已杀死               nohup prometheus --config.file=/prom/prometheus.yml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩未零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值