一、prometheus
Prometheus 是由 SoundCloud 开源监控告警解决方案。
prometheus存储的是时序数据,即按相同时序(相同名称和标签),以时间维度存储连续的数据的集合。
时序(time series)是由名字(Metric)以及一组key/value标签定义的,具有相同的名字以及标签属于相同时序。
-
metric名字:表示metric的功能,如
http_request_total。时序的名字由 ASCII 字符,数字,下划线,以及冒号组成,它必须满足正则表达式 [a-zA-Z_:][a-zA-Z0-9_:]*, 其名字应该具有语义化,一般表示一个可以度量的指标,例如 http_requests_total, 可以表示 http 请求的总数。 -
标签:
-
样本:按照某个时序以时间维度采集的数据,称之为样本。实际的时间序列,每个序列包括一个float64的值和一个毫秒级的时间戳
-
一个 float64 值
-
一个毫秒级的 unix 时间
二、linux 部署Prometheus
Linux部署Prometheus采用二进制源码部署。下载地址:prometheus.io/download/
(建议下载最新版本、各个版本存在细微差别)
在linux 解压安装包
tar -zxvf prometheus-2.3.2.linux-amd64.tar
cd prometheus-2.3.2.linux-amd64.tar
./prometheus --version
修改prometheus.yml文件,确定启动ip
prometheus.yml文件说明
scrape_interval: 15s 每15s 采集一次数据
evaluation_interval : 15s 每15s 告警一次
job_name 定义任务名称
targets: 机器IP
scheme : http 采集数据接口网络协议
metrics_path : '/metrics' 采集数据接口路径
三、prometheus 启动
prometheus 启动方式 1、直接启动 ./prometheus
2、注册为服务启动
1)vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=prometheus.io/
After=network.target
[Service]
# Type设置为notify时,服务会不断重启
Type=simple
User=prometheus (启动用户)
# --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
ExecStart=/usr/local/prometheus/prometheus -- (启动文件) config.file=/usr/local/prometheus/prometheus.yml -- (配置文件) storage.tsdb.path=/home/software/prometheus-data (数据目录)--web.enable-lifecycle (热加载)
Restart=on-failure
[Install]
WantedBy=multi-user.target
2)systemctl enable prometheus
systemctl daemon-reload
systemctl start prometheus
curl -XPOST http://localhost:9090/-/reload (热加载配置文件)
3) systemctl status prometheus
启动完成(登录prometheus web端页面)
在Status菜单下,Configuration,Rule,Targets等,
Statu-->Configuration展示prometheus.yml的配置,如下
二、grafana安装
wget https://dl.grafana.com/oss/release/grafana-8.1.1-1.x86_64.rpmsudo
yum install grafana-8.1.1-1.x86_64.rpm
配置文件
配置文件位于/etc/grafana/grafana.ini,这里暂时保持默认配置即可
设置开机启动
systemctl enable grafana-server
systemctl start grafana-server
默认web页面为 访问:http://192.168.197.150:3000,默认账号/密码:admin/admin
一、添加数据源
添加prometheus数据源
Configuration → Data Sources → Prometheus → Select,填入http://ip:9090,保存即可。
2、导入dashboard
官方dashboard模板:grafana.com/grafana/das…
选择排行第一的中文模板:1 Node Exporter for Prometheus Dashboard CN v20200628,模板ID是8919。 Manage → Import,填入模板ID,导入,(有外部网络环境使用模板id 导入)
服务器无互联网环境在官方网站下载JSON 导入grafana
三、安装node_exporter(监控linux 服务器状况)
下载二进制源码 上传服务器
tar -zxvf node_exporter-1.2.2.linux-amd64.tar
注册node_exporter 服务
1、vim /etc/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=node_exporter Monitoring System
After=network.target
[Service]
ExecStart=/data/node_exporter/node_exporter
–web.listen-address=:9100\
[Install]
WantedBy=multi-user.target
2 启动服务
systemctl daemon-reload
systemctl enable node_exporter # 设置开机自启动
systemctl start node_exporter # 启动服务
3、检测http://172.16.27.153:9100/metrics
四、安装postgres_exporter(监控postgresql)
tar -zxvf postgres_exporter-0.10.0.linux-amd64.tar
postgresql 监控需要postgresql 安装pg_stat_statements插件
# 在data/postgresql.conf中,进行配置:
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.max = 1000
pg_stat_statements.track = all
1、启动postgres_exporter
export DATA_SOURCE_NAME="postgresql://postgres(账号):postpw(密码)@centos7(IP):5432/postgres?sslmode=disable"
后台启动 nohup ./postgres_exporter &
默认监听端口为9184 各版本 指定配置文件启动方式不一样 ./postgres_exporter -h 查看帮助
3、检测http://172.16.27.153:9187/metrics
五、安装redis_exporter
- redis_exporter安装
各个版本的redis_exporter github.com/oliver006/r…
以linux系统为例,下载编译好的二进制包,解压使用: - 启动
nohup ./redis_exporter -redis.addr 10.152.17.52:8807(IP和端口) -redis.password xbcky13k(密码) > /dev/null 2>&1 &
默认监控端口9121
3、检测http://172.16.27.153:9121/metrics
六、安装rabbitmq_exporter
解压: tar -xzvf rabbitmq_exporter-0.25.2.linux-amd64.tar.gz
1)、启动
RABBIT_USER = admin(账号) RABBIT_PASSWORD = wznadmin(密码) OUTPUT_FORMAT = JSON PUBLISH_PORT = 9099(监控端口) RABBIT_URL = http://10.5.12.61:15672(rabbitmq web管理页网地) nohup ./rabbitmq_exporter &
2、检测http://172.16.27.153:9099/metrics