1 prometheus监控部署图
通常情况下一个完整的服务器监控系统,由三部分组成,分别为:
- 仪表盘服务:通常是grafna或者kibana这类专用开源仪表盘系统完成;
- 主监控服务:代表是prometheus,通过yaml进行采集节点配置之后,可以采集各种类型的数据,包括虚拟机状态、jvm状态、数据库状态等等,同时prometheus通过时间序列数据库存储,可以保存很长一段时间的监控数据。
- 采集服务:prometheus系列的监控系统,通常自带了较多的exporter,例如服务服务器基本信息采集的node_eporter、负责数据库状态采集mysqld_exporter,当然也可以通过prometheus提供的官方接口的案例,完成不同语言的采集模块设计,包括java、python、go等的各种直方图、计数器等类型的设计。
如下图所示是一个服务器节点监控系统的常用架构:
根据上图分析,本文提供了三个服务下载的常用链接:
02-下载prometheus以及node_exporter链接
2 prometheus启动及设置
prometheus的tar包,解压后会生成一个prometheus.yml的配置文件,这里通过编辑yml文件,可以将待监控节点信息填入其中:
如下图所示是修改监控中的采样周期,默认是15s一次,这里将间隔时间改为了5s触发一次查询;
如下图所示,是配置一个监控节点的基本配置,每新增一个节点,只需要监控服务中加入简单的job即可,设置jobname以及目标采样node程序对外暴露的地址及端口。
正常启动一个prometheus的程序,非常简单只需要./prometheus即可,但是为了方便起见,这里使用了nohup进行启动,并将运行日志重定向到了文件:
#!/usr/bin/env bash
dir_path=/root/01-tools/prometheus-2.17.1.linux-amd64
set -x
cd $dir_path
nohup ./prometheus 1>ding.log 2>&1 &
set +x
echo "start prometheus ok!"
启动prometheus后,可以简单查看并检查进程信息:
3 采样节点node启动
负责服务器基本情况采集的服务运行同样较为简单,打开解压后的node_exporter,使用./node_exporter启动即可,或者如下图所示使用nohup启动,默认情况下采样服务的对外提供端口(也就是对prometheus提供的服务端口)是9000;
具体演示如下所示:
当然使用容器poll拉取镜像的方式也非常方便,这里可以根据用户的需求灵活选择;
4 grafana基本使用
grafana是一个开源仪表盘项目,可以灵活添加各种仪表盘web ui,这里并没有使用自行开发的,而是借助grafana生态成熟的仪表盘配置,具体下载位置如下链接所示:
使用yum或者rpm安装grafana后,直接按照导航需求,添加数据源以及仪表盘,数据源直接选择prometheus,如果grafana与protheus安装在一个宿主机,直接使用127.0.0.1:9090即可。
至于添加仪表盘,则可以根据上述网络连接,谢谢指定id导入模板,或者使用直接json导入的方式,具体操作过程可以自行熟悉。
导入仪表盘:
导入指定的仪表盘json配置文件:
如下图所示是一个导入的仪表盘显示: