将Prometheus升级到最新的1.x版本

首先

刚刚发布了 Prometheus 2.0。考虑到它没有向后兼容性,升级版本可能会很麻烦,而且连最新的 1 系列版本(截至 2017 年 12 月,最新为 1.8.2)都没有做到。
所以我先尝试升级到 1.8.2(我的环境还停留在 1.6.1)。
只是将二进制文件更新到最新版本而已。

顺便将AlertManager也升级到0.5.1→0.11.0。

请注意

    • 流れ

新しいバイナリDL
バックアップいい感じにとる
data/とconfig関連のものだけ新しいのに移す
動作確認

環境

ubuntu 16 on EC2
ディレクトリ構成は以下とかになっているとする

/hoge/prometheus
/hoge/alertmanager

バイナリの取得方法

prometheusはgithubのtagsから1系最新を探す
alertmanagerは公式Downloadsから

起動

今回は./prometheus &、./alertmanager &的に起動
serviceなりsupervisorctlなりで管理してる場合はお好きに

杂手顺

### current version
$ cd /hoge/prometheus
$ ./prometheus --version
prometheus, version 1.6.1 (branch: master, revision: 4666df502c0e239ed4aa1d80abbbfb54f61b23c3)
  build user:       root@ca1b452514b7
  build date:       20170419-13:26:24
  go version:       go1.8.1
$ cd /hoge/alertmanager
$ ./alertmanager --version
alertmanager, version 0.5.1 (branch: master, revision: 0ea1cac51e6a620ec09d053f0484b97932b5c902)
  build user:       root@fb407787b8bf
  build date:       20161125-08:14:40
  go version:       go1.7.3

### dl latest bin for prometheus / alertmanager
$ cd /tmp/
$ wget https://github.com/prometheus/prometheus/releases/download/v1.8.2/prometheus-1.8.2.linux-amd64.tar.gz
$ wget https://github.com/prometheus/alertmanager/releases/download/v0.11.0/alertmanager-0.11.0.linux-amd64.tar.gz
$ ls
alertmanager-0.11.0.linux-amd64.tar.gz prometheus-1.8.2.linux-amd64.tar.gz
$ tar xvf prometheus-1.8.2.linux-amd64.tar.gz
$ tar xvf alertmanager-0.11.0.linux-amd64.tar.gz

### stop current process & get backup
$ cd /hoge
$ pkill prometheus
$ pkill alertmanager
$ ls
alertmanager  prometheus
$ mv prometheus.bak prometheus.old
$ mv alertmanager alertmanager.old
$ ls
alertmanager.old prometheus.old
$ cp -r /tmp/prometheus-1.8.2.linux-amd64 ./prometheus
$ cp -r /tmp/alertmanager-0.11.0.linux-amd64 ./alertmanager
$ ls
alertmanager  alertmanager.old prometheus  prometheus.old

### migrate to latest bin w/ previous data/ & configs for prometheus

$ cd prometheus/
$ mv prometheus.yml prometheus.yml.org
$ cp -r ../prometheus.old/data/ .
$ cp ../prometheus.old/prometheus.yml .
$ cp -r ../prometheus.old/alert_rules/ .
---
# notes
I am including alert rule files as following in prometheus.yml.
rule_files:
  - 'alert_rules/*.rule'
---

### migrate to latest bin w/ previous data/ & configs for alertmanager
$ cd ../alertmanager
$ mv simple.yml simple.yml.org
$ cp ../alertmanager.old/simple.yml .
$ cp -r ../alertmanager.old/data/ .

### start them

$ cd /hoge/alertmanager
$ ./alertmanager -config.file=simple.yml > alertmanager.log 2>&1 &
$ cd /hoge/prometheus
$ ./prometheus -alertmanager.url=http://localhost:9093/

### current version
$ ./prometheus --version
prometheus, version 1.8.2 (branch: HEAD, revision: 5211b96d4d1291c3dd1a569f711d3b301b635ecb)
  build user:       root@1412e937e4ad
  build date:       20171104-16:09:14
  go version:       go1.9.2
$ ./alertmanager --version
alertmanager, version 0.11.0 (branch: HEAD, revision: 30dd0426c08b6479d9a26259ea5efd63bc1ee273)
  build user:       root@3e103e3fc918
  build date:       20171116-17:43:56
  go version:       go1.9.2

### open web UI by your browser & confirm post metrics data
# http://{your_ip}:9090
# http://{your_ip}:9093

最后

只要进行基本的二进制更新,似乎没有问题。
但是手工操作有点麻烦,我也想用apt-get或yum之类的快速完成。
或者可以考虑用docker来处理。

也就是说,我看了一下 Prometheus 的更新日志(从 1.6.2 到 1.8.2)和 Alertmanager(从 0.5.1 到 0.11.0)。Prometheus 的变化不大,而 Alertmanager 则有很大的改变,不知道性能上的差异是怎么样的。

以上内容。

广告
将在 10 秒后关闭
bannerAds