Prometheus概述
- Prometheus是一个开源系统监控和警报工具包,最初由 SoundCloud构建。
- 也是一款监控软件,也是一个时序数据库。Prometheus 将其指标收集并存储为时间序列数据,即指标信息与记录时的时间戳以及称为标签的可选键值对一起存储。
- 主要用在容器监控方面,也可以用于常规的主机监控。
- Prometheus是一个框架,可以与其他组件完美结合。
架构图如下:
部署Prometheus服务器
环境说明
Prometheus:192.168.88.5 | web1:192.168.88.100 |
---|
配置时间
# 查看时区
timedatectl
#如果时区不是上海,则改为正确的时区
timedatectl set-timezone Asia/Shanghai
#查看时间&修改时间
date #如果时间不正确 使用date -s "年月日 时:分:秒"
安装Prometheus
从官网下载相应版本,安装到服务器上官网提供的是二进制版,解压就能用,不需要编译
下载地址: https://prometheus.io/download/
解压就能用,不需要编译:
#解压到指定目录
tar -zxvf prometheus-3.0.1.linux-amd64.tar.gz
#移动到指定目录
mv prometheus-3.0.1.linux-amd64 /usr/local/prometheus
-
配置文件
-
配置文件中包含三个配置块:
global
、rule_files
和scrape_configs
。 -
global
块控制 Prometheus 服务器的全局配置。我们有两个选择。第一个,scrape_interval
控制 Prometheus 抓取目标的频率。您可以为单个目标覆盖它。在这种情况下,全局设置是每 15 秒抓取一次。该evaluation_interval
选项控制 Prometheus 评估规则的频率。Prometheus 使用规则来创建新的时间序列并生成警报。 -
rule_files
块指定我们希望 Prometheus 服务器加载的任何规则的位置。现在我们还没有规则。 -
最后一个块,
scrape_configs
控制 Prometheus 监控的资源。由于 Prometheus 还将有关自身的数据公开为 HTTP 端点,因此它可以抓取和监控自身的健康状况。在默认配置中,有一个名为 的作业prometheus
,用于抓取 Prometheus 服务器公开的时间序列数据。该作业包含一个单一的、静态配置的目标,即localhost的9090
端口。Prometheus期望度量在/metrics路径上的目标上可用,所以这个默认作业是通过 URL 抓取的:http://localhost:9090/metrics。
-
编写服务启动文件并启动服务
vim /usr/lib/systemd/system/prometheus.service
#配置如下
[Unit]
Description=Prometheus Monitoring System
After=network.target
[Service]
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/prometheus/data/
[Install]
WantedBy=multi-user.target
启动服务
systemctl daemon-reload
systemctl enable prometheus.service --now
ss -tlnp | grep :9090
LISTEN 0 128 *:9090 *:* users:(("prometheus",pid=3331,fd=6))
访问 http://192.168.88.1:9090
查看监控自身的数据,如分配置给Prometheus运行的内存数量
添加被监控端
监控方式:
- 拉取:pull。监控端联系被监控端,采集数据
- 推送:push。被监控端主动把数据发给监控端。在prometheus中,push的方式需要额外的组件pushgateway
- 被监控端根据自身运行的服务,可以运行不同的exporter(被监控端安装的、可以与Prometheus通信,实现数据传递的软件)
exporter列表:https://prometheus.io/docs/instrumenting/exporters/
部署通用的监控exporter
在web1解压即部署
tar xf node_exporter-1.5.0.linux-amd64.tar.gz
mv node_exporter-1.5.0.linux-amd64 /usr/local/node_exporter
创建服务文件,启动服务
vim /usr/lib/systemd/system/node_exporter.service
#配置如下
[Unit]
Description=node_exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
启服务
systemctl daemon-reload
systemctl enable node_exporter.service --now
ss -tlnp | grep :9100
在Prometheus服务器上添加监控节点
# 1. 修改配置文件,追加以下内容。特别注意缩进
vim /usr/local/prometheus/prometheus.yml
...略...
- job_name: "web1"
static_configs:
- targets: ["192.168.88.100:9100"]
# 2. 重启服务
systemctl restart prometheus.service
Grafana概述
Grafana是一个通用的可视化工具。对于Grafana而言,Prometheus这类为其提供 数据的对象均称为数据源(Data Source)。目前,Grafana官方提供了对:Graphite, InfluxDB, OpenTSDB, tdengine,Prometheus, Elasticsearch, CloudWatch的支持。对于Grafana管理员而言,只需要将这些对象以数据源的形式添加到Grafana中,
Grafana便可以轻松的实现对这些数据的可视化工作。
下载&安装
用户可以根据当前的操作系统,到 Grafana 官网下载安装包,并执行安装。
下载地址如下:https://grafana.com/grafana/download
(1)如果服务器可连网,执行下载命令:
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.3.1-1.x86_64.rpm
如果服务器不可连网,先在可联网的机器浏览器输入:
https://dl.grafana.com/enterprise/release/grafana-enterprise-10.3.1-1.x86_64.rpm
执行安装命令:rpm -ivh grafana-enterprise-10.0.1-1.x86_64.rpm
警告:grafana-enterprise-10.3.1-1.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID 10458545: NOKEY
错误:依赖检测失败:
fontconfig 被 grafana-enterprise-10.3.1-1.x86_64 需要
安装依赖
yum -y install fontconfig
再次安装
rpm -ivh grafana-enterprise-10.3.1-1.x86_64.rpm
启动grafana
#立即启动
systemctl enable grafana-server.service --now
#查看状态
systemctl status grafana-server.service
如果连接超时的话请关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
sed -i '/^SELINUX=/ cSELINUX=disabled' /etc/selinux/config
setenforce 0
初次使用账号和密码都是admin
对接Prometheus
展示node1的监控信息
- grafana模板下载:https://grafana.com/grafana/dashboards/
- 导入主机监控模板。