Prometheus 监控系统 + Grafana 可视化平台部署

Prometheus、Node Exporter 和 Grafana 是常见的用于监控和可视化系统性能的工具,它们在许多现代运维和监控环境中被广泛使用。下面我会简单介绍一下它们各自的功能和作用:

1. Prometheus

  • 概述:Prometheus 是一个开源的监控和警报系统,主要用于收集和存储时间序列数据。它具有强大的查询语言(PromQL),可以从不同的数据源获取指标数据,并对数据进行分析和处理。
  • 功能
    • 数据采集:通过定期抓取 HTTP 接口来收集目标系统的指标数据(通常是以 JSON 或者类似格式的文本数据)。
    • 时间序列存储:Prometheus 存储的数据是时间序列数据,它通过标签(labels)来标识不同的维度,使得对同一指标的不同维度进行查询变得更加高效。
    • 警报功能:Prometheus 可以根据用户定义的规则触发警报,当指标数据达到指定的阈值时,会通过邮件、Slack 或其他通知系统发送警报。
  • 常见用途:主要用于监控服务、应用程序、数据库、硬件设备等的性能,支持横向扩展。

2. Node Exporter

  • 概述:Node Exporter 是 Prometheus 的一个导出器(exporter),用于收集 Linux/Unix 系统的硬件和操作系统层面的指标数据,并将这些数据暴露出来,供 Prometheus 抓取。
  • 功能
    • 硬件指标:它能采集到系统的 CPU 使用率、内存使用情况、磁盘 I/O、网络流量等。
    • 操作系统指标:Node Exporter 可以提供操作系统相关的指标,例如操作系统负载、系统启动时间、磁盘空间、文件系统的使用情况等。
    • 资源消耗:它帮助 Prometheus 监控主机资源的使用情况,从而分析系统瓶颈或性能问题。
  • 工作原理:Node Exporter 运行在目标服务器上,通过一个 HTTP 服务暴露采集到的指标数据,Prometheus 定期抓取这些数据进行存储和分析。

3. Grafana

  • 概述:Grafana 是一个开源的可视化和分析平台,主要用于与时间序列数据库(如 Prometheus)配合使用,将收集到的数据以图表、仪表板等形式进行展示。

  • 功能

    • 数据可视化:Grafana 提供了多种类型的图表,支持用户创建多种形式的仪表板,例如线图、柱状图、饼图等,帮助用户更直观地理解数据。
    • 实时监控:Grafana 可以实时地从 Prometheus 获取最新的指标数据,并动态展示在仪表板上,适合用于监控应用和基础设施的健康状态。
    • 警报与通知:Grafana 也有警报功能,用户可以设置阈值,当数据超过预设的范围时,Grafana 会通过邮件、Slack 等通知用户。
    • 数据源支持:除了 Prometheus,Grafana 还支持其他多种数据源,例如 Elasticsearch、InfluxDB、MySQL 等,提供了灵活的数据集成能力。
  • 常见用途:Grafana 主要用于数据展示和监控面板,它可以将 Prometheus 等监控工具收集到的指标数据展示给用户,使得运维人员可以快速地了解系统状态。

总结:

  • Prometheus:主要用于数据的采集、存储和查询。
  • Node Exporter:是 Prometheus 的一个组件,用于采集 Linux/Unix 系统的硬件和操作系统级别的指标。
  • Grafana:用来可视化展示 Prometheus 等数据源提供的指标数据,帮助用户更好地理解监控数据。

它们通常是一起使用的,Prometheus 收集数据,Node Exporter 提供主机级指标,Grafana 则帮助展示和分析这些数据。

Prometheus、Node Exporter 和 Grafana 版本兼容性表

Prometheus 版本Node Exporter 版本Grafana 版本备注
3.x2.x、3.x9.x、10.x推荐使用最新版本的 Prometheus 和 Node Exporter,Grafana 9.x 和 10.x 也能良好支持,兼容性最好
2.30.x - 2.33.x2.x8.x、9.x兼容性很好,建议使用更新版本的 Grafana 和 Node Exporter
2.25.x - 2.29.x1.x、2.x7.x、8.x仍然支持大多数功能,但某些新特性在较老版本中可能不可用
2.20.x - 2.24.x1.x6.x、7.x对一些新功能支持较弱,更新为最新版本可以获得更多功能
2.x 以下0.18.x 或更早版本5.x 或更低版本使用旧版本时,可能会遇到兼容性问题,建议升级到较新版本

开始部署搭建:

步骤1: 安装Prometheus

下载官网:下载 |普罗 米修斯

#切换到opt目录
cd /opt
#安装Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v3.2.0/prometheus-3.2.0.linux-amd64.tar.gz
#解压安装包
tar -xvzf prometheus-3.2.0.linux-amd64.tar.gz
#重命名为prometheus
mv prometheus-3.2.0.linux-amd64 prometheus
#切换cd prometheus目录
cd prometheus
#在这个目录下,你会看到 prometheus 可执行文件。你可以使用以下命令来启动 Prometheus
./prometheus --config.file=prometheus.yml
#默认情况下,Prometheus 会启动并监听在 http://localhost:9090,你可以在浏览器中访问它。
#防火墙设置:如果你的服务器启用了防火墙,确保打开 9090 端口。
sudo firewall-cmd --add-port=9090/tcp --permanent
sudo firewall-cmd --reload
#加入systemd 管理
sudo vim /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus Monitoring System
After=network.target

[Service]
User=root
Group=root
Type=simple
ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --storage.tsdb.path=/opt/prometheus/data
Restart=on-failure

[Install]
WantedBy=multi-user.target

#重新加载 systemd 并启用服务
sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus
sudo systemctl status prometheus


#运维故障补充:
#日志和调试:你可以使用以下命令查看 Prometheus 服务的日志来诊断问题
sudo journalctl -u prometheus -f
 
#查看 /opt/prometheus/data目录中的文件是否被其他进程占用
lsof +D /opt/prometheus/data
 
#修改访问端口 ./prometheus --config.file=prometheus.yml --web.listen-address=:9100 &  
#命令后面加参数 把9100换成你先设置的端口  --web.listen-address=:9100 &

#查看版本命令
/opt/prometheus/prometheus --version
或者
#临时
export PATH=$PATH:/opt/prometheus
prometheus --version
#永久
#打开文件
vim ~/.bashrc
#在文件里面添加以下内容
export PATH=$PATH:/opt/prometheus
#运行以下命令让配置立即生效
source ~/.bashrc

步骤2:下载node_exporter

#切换到/opt目录
cd /opt
#安装node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.9.0/node_exporter-1.9.0.linux-amd64.tar.gz
#解压安装包
tar -xvzf node_exporter-1.9.0.linux-amd64.tar.gz
#重命名为node_exporter
mv node_exporter-1.9.0.linux-amd64 node_exporter
#切换到node_exporter目录里面
cd node_exporter
#启动服务验证
./node_exporter
#默认情况下,node_exporter 会启动并监听在 http://localhost:9100,你可以在浏览器中访问它。
#防火墙设置:如果你的服务器启用了防火墙,确保打开 9100 端口。
sudo firewall-cmd --add-port=9100/tcp --permanent
sudo firewall-cmd --reload
#加入systemd 管理
sudo vim /etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter
Documentation=https://github.com/prometheus/node_exporter
After=network.target

[Service]
User=root
Group=root
ExecStart=/opt/node_exporter/node_exporter
Restart=always
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target


#重新加载 systemd 并启用服务
systemctl daemon-reload
systemctl enable node_exporter
systemctl start node_exporter
systemctl status node_exporter

#查看版本
./node_exporter --version
或者
#临时
export PATH=$PATH:/opt/node_exporter
node_exporter --version
#永久
#打开文件
vim ~/.bashrc
#在文件里面添加以下内容
export PATH=$PATH:/opt/node_exporter
#运行以下命令让配置立即生效
source ~/.bashrc

node_exporter 添加到 prometheus 监控文件里面。

#编辑prometheus.yml文件
vim /opt/prometheus/prometheus.yml
#删除不必要的注释
#复制
y4j
#粘贴
p

#以下内容
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
#把名称改为node_exporter 把端口改为9100

打开prometheus web 界面点击状态 查看目标运行状态 可以看到 监控的目标 prometheus 和 node_exporter。

步骤3:下载Grafana

下载官网:下载 Grafana |Grafana 实验室

 

#下载命令Grafana
sudo yum install -y https://dl.grafana.com/oss/release/grafana-10.4.16-1.x86_64.rpm
#查看版本
grafana-server -v
#启动 Grafana 服务
sudo systemctl start grafana-server
#设置启用开机自启动:
sudo systemctl enable grafana-server
#查看状态
sudo systemctl status grafana-server

#访问 Grafana Web UI
#默认情况下,Grafana 会监听在 http://localhost:3000 上。您可以在浏览器中访问该地址,使用默认的用户名和密码进行登录:
#用户名:admin
#密码:admin(首次登录时会提示您更改密码)
#登录后,您就可以开始配置仪表板和数据源了。

#防火墙配置
#从外部访问 Grafana,需要允许通过端口 3000:
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --reload

输入默认用户:admin 默认密码 :admin 然后点击登录 设置新密码

设置新密码 点击提交,就可以看到Grafana web界面了。

安装prometheus插件。

添加prometheus 链接

保存并测试。

点击仪表盘 新增功能 导入模板

点击蓝色超链接 选择模板。

选择一个想要的模板,复制模板id

粘贴模板ID 然后点击load。

选择prometheus源 然后导入。

可视化平台部署完成 !

### PrometheusGrafana 的多主机监控部署配置 为了实现使用 PrometheusGrafana 对多个主机进行监控,可以按照以下方法完成部署和配置。 #### 1. 安装 Prometheus 在每台需要被监控的主机上安装 `node_exporter` 并运行它。以下是具体操作: - **拷贝并解压 Node Exporter** 将 `node_exporter` 文件包上传至目标服务器,并解压缩[^5]。 ```bash scp prometheus_soft/node_exporter-1.5.0.linux-amd64.tar.gz 192.168.88.100:/root/ tar xf node_exporter-1.5.0.linux-amd64.tar.gz mv node_exporter-1.5.0.linux-amd64 /usr/local/node_exporter ``` - **创建服务文件** 在 `/etc/systemd/system/` 下创建名为 `node_exporter.service` 的服务文件。 ```ini [Unit] Description=Node Exporter [Service] ExecStart=/usr/local/node_exporter/node_exporter [Install] WantedBy=default.target ``` - **启动服务** 启动 `node_exporter` 服务并设置开机自启[^5]。 ```bash systemctl daemon-reload systemctl start node_exporter systemctl enable node_exporter ``` #### 2. 配置 Prometheus 抓取数据 编辑 Prometheus 的配置文件 (`prometheus.yml`) 来指定抓取的目标节点列表。假设两台主机分别为 `192.168.88.100` 和 `192.168.88.101`。 ```yaml scrape_configs: - job_name: 'node' static_configs: - targets: ['192.168.88.100:9100', '192.168.88.101:9100'] ``` 保存修改后的配置文件后重启 Prometheus 服务以应用更改。 ```bash systemctl restart prometheus ``` #### 3. 安装与配置 Grafana 可以通过多种方式安装 Grafana,例如 RPM 包、YUM 软件源或者 Docker[^1][^2][^3]。 - **RPM 包安装** 使用官方提供的 RPM 包来安装 Grafana[^1]。 ```bash cd /opt rpm -Uvh grafana-enterprise-8.5.9-1.x86_64.rpm systemctl start grafana-server systemctl enable grafana-server ``` - **通过 YUM 源安装** 添加 Grafana 的软件仓库并执行安装命令。 ```bash cat <<EOF >/etc/yum.repos.d/grafana.repo [grafana] name=grafana baseurl=https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm repo_gpgcheck=0 gpgkey=https://packages.grafana.com/gpg.key enabled=1 EOF yum install -y grafana systemctl enable grafana-server --now ``` - **Docker 方式安装** 如果环境支持 Docker,则可以直接拉取镜像并运行容器[^3]。 ```bash docker run -d \ --name grafana \ -p 3000:3000 \ -v /opt/grafana-storage:/var/lib/grafana \ grafana/grafana ``` #### 4. 连接 Prometheus 数据源到 Grafana 登录到 Grafana Web 界面 (默认地址为 http://<server-ip>:3000),用户名密码均为 admin/admin,默认情况下需立即修改初始密码。 进入左侧菜单栏中的 “Configuration -> Data Sources”,点击 Add data source,选择 Prometheus 类型的数据源。填写如下字段[^1]: - URL: 输入本地或远程 Prometheus 实例的访问路径,通常为 `http://localhost:9090` 或实际 IP 地址。 - Access: 设置为 Browser 或 Server 取决于您的网络架构需求。 - Save & Test: 测试连接成功即可继续下一步骤。 #### 5. 导入仪表盘展示指标 Grafana 提供了许多预定义好的模板化 Dashboard,可以从其官网下载 JSON 文件导入使用;也可以手动新建图表来自定义显示所需性能参数[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GHY云端大师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值