【Prometheus】使用Prometheus+Grafana快速实现服务器监控

一、监控方案简述

 1. 软件清单

  • Node_exporter
  • Prometheus
  • Grafana
  • Dashboard

二、软件功能

2.1 数据采集工具

Node_exporter是一个二进制的可执行文件,部署在Linux服务器上,可以采集Linux服务器的运行状态数据,如服务器是否可用、文件系统、CPU、内存、网络、磁盘IO等。

下载地址:https://prometheus.io/download/

2.2 数据采集和存储

Prometheus根据配置在prometheus.yml剧本文件中的数据采集URL,定时从被监控服务器拉取监控数据,数据存储在时序数据库(TSDB)里面。Prometheus具有强大的PromQL查询语言。

下载地址:https://prometheus.io/download/ 

 ​​​​​2.3 数据展示

Grafana主要用于Prometheus监控数据的前端展示,需要提前将Pormetheus的地址作为数据源,配置到Grafana平台上。另外,可视化展示还需要在Grafana官网上下载。

下载地址:https://grafana.com/grafana/download

 

 

 ​​​​​​2.4 数据展示模板

Dashboard里面包含了很多用于数据查询的PromQL语句,将Dashboard导入到Grafana以后,即可将查询到的数据进行可视化展示,如Graph、Table等。

下载地址:https://grafana.com/grafana/dashboards

以Linux服务器的监控展示8919为例,点击Download JSON即可。

下载地址:https://grafana.com/grafana/dashboards/8919

二、组件安装配置

 1. Node Exporter

### 上传压缩包到服务器的指定目录下,如/monitor

# pwd

/monitor

# ls

node_exporter-1.1.2.linux-amd64.tar.gz

### 解压压缩包

# tar -xzf node_exporter-1.1.2.linux-amd64.tar.gz

# rm -f node_exporter-1.1.2.linux-amd64.tar.gz

# mv node_exporter-1.1.2.linux-amd64 node_exporter

# cd node_exporter

### 给主程序授权

# chmod 755 ./node_exporter

### 后台启动node_exporter

# ./node_exporter --web.listen-address="192.168.223.203:19100" &

# netstat -tnlp| grep 19100

# ps -ef| grep node_exporter| grep -v grep

测试数据抓取是否成功

方法一:在服务器里面直接用curl命令测试

# curl http://192.168.223.203:19100/metrics

方法二:本地浏览器访问(注意:端口访问权限)

2、Prometheus

# pwd

/monitor

# ls prometheus-2.28.1.linux-amd64.tar.gz

prometheus-2.28.1.linux-amd64.tar.gz

# tar -xzf prometheus-2.28.1.linux-amd64.tar.gz

# rm -f prometheus-2.28.1.linux-amd64.tar.gz

# mv prometheus-2.28.1.linux-amd64/ prometheus

# cd Prometheus

### 启动Pormetheus

# ./prometheus --web.listen-address="192.168.223.203:19090" --storage.tsdb.retention=60d --web.enable-lifecycle --config.file="./prometheus.yml" &

# netstat -tnlp| grep 19090

修改prometheus.yml剧本文件,将node_exporter的metrics地址配置进去(红色部分) 

 

# my global config

global:

  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.

  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.

  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration

alerting:

  alertmanagers:

  - static_configs:

    - targets:

      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.

rule_files:

  # - "first_rules.yml"

  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:

# Here it's Prometheus itself.

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: ['192.168.223.203:19090']

  - job_name: 192.168.223.203:19100

    honor_timestamps: true

    scrape_interval: 30s

    scrape_timeout: 15s

    metrics_path: /metrics

    scheme: http

    static_configs:

    - targets:

      - 192.168.223.203:19100

      labels:

        server_category: node_exporter

        system_category: 服务器监控

重启Pormetheus进程,即可访问Prometheus监控平台的GUI界面

http://192.168.223.203:19090/targets

点击Endpoint,可以看到每个metrics里面具体的数据采集指标项。如下图所示: 

 3、Grafana

# pwd

/monitor

# ls grafana-8.0.5.linux-amd64.tar.gz

grafana-8.0.5.linux-amd64.tar.gz

# tar -xzf grafana-8.0.5.linux-amd64.tar.gz

# rm -f grafana-8.0.5.linux-amd64.tar.gz

# mv grafana-8.0.5 grafana

# cd grafana/conf

# vi default.ini

### 增加http_addr配置,修改http_port13000或者其他端口

# The ip address to bind to, empty will bind to all interfaces

http_addr = 192.168.223.203

# The http port to use

http_port = 13000

# cd ../bin

# ./grafana-server &

首次登录。用户名和密码默认都是admin

输入后点击Log in,会提示重新设置密码。输入新密码,点击提交。

 点击Add your data source

选择数据源的类型为Prometheus 

 

 输入PrometheusURL地址

 

到最下面,点击Save & test 

 点击 Back,可以退回到Data source界面,发现默认的数据源已经配置成功。

点击左侧的四方格,点击Home,即可回到主界面

 

点击左侧的+号,点击Import,选择dashboard 

 点击Upload JSON file(如果PC可以联网,就直接输入8919这个dashboardID即可) 

 

VictoriaMetrics栏选择刚才新建的Prometheus数据源,然后点击import 

 跳转到监控页面

Prometheus API可以通过HTTP请求导出数据。你可以使用Python的requests库来发送HTTP请求并获取数据。以下是一个示例代码,展示了如何使用Prometheus API导出数据: ```python import requests def get_prometheus_data(url): response = requests.get(url) data = response.json() return data prometheus_url = "http://your-prometheus-api-url" data = get_prometheus_data(prometheus_url) ``` 在上面的代码中,你需要将"your-prometheus-api-url"替换为你实际的Prometheus API的URL。通过调用`get_prometheus_data`函数,你可以获取到从Prometheus API导出的数据。 请注意,具体的Prometheus API的URL和数据导出的方式可能因实际情况而有所不同。你需要根据你的具体环境和需求来调整代码。 #### 引用[.reference_title] - *1* *2* [利用prometheus数据生成报表输出到docx](https://blog.csdn.net/vonhehe/article/details/81053408)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Prometheus api 查询监控数据导出 CSV&Excel](https://blog.csdn.net/ganices/article/details/115556128)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cnskylee

技术分享我是认真的,期待您打赏

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

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

打赏作者

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

抵扣说明:

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

余额充值