二进制部署

Prometheus一系列软件是基于Golang编写、编译的软件包,Golang的性质就是没有任何其他依赖,直接运行即可。在Prometheus官网可以直接下载解压后运行。 对于普通二进制程序,可以使用nohupsupervisor等工具实现后台运行,开机自启动等,但我们部署的服务器为CentOS7,使用全新的systemd进行系统管理,对于编写服务文件非常简单,所以直接将Prometheus一系列软件注册为服务,可以非常方面地使用systemctl进行开关与自启动管理。

下载解压

为了便于管理,将新建根目录文件夹/ops并将所有文件放入其中。 下载文件后放入目,目前最新版本:

  • 截止日期:2019年07月16日

# 新建文件夹
mkdir /ops

# Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.11.1/prometheus-2.11.1.linux-amd64.tar.gz
tar xvf prometheus-2.11.1.linux-amd64.tar.gz -C /ops

# node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
tar xvf node_exporter-0.18.1.linux-amd64.tar.gz -C /ops

# Alertmanager
wget https://github.com/prometheus/alertmanager/releases/download/v0.18.0/alertmanager-0.18.0.linux-amd64.tar.gz
tar xvf alertmanager-0.18.0.linux-amd64.tar.gz -C /ops

# 目录
tree /ops

/ops
├── alertmanager-0.18.0.linux-amd64
│   ├── alertmanager
│   ├── alertmanager.yml
│   ├── amtool
│   ├── LICENSE
│   └── NOTICE
├── node_exporter-0.18.1.linux-amd64
│   ├── LICENSE
│   ├── node_exporter
│   └── NOTICE
└── prometheus-2.11.1.linux-amd64
    ├── console_libraries
    │   ├── menu.lib
    │   └── prom.lib
    ├── consoles
    │   ├── index.html.example
    │   ├── node-cpu.html
    │   ├── node-disk.html
    │   ├── node.html
    │   ├── node-overview.html
    │   ├── prometheus.html
    │   └── prometheus-overview.html
    ├── LICENSE
    ├── NOTICE
    ├── prometheus
    ├── prometheus.yml
    └── promtool

5 directories, 22 files

配置服务

Prometheus启动会自动加载当前文件夹下的prometheus.yml文件,且会将数据存储与当前目录下的data/ 文件夹下,所以需要提前建立文件夹,Alertmanager与Prometheus类似

Node_exporter启动后默认使用9100端口提供metrics信息,没有配置文件。 所以只需要分别新建prometheus.servicenode_exporter.servicealertmanager.service放入/usr/lib/systemd/system/即可。

配置Prometheus服务

/usr/lib/systemd/system/prometheus.service

配置Node_exporter服务

/usr/lib/systemd/system/node_exporter.service

配置Alertmanager服务

/usr/lib/systemd/system/alertmanager.service

配置完成后需要reload重新载入方可使用。

配置防火墙

如果想外部访问,还需配置防火墙放行:

  • Prometheus 9090

  • Node_exporter 9100

  • Alertmanager 9093

CentOS7中使用firewall-cmd替换了iptables,使用上更为简单

现在可以使用ip:9090访问Prometheus,ip:9093访问Alertmanager,ip:9100查看本服务器metrics结构信息。

使用Supervisor管理服务

除了systemd,你还可以使用第三方程序supervisor管理服务,如果你是CentOS7之前使用sysVinit,设置服务过于复杂,使用supervisor更为方便。

Supervisor基础操作:

  • reload: supervisorctl update

  • start: supervisorctl start xxx

  • stop: supervisorctl stop xxx

  • restart: supervisorctl restart xxx

Supervisor管理Prometheus服务

/etc/supervisord.d/prometheus.ini

Supervisor管理node_exporter

/etc/supervisord.d/node_exporter.ini

Supervisor管理Alertmanager

/etc/supervisord.d/alertmanager.ini

Last updated

Was this helpful?