首页 > 技术文章 > prometheus.(5).数据采集优化配置以及部署

orange-lsc 2020-05-04 10:32 原文

企业级监控数据采集方法

作者声明:本博客内容是作者在学习以及搭建过程中积累的内容,内容采自网络中各位老师的优秀博客以及视频,并根据作者本人的理解加以修改(由于工作以及学习中东拼西凑,如何造成无法提供原链接,在此抱歉!!!)

作者再次声明:作者只是一个很抠脚的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运行就相对稳妥多了。

数据存放

1584518884167

其中这些长串字母的是历史数据保留,而当前近期数据实际上保留在内存中,并且按照⼀定间隔存放在 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

1584522420604

查询采集回来的各种数据

1584522848122

推荐阅读