2017年01月31日
Prometheus入れてみた
最近はドキュメント書き書きしてるりくちゃさんです。こんばんは。
AIXを使わなくなったので、Linuxのお勉強をする必要が出てきました。
りくちゃ「(なにかしないと)」
りくちゃ「(そういえばぷろめてうすってあったなぁ)」
というわけで、(この間クーポンをいただいたのもあるので)さくらのクラウド上にサーバを構築してPrometheusを導入してみることにしました。
※今回は導入してPrometheusのグラフが確認できるところまでを目標にしています。
環境: CentOS 7.3 on さくらのクラウド
参考Webサイト:http://tech-sketch.jp/2016/04/prometheus_alertmanager.html
①導入準備
# yum update
# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
# yum install -y epel-release.noarch※導入済み
# yum install -y wget gcc glibc-static git
※gccとgitは導入済み
②Goの導入
# cd /usr/local/src
・モジュールファイルをダウンロード
# wget https://storage.googleapis.com/golang/go1.7.5.linux-amd64.tar.gz
※2017/1/30現在の最新版は1.7.5。
以下のサイトで最新版を確認することができます。
https://golang.org/dl/
# cd /usr/local/
# tar zxvf ./src/go1.7.5.linux-amd64.tar.gz
# vi ~/.bashrc
環境変数GOPATHとPATHの読み込み定義を追加
GOPATH=/usr/local/go/
PATH=$PATH:/usr/local/go/bin
# source ~/.bashrc
・Goの導入確認
# go version
go version go1.7.5 linux/amd64
③Prometheusインストール
# cd /usr/local/src
・Prometheusモジュールをダウンロード
# wget https://github.com/prometheus/prometheus/releases/download/v1.5.0/prometheus-1.5.0.linux-amd64.tar.gz
※2017/1/30現在の最新版は1.5.0.
以下のサイトで最新版を確認することができます。
https://github.com/prometheus/prometheus/releases
# cd /usr/local/
# tar zxvf ./src/prometheus-1.5.0.linux-amd64.tar.gz
・シンボリックリンク作成
# ln -s /usr/local/prometheus-1.5.0.linux-amd64/prometheus /usr/bin/prometheus
# ln -s /usr/local/prometheus-1.5.0.linux-amd64/promtool /usr/bin/promtool
・設定ファイルを配置
# mkdir /etc/prometheus
# ln -s /usr/local/prometheus-1.5.0.linux-amd64/console_libraries /etc/prometheus/console_libraries
# cd /etc/prometheus
# wget https://raw.githubusercontent.com/prometheus/prometheus/master/documentation/examples/prometheus.yml
・OPTIONSファイル作成
# vi /etc/default/prometheus
# prometheus option
OPTIONS="-config.file=/etc/prometheus/prometheus.yml -storage.local.path=/var/lib/prometheus -web.console.libraries=/etc/prometheus/console_libraries -web.console.templates=/etc/prometheus/consoles"
・設定ファイルをチェック
# promtool check-config /etc/prometheus/prometheus.yml
・設定ファイルをチェック
# promtool check-config /etc/prometheus/prometheus.yml
Checking /etc/prometheus/prometheus.yml
SUCCESS: 0 rule files found
・prometheus.serviceの設定ファイルを作成
# vi /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Service
After=syslog.target prometheus.service
[Service]
Type=simple
EnvironmentFile=-/etc/default/prometheus
ExecStart=/usr/bin/prometheus $OPTIONS
PrivateTmp=true
[Install]
WantedBy=multi-user.target
・サービス起動・自動起動設定
# systemctl start prometheus
# systemctl enable prometheus
Created symlink from /etc/systemd/system/multi-user.target.wants/prometheus.service to /usr/lib/systemd/system/prometheus.service.
・Prometheusで使用するポートを開放
# firewall-cmd --add-port=9090/tcp --zone=public --permanent
# firewall-cmd --reload
やってて困ったこと:
1.作成されていないディレクトリがあった(赤文字が作られてなかったディレクトリ)
# cat /etc/default/prometheus
# prometheus option
OPTIONS="-config.file=/etc/prometheus/prometheus.yml -storage.local.path=/var/lib/prometheus -web.console.libraries=/etc/prometheus/console_libraries -web.console.templates=/etc/prometheus/consoles"
# find /etc | grep prometheus
/etc/default/prometheus
/etc/systemd/system/multi-user.target.wants/prometheus.service
/etc/prometheus
/etc/prometheus/console_libraries
/etc/prometheus/prometheus.yml
→mkdirで作成しました
2.systemctl startでprometheusが起動しない
→コマンドを直接実行すると起動する
# vi /usr/lib/systemd/system/prometheus.service
(略)
[Service]
Type=simpre
EnvironmentFile=-/etc/default/prometheus
ExecStart=/usr/bin/prometheus $OPTIONS &
PrivateTmp=true
(略)
赤文字の部分が原因でうまく起動しなかったようです…
そのままコピペしててもやっぱ確認は必要ですね…(´・ω・`)
グラフ見られるようになったよー(/・ω・)/
今度これにいろいろデータが追加できるといいなぁ(ぶっ壊すかもしれないけど)
メモ:
systemctl statusの確認マジ大事
systemctl statusで何か出てきてたらググるより先にログとかディレクトリがあるかを確認した方がいい
バージョンが違いによる、作成されるはずのディレクトリがないとか結構ザラなのかもしれない
ファイル変えた後はsystemctl daemon-reloadしないとエラーになった