在Linux系统上安装和使用Prometheus+Grafana

我们将会介绍如何在Linux系统上安装和使用Prometheus,包括以下步骤:

  1. 下载和安装Prometheus
  2. 配置Prometheus
  3. 启动Prometheus服务器
  4. 访问Prometheus的Web界面
  5. 配置Prometheus监控自身
  6. 安装和配置Node Exporter(用于监控Linux主机)
  7. 配置Prometheus抓取Node Exporter
  8. 使用PromQL查询数据
  9. 集成Grafana进行数据可视化

注意:以下操作以Ubuntu系统为例,但同样适用于其他Linux发行版。

步骤1:下载和安装Prometheus

前往Prometheus官方网站下载页面(https://prometheus.io/download/)获取最新版本的Prometheus。 或者直接在服务器上使用wget下载。

假设我们使用64位的Linux系统,可以执行以下命令:

复制代码
# 创建目录并进入
mkdir -p ~/prometheus-setup
cd ~/prometheus-setup

# 下载Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
# 注意:请检查官网以获取最新版本,替换上面的版本号

# 解压
tar xvfz prometheus-*.tar.gz

# 进入解压后的目录
cd prometheus-*

步骤2:配置Prometheus

Prometheus的配置文件是prometheus.yml。默认的配置文件已经包含了监控Prometheus自身的配置。

我们可以先查看默认配置:

复制代码
cat prometheus.yml

默认配置可能如下:

复制代码
# 全局配置
global:
  scrape_interval:     15s # 默认每15秒抓取一次
  evaluation_interval: 15s # 每15秒评估一次规则

# 告警配置
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# 规则文件
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# 抓取配置
scrape_configs:
  # 监控Prometheus自身
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

步骤3:启动Prometheus服务器

使用以下命令启动Prometheus:

复制代码
# 启动Prometheus,并指定配置文件
./prometheus --config.file=prometheus.yml

启动后,Prometheus默认会监听9090端口。

步骤4:访问Web界面

在浏览器中访问:http://<服务器的IP地址>:9090

在Web界面中,我们可以查看Prometheus的状态、执行查询等。

步骤5:配置Prometheus监控自身

默认配置中已经包含了监控自身的job,所以无需额外配置。

步骤6:安装和配置Node Exporter

Node Exporter用于暴露主机的硬件和操作系统指标。下载并安装:

复制代码
# 返回上级目录
cd ~/prometheus-setup

# 下载Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz

# 解压
tar xvfz node_exporter-*.tar.gz

# 进入目录
cd node_exporter-*

启动Node Exporter:

复制代码
./node_exporter

Node Exporter默认监听9100端口。

步骤7:配置Prometheus抓取Node Exporter

修改Prometheus的配置文件prometheus.yml,在scrape_configs部分添加新的job:

复制代码
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  # 添加Node Exporter
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']   # 如果Node Exporter运行在同一台机器上

重启Prometheus使配置生效(先按Ctrl+C停止,然后重新启动)。

步骤8:使用PromQL查询数据

在Web界面中,我们可以输入PromQL查询表达式。例如:

  • 查看所有指标:http_requests_total
  • 查看CPU使用率:100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
  • 查看内存使用:node_memory_MemTotal_bytes - node_memory_MemFree_bytes

步骤9:集成Grafana

安装Grafana(这里以Ubuntu为例):

复制代码
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana

启动Grafana服务:

复制代码
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

Grafana默认监听3000端口,访问http://<服务器IP>:3000,默认用户名和密码为admin/admin。

添加数据源:

登录Grafana web ui 界面,点击左边框"配置"按钮,选择"Data Source",选择"Add data source"

然后可以导入现成的仪表盘模板,例如Node Exporter的仪表盘,模板ID为1860。

这样,我们就完成了Prometheus的安装、配置,以及Node Exporter的安装和Grafana的集成。

注意:置开机启动。

下面提供将Prometheus和Node Exporter配置为系统服务的示例(Ubuntu系统):

创建Prometheus系统服务文件:

复制代码
sudo nano /etc/systemd/system/prometheus.service

内容如下(请根据实际路径修改):

复制代码
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/home/your_user/prometheus-setup/prometheus-2.30.3.linux-amd64/prometheus \
    --config.file /home/your_user/prometheus-setup/prometheus-2.30.3.linux-amd64/prometheus.yml \
    --storage.tsdb.path /home/your_user/prometheus-setup/data

[Install]
WantedBy=multi-user.target

创建Node Exporter系统服务文件:

复制代码
sudo nano /etc/systemd/system/node_exporter.service

内容如下:

复制代码
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/home/your_user/prometheus-setup/node_exporter-1.2.2.linux-amd64/node_exporter

[Install]
WantedBy=multi-user.target

注意:建议创建一个专门的用户来运行这些服务:

复制代码
sudo useradd --no-create-home --shell /bin/false prometheus

并修改对应目录的权限。

最后,重新加载systemd并启用服务:

复制代码
sudo systemctl daemon-reload
sudo systemctl enable prometheus.service
sudo systemctl start prometheus.service
sudo systemctl enable node_exporter.service
sudo systemctl start node_exporter.service

这样,即使服务器重启,服务也会自动启动。

以上就是在Linux系统上安装和使用Prometheus的完整步骤。

相关推荐
ShineWinsu3 小时前
对于Redis:Redis的认识以及分布式系统的解析
linux·数据库·c++·redis·缓存·消息队列·分布式架构
Zenova EdgeOS3 小时前
Linux IO 监测:iotop 工业边缘排障实战
linux·边缘计算·工业网关·iotop·排障
Fcy6483 小时前
Linux下 传输层协议UDP详解(含底层源码解析)
linux·运维·udp
青梅味猪大肠4 小时前
【操作系统-24】双标志先检查
linux·运维·服务器
xiaoye-duck4 小时前
《Linux 网络编程》深入理解五种 IO 模型:从 IO 本质到非阻塞 IO 实战
linux·网络
程序员-Benothing4 小时前
Linux内核与模块管理:uname、lsmod、modprobe、sysct
linux·运维·数据库
微三云生态系统架构师-彭丹4 小时前
智慧物业工单智能派单算法:技能匹配与位置负载均衡设计
运维·负载均衡·物业管理·调度算法·工单系统·智能派单·智慧物业
嵌入式小能手4 小时前
飞凌嵌入式ElfBoard-Shell编程应用实例-使用WiFi拨号上网
linux·服务器·网络
..Dauntless..4 小时前
【Linux】环境变量
linux·运维·服务器
FED_AF4 小时前
Linux运维“邪修”功法之正则表达式
linux·运维·正则表达式