QDS(Quick Deployment Series)系列的目标,是帮助你快速完成一款软件的部署安装。本期介绍的主角是 Prometheus。

提到 Prometheus,通常有两个层面的意思:其一是 Prometheus 作为时序数据库(TSDB)本身,其二是基于它构建的一整套监控系统与监控解决方案。本文要部署的,是 Prometheus 时序数据库本体。
下载
获取 Prometheus 安装包时,一般有两个常用渠道可选:官方官网下载页面,以及 GitHub 官方发布仓库。对应链接如下:
官网下载页:https://prometheus.io/download/
GitHub 仓库:https://github.com/prometheus/prometheus/releases
这两个渠道最终提供的安装包来源是相同的,任选其一即可。使用下载工具将对应版本的压缩包下载到目标服务器或目标机器上即可开始安装。
安装
当前(2019年6月)最新稳定版本为 2.10,下载后的文件名为 prometheus-2.10.0.linux-amd64.tar.gz。
进入目标安装路径后执行解压:
tar -zxf prometheus-2.10.0.linux-amd64.tar.gz -C /opt/prometheus
解压完成后,目录中通常会看到以下内容:
console_libraries
consoles
LICENSE
NOTICE
prometheus
prometheus.yml
promtool
其中,prometheus 是 Prometheus 的可执行二进制程序,prometheus.yml 则是默认的配置文件,也是后续启动服务时会使用到的核心配置。
启动服务
Prometheus 的启动方式非常直接,一般不需要 root 权限,直接运行二进制文件即可启动服务。
不过为了后续运维管理更方便,建议提前创建数据目录、日志目录以及 pid 目录:
cd /opt/prometheus
mkdir data logs run
下面提供两种常见的 Prometheus 启动方式,可根据实际环境任选其一。
守护进程
在 CentOS 7 环境中,可以将 Prometheus 启动配置交由 systemd 系统服务管理,同时支持开机自启动,便于长期运行和统一维护。
创建系统服务文件 prometheus.service:
touch /usr/lib/systemd/system/prometheus.service
编辑该文件,写入以下内容:
Description=Prometheus Database
After=network.target
[Service]
ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --web.listen-address=:9090 --storage.tsdb.path=/opt/prometheus/data/
User=root
[Install]
WantedBy=multi-user.target
使用这种方式启动时,Prometheus 运行日志会直接写入系统日志中,便于通过系统工具统一查看。
启动服务:
systemctl start prometheus
设置开机自启:
systemctl enable prometheus
普通用户脚本启动
如果你更习惯通过 Shell 脚本管理进程,也可以手动创建一个启动脚本 run.sh 来启动 Prometheus 服务。
创建脚本文件:
touch run.sh
编辑 run.sh,写入如下内容:
#!/bin/bash
nohup /opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --web.listen-address=:9090 --storage.tsdb.path=/opt/prometheus/data/ >> /opt/prometheus/logs/prometheus.log 2>&1 &
echo $! > $BASEPATH/run/prometheus.pid
然后执行:
sh run.sh
简单验证
Prometheus 服务启动完成后,可以做一个基础验证,确认服务是否正常运行。执行下面的命令后,如果能够返回时序指标数据,就说明 Prometheus 已成功启动并可正常访问。
curl 127.0.0.1:9090/metrics