Prometheus安装
二进制包安装
我们可以到 Prometheus.io 二进制安装包下载页面,根据自己的操作系统选择下载对应的安装包。下面我们将以 ubuntu server 作为演示。
开始安装
- linux amd64 (ubuntu server)
- prometheus 1.6.2
-
下载 Prometheus Server
1.1 创建下载目录,以便安装过后清理掉
- $ mkdir ~/Download
- $ cd ~/Download
-
使用 wget 下载 Prometheus 的安装包
wget https://github.com/prometheus/prometheus/releases/download/v2.3.2/prometheus-2.3.2.linux-amd64.tar.gz
- 使用 tar 解压缩 prometheus-1.6.2.linux-amd64.tar.gz
tar -xvzf ~/Download/prometheus-1.6.2.linux-amd64.tar.gz
将文件重命名并移动到urs/local/prometheus中
$ mv prometheus-1.6.3.linux-amd64 /usr/local/prometheus
- 验证是否安装成功
cd /usr/local/prometheus
./prometheus --version
如果你看到类似输出,表示你已安装成功:
prometheus, version 1.6.2 (branch: master, revision: xxxx)
build user: xxxx
build date: xxxx
go version: go1.8.1
- 启动 Prometheus Server
./prometheus 如果 prometheus 正常启动,你将看到如下信息:
INFO[0000] Starting prometheus (version=1.6.2, branch=master, revision=b38e977fd8cc2a0d13f47e7f0e17b82d1a908a9a) source=main.go:88
INFO[0000] Build context (go=go1.8.1, user=root@c99d9d650cf4, date=20170511-13:03:00) source=main.go:89
INFO[0000] Loading configuration file prometheus.yml source=main.go:251
INFO[0000] Loading series map and head chunks... source=storage.go:421
INFO[0000] 0 series loaded. source=storage.go:432
INFO[0000] Starting target manager... source=targetmanager.go:61
INFO[0000] Listening on :9090 source=web.go:259
通过启动日志,可以看到 Prometheus Server 默认端口是 9090。
- 设置自动启动: 创建Systemd服务
- ps: 次数有实在 /etc/systemd/system/prometheus.service 处创建服务的。
$ vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
#User=prometheus
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl restart prometheus
systemctl status prometheus
- ps: 此处restart 因之前启动过了,第一次可以使用start
- 见到这样的效果及标识自启动成功:
● prometheus.service - Prometheus
Loaded: loaded (/usr/lib/systemd/system/prometheus.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2018-07-19 16:14:50 CST; 2s ago
Docs: https://prometheus.io/
Main PID: 1609 (prometheus)
CGroup: /system.slice/prometheus.service
└─1609 /usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus
Jul 19 16:14:50 dev-function.novalocal prometheus[1609]: level=info ts=2018-07-19T08:14:50.66114208Z caller=main.go:223 build_context="(go=go1.10.3, user=root@5258e0bd9cc1, date=20180712-14:02:52)"
Jul 19 16:14:50 dev-function.novalocal prometheus[1609]: level=info ts=2018-07-19T08:14:50.661172135Z caller=main.go:224 host_details="(Linux 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 dev-function.novalocal (none))"
Jul 19 16:14:50 dev-function.novalocal prometheus[1609]: level=info ts=2018-07-19T08:14:50.661198165Z caller=main.go:225 fd_limits="(soft=1024, hard=4096)"
Jul 19 16:14:50 dev-function.novalocal prometheus[1609]: level=info ts=2018-07-19T08:14:50.662421315Z caller=web.go:415 component=web msg="Start listening for connections" address=0.0.0.0:9090
Jul 19 16:14:50 dev-function.novalocal prometheus[1609]: level=info ts=2018-07-19T08:14:50.662396155Z caller=main.go:533 msg="Starting TSDB ..."
Jul 19 16:14:50 dev-function.novalocal prometheus[1609]: level=warn ts=2018-07-19T08:14:50.663013777Z caller=wal.go:234 component=tsdb msg="invalid segment file detected, truncating WAL" err="open /var/lib/prometheus/wal/0...theus/wal/000001
Jul 19 16:14:50 dev-function.novalocal prometheus[1609]: level=info ts=2018-07-19T08:14:50.669715227Z caller=main.go:543 msg="TSDB started"
Jul 19 16:14:50 dev-function.novalocal prometheus[1609]: level=info ts=2018-07-19T08:14:50.669777093Z caller=main.go:603 msg="Loading configuration file" filename=/usr/local/prometheus/prometheus.yml
Jul 19 16:14:50 dev-function.novalocal prometheus[1609]: level=info ts=2018-07-19T08:14:50.670486293Z caller=main.go:629 msg="Completed loading of configuration file" filename=/usr/local/prometheus/prometheus.yml
Jul 19 16:14:50 dev-function.novalocal prometheus[1609]: level=info ts=2018-07-19T08:14:50.670524244Z caller=main.go:502 msg="Server is ready to receive web requests."
Hint: Some lines were ellipsized, use -l to show in full.
当 Prometheus 启动后,你可以通过浏览器来访问 http://IP:9090,可以看到对应的页面
总结
可以看出 Prometheus 二进制安装非常方便,没有依赖,自带查询 web 界面。 在生产环境中,我们可以将 Prometheus 添加到 init 配置里,或者使用 supervisord 作为服务自启动。