Prometheus监控系列

本文详细介绍了如何使用Prometheus和Grafana搭建完整的监控系统,包括Prometheus、node_exporter、Grafana的安装配置,以及针对CentOS7.4系统、Postgres数据库、Kafka消息队列的监控部署。此外,还讲解了通过shell脚本监控目录文件数量和VSFTPD服务的方法,并配置了Prometheus的可视化告警页面。

Prometheus+Grafana架构 监控(Prometheus详细文档)

一,组件介绍

1,Prometheus介绍:


Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

Prometheus涉及的组件:

Prometheus Server: 时序库,用于收集和存储时间序列数据。

Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端,所有向promtheus server提供监控数据的程序都可以被称为exporter。

Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。

pushgateway: 各个目标主机可上报数据到pushgateway,然后prometheus server统一从pushgateway拉取数据。

2,grafana介绍:

Grafana 是一个开源的监控数据分析和可视化套件。最常用于对基础设施和应用数据分析的时间序列数据进行可视化分析,也可以用于其他需要数据可视化分析的领域。Grafana 可以帮助你查询、可视化、告警、分析你所在意的指标和数据。可以与整个团队共享,有助于培养团队的数据驱动文化。

二,针对不同业务组件的监控部署。

1,Prometheus + node_exporter 对CentOS7.4系统做主机监控。

1.)编写shell脚本,批量上传部署node_exporter客户端来采集数据。


#!/bin/bash

host=( '“java” “nginx” “database” “redis” “kafka”)

#设置主机名变量

for i in ${host[@]};

do

#引入for循环

echo $host

ssh -p 2222 root@$i “mkdir /data/”

#远程登陆机器并做创建目录操作,注意:此脚本使用hostname来做远程操作,实际使用中如使用,需在hosts文件中配置主机名和IP。

scp -P 2222 -r node_exporter-1.3.1.linux-amd64.tar root@$i:/data/

ssh -p 2222 root@$i “cd /data/ && tar -zxvf node_exporter-1.3.1.linux-amd64.tar”

ssh -p 2222 root@$i “cd /data/ && mv node_exporter-1.3.1.linux-amd64 node_exporter”

scp -P 2222 -r node_exporter.service root@$i:/etc/systemd/system/

ssh -p 2222 root@$i “systemctl daemon-reload”

ssh -p 2222 root@$i “systemctl enable node_export”

ssh -p 2222 root@$i “systemctl start node_export”

ssh -p 2222 root@$i “systemctl status node_export”

done

#此脚本执行前需要配置ssh免密码登录服务,否则执行此脚本登录机器需要输入密码。设置ssh免密码登录可参考此链接(shell批量更新操作

node_exporter服务的service文件

[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=root
ExecStart=/data/node_exporter/node_exporter
#StandardOutput=null
Restart=on-failure
[Install]
WantedBy=multi-user.target
客户端部署完后,可以在web端访问查看metrics页面。

http://ip:9100/metircs #9100 node_exporter服务的默认监听端口。
node_exporter web端页面展示

2.)Server端部署Prometheus服务。
1,上传Prometheus tar包,并解压。

mkdir /data

tar -zxvf prometheus-2.33.4.linux-amd64.tar.gz -C /data

cd /data

mv prometheus-2.33.4.linux-amd64/ prometheus

2,配置Prometheus的配置文件。

cd prometheus/

vi prometheus.yml

在scrape_configs配置项下添加Linux监控的job,其中 IP修改为上面部署 node_exporter机器的ip,端口号为9100,注意缩进。

【此处Prometheus配置文件对格式要求严格,建议直接复制粘贴配置文件中的参数,然后修改。如下图所示。】

  • job_name: “node1”

static_configs:

  - targets: ["192.168.48.20:9100"]

Prometheus配置文件配置
​​

3,配置Prometheus的service文件,设置自启动管理。

vi /etc/systemd/system/prometheus.service

[Unit]
Description=“prometheus”
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple

ExecStart=/data/prometheus/prometheus --config.file=/data/prometheus/prometheus.yml --storage.tsdb.path=/data/prometheus/data --web.enable-lifecycle --enable-feature=remote-write-receiver --query.lookback-delta=2m

Restart=on-failure
SuccessExitStatus=0
LimitNOFILE=65536
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=prometheus

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable prometheus
systemctl restart prometheus

查看Prometheus启动是否成功。并访问Prometheus的web操作界面。

systemctl status prometheus

http://ip:9090 #9090 Prometheus的默认监听端口。

访问地址的status下的targets。显示被监控节点是up状态,为正常(代表prometheus和node_exporter链接成功)。
Prometheusweb页面配置

3,)服务端部署配置grafana,便于数据可视化展示。

1,安装grafana安装包

(grafana安装包官网下载地址 grafana软件官网下载地址

rpm -ivh --nodeps --force grafana-8.0.6-1.x86_64.rpm

2,启动grafana服务,并查看服务启动是否成功。

systemctl start grafana-server

netsta

### 在 Windows 服务器中设置 Prometheus 监控 PostgreSQL 数据库实例 要在 Windows 服务器上使用 Prometheus 监控 PostgreSQL 数据库实例,需要完成以下几部分的配置:安装和运行 `postgres_exporter`、配置 Prometheus 抓取指标、以及可视化展示(如 Grafana)。以下是详细的说明: --- #### 1. 安装并运行 `postgres_exporter` `postgres_exporter` 是一个用于将 PostgreSQL 的监控指标导出到 Prometheus 的工具[^2]。它支持多种平台,包括 Windows。 - **下载 `postgres_exporter`** 访问官方 GitHub 地址[^3]或镜像地址[^1],下载适用于 Windows 的二进制文件。 - **配置 `postgres_exporter`** 创建一个配置文件(例如 `config.yml`),指定 PostgreSQL 连接信息。以下是一个示例配置: ```yaml databases: - dbname: your_database_name data_source_name: "host=localhost port=5432 user=your_user password=your_password sslmode=disable" ``` 确保替换为实际的数据库连接参数。 - **运行 `postgres_exporter`** 使用命令行运行 `postgres_exporter`,指定配置文件路径: ```powershell .\postgres_exporter.exe --config.file=config.yml ``` 默认情况下,`postgres_exporter` 将在 `9187` 端口提供指标数据[^2]。 --- #### 2. 配置 Prometheus 抓取指标 Prometheus 需要配置以抓取 `postgres_exporter` 提供的指标。 - **下载并安装 Prometheus** 从 Prometheus 官方网站下载适用于 Windows 的版本,并解压到目标目录。 - **修改 Prometheus 配置文件** 编辑 `prometheus.yml` 文件,添加一个 job 来抓取 `postgres_exporter` 的指标: ```yaml scrape_configs: - job_name: 'postgresql' static_configs: - targets: ['localhost:9187'] ``` 确保 `targets` 指向 `postgres_exporter` 所在的主机和端口。 - **启动 Prometheus** 使用以下命令启动 Prometheus: ```powershell .\prometheus.exe --config.file=prometheus.yml ``` --- #### 3. 可视化与告警 为了更直观地查看 PostgreSQL 的性能指标,可以使用 Grafana。 - **安装并配置 Grafana** 下载并安装 Grafana,将其连接到 Prometheus 数据源。 - **导入 PostgreSQL 监控面板** Grafana 社区提供了许多现成的 PostgreSQL 监控面板模板。通过导入这些模板,可以快速生成可视化的监控界面。 --- #### 注意事项 - 如果默认的 `postgres_exporter` 查询无法满足需求,可以参考自定义查询的方法[^4],创建特定的 SQL 查询并将结果公开给 Prometheus。 - 确保 Windows 防火墙允许 `postgres_exporter` 和 Prometheus 所需的端口(如 9187 和 9090)。 --- ### 示例代码 以下是一个简单的 PowerShell 脚本,用于启动 `postgres_exporter` 和 Prometheus: ```powershell # 启动 postgres_exporter Start-Process -FilePath ".\postgres_exporter.exe" -ArgumentList "--config.file=config.yml" # 启动 Prometheus Start-Process -FilePath ".\prometheus.exe" -ArgumentList "--config.file=prometheus.yml" ``` ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值