- A+
Prometheus是一个开源的系统监控和报警工具包,广泛用于收集和存储各种指标数据。
核心组件:
Prometheus服务器:负责数据收集、存储和查询;
Alertmanager:处理告警通知;
服务发现机制:自动发现需要监控的目标;
Exporter:暴露被监控组件的指标。Prometheus主要特点:
数据收集与存储:Prometheus采用拉取(scrape)机制高效收集指标数据,并将这些数据有序存储于时序数据库(TSDB)中,同时提供灵活的查询语言PromQL,便于深入的数据分析和查询操作;
多维度数据模型:借助metric名称与键值对标签,Prometheus能够清晰区分各时间序列数据,实现数据的精准聚合、灵活切割及高效切片,满足多样化的数据分析需求;
灵活的查询语言:PromQL,作为Prometheus的强大查询语言,支持构建复杂的查询语句,能够对多个metrics执行乘法、加法、连接等丰富操作,为数据探索提供无限可能;
易于管理:Prometheus服务器以单独的二进制文件形式存在,部署简便,无需依赖复杂的分布式存储系统,显著降低了管理难度和运维成本;
高效性能:每个采样点在Prometheus中占用的存储空间均经过优化,确保存储效率的同时,其卓越性能足以支撑大规模集群的监控需求,实现高效、稳定的数据采集和分析。
Grafana是一个开源的度量分析和监控可视化解决方案,主要用于展示时间序列数据。
Grafana主要特点:
数据可视化:提供折线图、柱状图、饼图、热力图等多种图表,用户可自定义,实现多维度数据展示;
多数据源支持:兼容Prometheus、InfluxDB等,实现数据统一展示和分析;
动态仪表板:用户可创建互动式仪表板,支持实时数据更新,便于监控和分享;
告警功能:支持自定义告警规则,数据触及阈值时立即通知,确保及时响应;
查询编辑器:强大的查询编辑器,支持复杂查询语句,精准提取数据源信息;
集成与扩展:与多种数据源和监控系统无缝对接,提供插件系统,易于功能扩展和个性化定制。
Prometheus与Grafana结合使用
数据收集与存储:Prometheus负责高效收集和存储监控数据;
数据可视化:Grafana通过Prometheus API获取数据,以直观的仪表板展示监控信息;
告警通知:Grafana支持设置告警规则,并在触发时通过企业微信、钉钉等发送通知。
安装Prometheus
下载Prometheus
wget https://githubfast.com/prometheus/prometheus/releases/download/v2.53.2/prometheus-2.53.2.linux-amd64.tar.gz
解压文件
tar xvf prometheus-2.53.2.linux-amd64.tar.gz
移动目录
mv prometheus-2.53.2.linux-amd64 /usr/local/prometheus-2.53.2
ln -s /usr/local/prometheus-2.53.2/ /usr/local/prometheus
创建Prometheus用户并授权
useradd -s /sbin/nologin -M prometheus
chown -R prometheus:prometheus /usr/local/prometheus*
创建系统服务
vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
# Type设置为notify时,服务会不断重启
Type=simple
User=root
# --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/data/prometheus --web.enable-lifecycle
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
创建数据目录并授权
mkdir -p /data/prometheus/
chown -R prometheus:prometheus /data/prometheus/
启动并启用服务
systemctl daemon-reload
systemctl start prometheus
systemctl enable prometheus
打开浏览器访问Prometheus
浏览器访问 http://ip地址:9090

安装Grafana
添加Grafana仓库
cat <<EOF | sudo tee /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
安装Grafana
yum install grafana -y
启动并启用Grafana服务
systemctl daemon-reload
systemctl start grafana-server
systemctl enable grafana-server
打开浏览器访问Grafana
浏览器访问 http://ip地址:3000
,默认用户名和密码是 admin
和 admin
。首次登录后会要求修改密码。

将Grafana改为中文
Home-->Administration-->General-->Default preferences-->Preferences-->Language:中文(简体)-->Save

添加数据源
连接 --> 数据源 --> 添加新数据源 --> prometheus --> 在“URL”字段中输入 http://ip地址:9090
--> 下滑点击Save & Test

