一、Prometheus功能
Prometheus 在系统监控和警报方面非常强大,它适用于多种应用场景。以下是一些常见的 Prometheus 应用场景,以及具体的例子:
-
性能监控:Prometheus 可以用来监控服务器和应用程序的性能。比如,它可以收集和显示 CPU 使用率、内存使用、磁盘 IO、网络流量等指标。例如,一个云服务提供商可能使用 Prometheus 来监控其数据中心的资源使用情况,以确保服务稳定。
-
服务健康监控:Prometheus 可以检测和报告各种服务的运行状态。这包括检查服务是否在线、响应时间是否在正常范围内等。例如,一个在线电商平台可以使用 Prometheus 来监控其网站和后端服务的健康状况,及时发现和解决问题。
-
警报:Prometheus 的警报管理系统(Alertmanager)允许用户定义复杂的警报规则,当特定条件触发时发送通知。例如,如果某个关键服务的响应时间超过阈值,Prometheus 可以配置发送电子邮件或通过 Slack 通知团队成员。
-
容器和微服务监控:在容器化和微服务架构中,Prometheus 特别有用。它可以与 Kubernetes 和 Docker 等技术集成,监控容器的性能和健康状况。例如,在 Kubernetes 集群中运行的服务可以通过 Prometheus 监控集群内的每个容器和微服务。
-
自定义指标监控:Prometheus 允许开发者定义和收集自定义指标。这对于应用程序性能监控特别有用。比如,一个移动应用开发团队可能使用 Prometheus 来监控应用的用户活跃度或交易处理时间。
-
网络设备监控:Prometheus 还可以用来监控网络设备的性能和健康状况,比如路由器、交换机和负载均衡器。例如,网络运营商可以利用 Prometheus 监控其基础设施的流量和设备状态。
这些场景展示了 Prometheus 在监控和警报方面的多功能性和灵活性。通过定制查询和仪表板,它可以适应各种不同的监控需求。
二、服务器安装步骤
2.1 首先搭建本地yum源,更新系统。
2.2 下载Prometheus安装包
官网地址https://prometheus.io/download/,
2.3 创建一个用户和组
sudo useradd --no-create-home --shell /bin/false prometheus
2.4 创建必要的目录
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
2.5 设置权限
sudo chown prometheus:prometheus /var/lib/prometheus
2.6 解压 Prometheus
tar -xvf prometheus-*.tar.gz
2.7 移动 Prometheus 二进制文件
sudo mv prometheus-*/prometheus /usr/local/bin/
sudo mv prometheus-*/promtool /usr/local/bin/
2.8 设置权限
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool
2.9 移动配置文件和库
sudo mv prometheus-*/consoles /etc/prometheus
sudo mv prometheus-*/console_libraries /etc/prometheus
2.10 创建配置文件
sudo vi /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
2.11 更改配置文件和文件夹的所有权
sudo chown -R prometheus:prometheus /etc/prometheus
2.12 启动 Prometheus
sudo -u prometheus /usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
2.13 设置 Prometheus 为服务,创建 systemd 服务文件
sudo vi /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
2.14 启用并启动 Prometheus 服务
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
三、验证