prometheus.(5).数据采集优化配置以及部署
企业级监控数据采集方法
作者声明:本博客内容是作者在学习以及搭建过程中积累的内容,内容采自网络中各位老师的优秀博客以及视频,并根据作者本人的理解加以修改(由于工作以及学习中东拼西凑,如何造成无法提供原链接,在此抱歉!!!)
作者再次声明:作者只是一个很抠脚的IT工作者,希望可以跟那些提供原创的老师们学习
服务端的安装和后台稳定运行
运行方式
我们需要让prometheus_server运行在后台而不是前端(客户端退出后prometheus也退出了)
第一种: 安装screen工具放入后台运运行
缺点:很容易被误关闭 操作的时候 ctrl +ad / ctrl +d 不小心操作错了直接就退出去了...
第二种: 使用daemonize放入后台方式
daemonize Unix系统后台守护进程管理软件
优点:更加正规 后台运行更稳定
git clone git://github.com/bmc/daemonize.git
sh configure && make && sudo make install
daemonize -c /data/prometheus/ /data/prometheus/up.sh
-c 是指定运行路径
/data/prometheus/up.sh 是运行路径下的启动脚本
/data/prometheus/prometheus --web.listen-address="0.0.0.0:9090" --web.read-timeout=5m --web.max-connections=10 --storage.tsdb.retention=15d --storage.tsdb.path="data/" --query.max-concurrency=20 --query.timeout=2m
启动参数
./prometheus 在实际企业运行时启动参数的合理配置
请求链接的最大等待时间
--web.read-timeout=5m
prometheus进程会建立很多的网络链接GET PUSH,利用这个参数让进程进行回收。防止 太多的空闲链接 占用资源
最大链接数
--web.max-connections=512
数据存储时间
--storage.tsdb.retention=15d
prometheus开始采集监控数据后会存在内存中和硬盘中,对于保留期限的设置很重要太长的话硬盘和内存都吃不消,太短的话要查历史数据就没有了,企业中设置15天为宜。
存储数据路径
--storage.tsdb.path="data/"
存储数据路径 这个也很重要 不要随便放在⼀个地⽅就执⾏ 会
把/根目录塞满了
用户使用优化
--query.timeout=2m
--query.max-concurrency=20
上面这两项是对用户执行prometheus查询时候的优化设置
防止太多的用户同时查询(20),也防止单个用户执行过大的查询卡住(2m)而一直不退出。
如上参数 配置上去后 prometheus运行就相对稳妥多了。
数据存放
其中这些长串字母的是历史数据保留,而当前近期数据实际上保留在内存中,并且按照⼀定间隔存放在 wal / 目录中 防止突然断电 或者 重启 以用来恢复内存中的数据。
服务端配置文件添加监控项
global:
scrape_interval: 15s #设置多少时间间隔采集⼀次数据
scrape_timeout: 15s
scrape_configs:
- job_name: 'prometheus' #配置⼀个job的标签
static_configs:
- targets: ['localhost:9090'] #监控的主机
- job_name: 'node'
static_configs:
- targets: [‘server1:9100','server2:9100’,'sesrver3:9100']
node_exporter安装和后台运行
运行方式
下载地址为 https://prometheus.io/download/#node_exporter
同样适用daemonize放入被监控服务器后台运行,默认运行在9100端口
观察和采集数据
针对这个node_exporter进行初步的手动查询以确保正常获取监控数据
本地查询
curl localhost:9100/metrics #根据全局配置,15s获取一次数据
node_exporter默认开启和不开启的监控项目
https://github.com/prometheus/node_exporter