prometheus基础概念

1.安装promehues-server

Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。
Prometheus基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖。用户只需要下载对应平台的二进制包,解压并且添加基本的配置即可正常启动Prometheus Server。

1.1二进制包安装

服务端口:9090

#找到对应的安装包版本,下载,解压
# 定义一个系统环境变量
export VERSION=2.13.0
curl -LO  https://github.com/prometheus/prometheus/releases/download/v$VERSION/prometheus-$VERSION.darwin-amd64.tar.gz
tar -xzf prometheus-${VERSION}.darwin-amd64.tar.gz
cd prometheus-${VERSION}.darwin-amd64

1.2 配置promethes.yml

解压后当前目录会包含默认的Prometheus配置文件promethes.yml:
【1】为了能够让Prometheus Server能够从当前node exporter获取到监控数据,这里需要修改Prometheus配置文件。
编辑prometheus.yml并在scrape_configs节点下添加以下内容:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  # 采集单个node exporter监控数据【可以直接写ip:端口,当要监控大批服务器时可以写一个json文件】
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']
#采集大批量的node exporter监控数据
##################ALL hosts####################
##add linux  hosts with company
  - job_name: 'linux_server'
    basic_auth:
      username: prometheus
      password: 121212
    file_sd_configs:
    - files:
      - /data_vdb/prometheus/conf/HOST/TJ_linux_system_config_all.json
      refresh_interval: 60m
    relabel_configs:
      - source_labels: [__address__]
        regex: '(.*):(.*)'
        replacement: '$1'
        target_label: ip
        action: replace

#其中 /data_vdb/prometheus/conf/HOST/TJ_linux_system_config_all.json文件中服务器信息如下:
[
   {
        "targets": [
            "10.66.13.207:9100",
            "10.66.14.87:9100",
            "10.66.13.17:9100",
            "10.66.14.162:9100"
        ],
        "labels": {
            "area": "TJ",
            "team": "DC",
            "service_type": "DB",
            "job": "DC_linux_node"
        }
    },

    {
        "targets": [
            "10.66.14.32:9100"
        ],
        "labels": {
            "area": "TJ",
            "team": "SAP",
            "job": "SAP_linux_node"
        }
    }

]

1.3 启动promethus服务

systemctl  restart promethues

访问http://localhost:9090,进入到Prometheus Server。如果输入“up”并且点击执行按钮以后,可以看到如下结果:
其中“1”表示正常,反之“0”则为异常。
在这里插入图片描述

prometheus作为一个时间序列数据库,器采集的数据会以文件的形式存储在本地中,默认的存储路径为data/,因此我们需要先手动创建该目录:

用户也可以通过参数--storage.tsdb.path="data/"修改本地数据存储的路径。

1.4使用容器安装

对于Docker用户,直接使用Prometheus的镜像即可启动Prometheus Server:

docker run -p 9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

启动完成后,可以通过http://localhost:9090访问Prometheus的UI界面如上图效果

2.Node Exporter采集主机运行数据

2.1 安装Node expoter

服务端口:9100
Node Exporter能够采集到主机的运行指标如CPU, 内存,磁盘等信息
Node Exporter同样采用Golang编写,并且不存在任何的第三方依赖,只需要下载,解压即可运行。可以从https://prometheus.io/download/获取最新的node exporter版本的二进制包。

下载安装包,解压,创建软连接,增加server配置文件

curl -OL https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
tar -xzf node_exporter-0.17.0.linux-amd64.tar.gz
ln -s /opt/node_exporter-1.7.0.linux-amd64  /apps/node_exporter

#cat /etc/systemd/system/node_exporter.service
[Unit]
Description=Prometheus Node Exporter
After=network.target

[Service]
ExecStart=/apps/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target
#启动node_export
systemctl daemon-reload
systemctl enable --now node_exporter.service

3.使用PromQL查询监控数据

Prometheus UI是Prometheus内置的一个可视化管理界面,通过Prometheus UI用户能够轻松的了解Prometheus当前的配置,监控任务运行状态等。 通过Graph面板,用户还能直接使用PromQL实时查询监控数据:
访问:https:/localhost:9090,可以通过promQL语句查询。

4.使用Grafana创建可视化Dashboard

使用第三方的可视化工具如Grafana,Grafana是一个开源的可视化平台,并且提供了对Prometheus的完整支持。

4.1 安装并启动grafana服务

docker run -d -p 3000:3000 grafana/grafana

4.2 访问界面并对界面进行配置

访问http://localhost:3000就可以进入到Grafana的界面中,手写添加数据源。

向导页面如下:
在这里插入图片描述
1.添加数据源
访问界面,添加数据源,一般添加promethus,指定数据源类型为Prometheus并且设置Prometheus的访问地址即可。

2.在完成数据源的添加之后就可以在Grafana中创建我们可视化Dashboard了。Grafana提供了对PromQL的完整支持。Dashboard模板参考网址:https://grafana.com/dashboards

5.任务和实例

在promethus.yml文件中添加获取的不同类型的expoter的监控指标数据。

scrape_configs:
 - job_name: 'prometheus'
    static_configs:
    #监控本机数据指标
      - targets: ['localhost:9090']   
 - job_name: 'node'
    static_configs:
    #监控node_exporter的数据指标
      - targets: ['localhost:9100']
 - job_name: 'node'
    static_configs:
    #监控mysqld_export
      - targets: ['localhost:9100'] 

6.prometheus核心组件

基础架构:
在这里插入图片描述

6.1 Prometheus Server

Prometheus Server是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。

  • 获取监控目标(客户端)的方式
    (1)使用静态配置获取
    (2)使用Service Discovery的方式动态获取
  • 存储
    Prometheus Server需要对采集到的监控数据进行存储。它本身是一个时序数据库,将采集到的数据按照时间序列的方式存储在本地磁盘当中。
  • 查询
    Prometheus Server对外提供了自定义的PromQL语言,实现对数据的查询以及分析。Prometheus Server内置的Express Browser UI,通过这个UI可以直接通过PromQL实现数据的查询以及可视化。

Prometheus Server的联邦集群能力可以使其从其他的Prometheus Server实例中获取数据,因此在大规模监控的情况下,可以通过联邦集群以及功能分区的方式对Prometheus Server进行扩展

6.2 Exporters

EXport将监控数据采集的端点通过HTTP服务的形式暴露给prometheus Server ,Prometheus Server通过访问该Exporter提供的Endpoint端点,即可获取到需要采集的监控数据。

6.3 AlertManager

在Prometheus Server中支持基于PromQL创建告警规则,如果满足PromQL定义的规则,则会产生一条告警,而告警的后续处理流程则由AlertManager进行管理。在AlertManager中我们可以与邮件,Slack等等内置的通知方式进行集成,也可以通过Webhook自定义告警处理方式。AlertManager即Prometheus体系中的告警处理中心。

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值