「それって、ようするに… スケベなのでは???」
CentOS 7 に Grafanaをインストールしてみた覚書
今までサーバの監視はmrtgを使っていたが、時代遅れ感もあるので練習がてらGrafanaを実装してみたのでその覚書。
■node_exporterの実装
# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.0/node_exporter-0.18.0.linux-amd64.tar.gz
# tar xf node_exporter-0.18.0.linux-amd64.tar.gz
node_exporterをダウンロードしてきて展開する。
必要なら展開後任意のフォルダに移動し、フォルダ名も変更。
/sbin/ や /usr/local/src などに移動する人が多い様子。
†もし、すぐ起動してテストしたい場合は普通に実行すればよい。
下記は展開後移動していない場合。
# cd node_exporter*
# ./node_exporter
/usr/lib/systemd/system/node_exporter.service
引き続き、上記ファイルを作り自動起動できるようにする。
ファイル内容は割愛。
# systemctl enable node_exporter.service
# systemctl start node_exporter.service
いつもの自動起動コマンドを行っておく。
†以下、ブラウザで見たい場合は下記のとおりだが、Grafanaでのみグラフを見る場合は不要
# firewall-cmd --add-port=9100/tcp --zone=public --permanent
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="(アクセスできるIP)" port protocol="tcp" port="9100" accept"
一部のIPだけしかアクセスさせたくない場合はこんな感じ
# firewall-cmd --reload
http://(サーバIP):9100/
確認する場合、URLはこのような感じ。
■Prometheusの実装
# wget "https://github.com/prometheus/prometheus/releases/download/v2.12.0/prometheus-2.12.0.linux-amd64.tar.gz"
# tar xzf "prometheus-2.12.0.linux-amd64.tar.gz"
Prometheusをダウンロードしてきて展開する。
必要なら展開後任意のフォルダに移動し、フォルダ名も変更。
†すぐ起動してテストしたい場合は普通に実行すればよい。
下記は展開後移動していない場合。
# cd prometheus*
# ./prometheus
node_exporterの登録。
prometheusと同じフォルダにあるprometheus.ymlを開き
文末に下記を追加。
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
自動起動できるようにする。
/usr/lib/systemd/system/prometheus.service
を作り、自動起動できるようにする。
ファイル内容は割愛。
# systemctl enable prometheus.service
# systemctl start prometheus.service
いつもの自動起動コマンド。
†以下、ブラウザで見たい場合は下記のとおりだが、Grafanaでグラフを見る場合は不要
# firewall-cmd --add-port=9090/tcp --zone=public --permanent
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="(アクセスできるIP)" port protocol="tcp" port="9090" accept"
一部のIPだけしかアクセスさせたくない場合はこんな感じ
# firewall-cmd --reload
http://(サーバIP):9090/
確認する場合、URLはこのような感じ。
■Grafanaの実装
# wget https://dl.grafana.com/oss/release/grafana-6.3.3-1.x86_64.rpm
# sudo yum localinstall grafana-6.3.3-1.x86_64.rpm
Grafanaをダウンロードしてきてインストールする。
/etc/grafana/grafana.ini
protocol = http
http_port = 3000
外部からアクセスする際は、最低でもこの2つの設定は行いたい。
# sudo service grafana-server start
# systemctl enable grafana-server.service
起動といつもの自動起動コマンド。
# firewall-cmd --add-port=3000/tcp --zone=public --permanent
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="(アクセスできるIP)" port protocol="tcp" port="3000" accept"
一部のIPだけしかアクセスさせたくない場合はこんな感じ
# firewall-cmd --reload
http://(サーバIP):3000/
確認する場合、URLはこのような感じ。
最初は、ユーザ・パス共にadminで入れる。
Add data source → Prometheus → URLをhttp://localhost:9090にしてSave&Test。
■GrafanaにNode Exporter Fullを実装
Grafanaのダッシュボードを自前で設定しても良いが、
面倒だったらライブラリから作ってしまえばお手軽。
下記URLからJsonをダウンロードして、Grafanamのimportで登録するだけで良い。
https://grafana.com/grafana/dashboards/1860
■マネージサーバの作り方
複数の調査サーバを一つの監視ページにまとめる方法。
初めに
・マネージサーバ=以下「サーバA」と呼称。
・監視したいサーバ=以下「サーバB」と呼称。
まず、サーバBで
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="(サーバAのIP)" port protocol="tcp" port="9100" accept"
# firewall-cmd --reload
これを実行。
これは、サーバA からのアクセスを許可するというもの。
プライベートIPが使えるのならそちらにしたい。
次に、prometheus.ymlを書き換えて再起動する。
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
- targets: ['(サーバBのIP):9100'] ←これを追加
これで、後はgrafanaで使えるようになっているはず。
http://(サーバAのIP):9090/targets
うまく動かないなら上の9090にアクセスできるようにして、
Prometheusの画面でターゲットが正しく動いているかみると良い。
DOWNとなっている場合はファイアウォールの設定ミスなどが怪しい。
もしここが正常ならgrafana側の設定をみると良いでしょう。
†もう一つの監視ツールzabbixについて
比較的使われる監視ツールとして、もうひとつzabbixというのもある。
こちらは公式サイトにコマンド含めて載っているので設定方法は割愛。