Tech Sketch Bucket of Technical Chips by TIS Inc.

Prometheus+alertmanagerをインストールしてみた

Pocket


ITmedia @ITでOSS運用監視製品の比較記事の執筆をさせて頂いた。
記事の執筆にあたり、オープンソースのシステム監視ソフトウェアのPrometheusとPrometheusのアラート通知機能のalertmanagerを実際にインストールし動作を確認する検証を実施した。
その実際に行った構築手順をまとめたものが以下である。

インストールの為に以下のサイトを参考とさせて頂いた。
Prometheus DOCS
Alertmanager DOCS
【入門】PrometheusでサーバやDockerコンテナのリソース監視

検証に使用した環境

検証に使用した環境は以下となる。


VMware ESXiに上にCentOS 7.2 (minimal install)とUbuntu Server 15.10LTSをインストールしている。インストール後にntp,snmpを手動インストール+設定+自動起動だけ行った状態となっている。

CentOS 7.2へのインストール

インストールの準備

1.インストール済みパッケージの更新
$ sudo yum update -y

2.epelリポジトリの追加
$ sudo yum install -y epel-release.noarch

3.インストール・ビルドに必要なパッケージのインストール
$ sudo yum install -y wget gcc glibc-static git

4.go言語のインストール
(1)The Go Programming Languageで最新バージョンのダウンロードURLを確認
2016/4時点での最新バージョンはgo 1.6

(2)go言語のダウンロードとインストール
$ cd /usr/local/src
$ sudo wget https://storage.googleapis.com/golang/go1.6.linux-amd64.tar.gz
$ cd /usr/local/
$ sudo tar zxvf ./src/go1.6.linux-amd64.tar.gz

(3)GO言語のPATHと環境変数の設定
$ vi ~/.bashrc

$ source ~/.bashrc

6.go言語のバージョンを確認
$ go version
go version go1.6 linux/amd64

Prometheusのインストール

1.prometheus Releasesから最新バージョンのダウンロードURLを確認
2016/4現在の最新のStable版はVer 0.17.0となる。

2.パッケージのダウンロードと解凍
$ cd /usr/local/src
$ sudo wget https://github.com/prometheus/prometheus/releases/download/0.17.0/prometheus-0.17.0.linux-amd64.tar.gz
$ cd /usr/local/
$ sudo tar zxvf ./src/prometheus-0.17.0.linux-amd64.tar.gz

3./usr/bin以下に実行コマンド(prometheus/promtool)のシンボリックリンクを作成
$ sudo ln -s /usr/local/prometheus-0.17.0.linux-amd64/prometheus /usr/bin/prometheus
$ sudo ln -s /usr/local/prometheus-0.17.0.linux-amd64/promtool /usr/bin/promtool

4.設定ファイルを/etc/prometheus以下に配置
$ sudo mkdir /etc/prometheus
$ sudo ln -s /usr/local/prometheus-0.17.0.linux-amd64/console_libraries /etc/prometheus/console_libraries
$ cd /etc/prometheus
$ sudo wget https://raw.githubusercontent.com/prometheus/prometheus/master/documentation/examples/prometheus.yml

5.OPTIONSの設定ファイルを作成
$ sudo vi /etc/default/prometheus

6.設定ファイルをチェック
$ sudo promtool check-config /etc/prometheus/prometheus.yml
Checking /etc/prometheus/prometheus.yml
SUCCESS: 0 rule files found

7.prometheus.serviceの設定ファイルを作成
$ sudo vi /usr/lib/systemd/system/prometheus.service

8.Prometheusの起動と自動起動の設定
$ sudo systemctl start prometheus
$ sudo systemctl enable prometheus

9.firewallでPrometheusで利用するポートを解放
$ sudo firewall-cmd --add-port=9090/tcp --zone=public --permanent
$ sudo firewall-cmd --reload

10.Prometheusの起動を確認
DashBoardにアクセスでき、Prometheusサーバのリソース監視が行えていることがわかる。


alertmanagerのインストール

1.GOPATHの設定を確認
$ echo $GOPATH
/usr/local/go/

2.alertmanagerを格納フォルダを作成
$ sudo mkdir -p $GOPATH/src/github.com/prometheus

3.alertmanagerを格納フォルダに移動
$ sudo cd $GOPATH/src/github.com/prometheus

4.githubのprometheus/alertmanagerからビルドに必要なリソース一式を取得
$ sudo git clone https://github.com/prometheus/alertmanager.git

5.alertmanagerをビルド
goのバージョンが1.5.2未満の場合ビルドに失敗する。
$ cd $GOPATH/src/github.com/prometheus/alertmanager
$ sudo make build

6.alertmanagerのビルド結果を確認
$ sudo ./alertmanager --version
alertmanager, version 0.1.1 (branch: master, revision: 9136cf8)
build user: root@tissvv097
build date: 20160413-14:45:30
go version: go1.6

7./usr/bin以下に実行コマンド(alertmanager)のシンボリックリンクを作成
$ sudo ln -s /usr/local/go/src/github.com/prometheus/alertmanager/alertmanager /usr/bin/alertmanager

8.設定ファイルを/etc/prometheus以下に配置
alertをwebhookするサンプルファイルを利用する。
$ cd /etc/prometheus
$ sudo wget https://raw.githubusercontent.com/alerta/prometheus-config/master/alertmanager.yml

9.OPTIONSの設定ファイルを作成
$ sudo vi /etc/default/alertmanager

10.alertmanager.serviceの設定ファイルを作成
$ sudo vi /usr/lib/systemd/system/alertmanager.service

11.prometheusの起動と自動起動の設定
$ sudo systemctl start alertmanager
$ sudo systemctl enable alertmanager

Ubuntu 15.10へのインストール

prometheusインストールの準備

1.インストール済パッケージの更新
$ sudo apt update -y

2.syssv-rc-confのインストール
$ sudo apt-get install -y sysv-rc-conf

prometheusのインストール

1.prometheusのインストール
$ sudo apt-get install -y prometheus

2016/4現在、以下のバージョンがインストールされる。

2.prometheus/prometheus-node-exporterの起動と自動起動の設定
$ sudo service prometheus start
$ sudo service prometheus-node-exporter start
$ sudo sysv-rc-conf prometheus on
$ sudo sysv-rc-conf prometheus-node-exporter on

3.Prometheusの起動を確認


CentOS側のノードとして追加

1.Prometheusの設定ファイルを編集
$ sudo vi /etc/prometheus/prometheus.yml

2.Prometheusのサービスの再起動
$ sudo systemctl restart prometheus

3.監視ノードの追加を確認
(1)追加前


(2)追加後
監視ノードが追加されていることが確認できる。


snmpの監視を追加

prometheus/snmp_exporterを使用しsnmpの監視結果の取得を追加する。

1.必要パッケージの追加インストール
$ sudo yum install -y httpd net-snmp-python python-pip

2.snmp_exporterのインストール
$ sudo pip install snmp_exporter

3.snmp_exporterの設定ファイルの作成
$ cd /etc/prometheus
$ sudo wget https://raw.githubusercontent.com/prometheus/snmp_exporter/master/snmp.yml

4.snmp_exporterのOPTION設定ファイルの作成
$ sudo vi /etc/default/snmp_exporter

5.snmp_exporter.serviceのファイルの作成

6.Prometheusの設定ファイルのsnmpの監視設定の追加

3.snmp監視ノードの追加とmetricの取得を確認
(1)ノードの追加


(2)snmpからのmetricの取得


エンジニア採用中!私たちと一緒に働いてみませんか?