InfluxDBとGrafanaで作るサーバ監視環境

InfluxDBとGrafanaで作るサーバ監視環境

Powershell, Python, Tools

Grafanaはデータの視覚化ツールとして人気ですね。今回はInfluxDBをデータソースとして性能監視環境を構築した際のメモです。

もくじ:

  • はじめに
  • InfluxDBのインストール
  • 情報収集クライアント
  • Grafanaのインストール

はじめに

オンプレミスでサーバ・ネットワークを監視するツールは数あり、比較的歴史の長い古典的な分野です。OSS/コミュニティ版が利用できるものに限ってもSensu, Zabbix, Icinga, Nagiosといった多数のソフトウェアがあります。
機能やアーキテクチャ、構成管理ツールとの連携などそれぞれに特色がありますが、機能の多さと要求性能の高さはやはり比例するもの。
自宅や個人的な実験環境などで、簡易に監視用のダッシュボードを作る機能が欲しいという程度であればちょっと大がかりすぎですね。

以前はMuninを使っていましたがUIや近年の開発状況はちょっとおしい感じ、ということでInfluxDB+Grafanaに乗り換えてみました。
個人的には、大げさなものは必要ない、けれどもこなれたフレームワークが欲しい、というときにちょうどいい印象です。

完成形はこんな感じ。各監視対象から性能データをPOSTさせ、Grafanaで視覚化します。

Grafanaは多彩なデータソースをサポートしており、今回のInfluxDBのみでなくGraphiteやElasticsearch、最近流行りのPrometheusなどを使うこともできます。

InfluxDBのインストール

Linuxでもaptやyumなど、よくあるディストリビューションのパッケージマネージャ経由で利用することができます。以前はWebベースの管理GUIがありましたが、最近はサポートされていないようです。まあChronografを使えってことだと思います。

今回は公式ページを参考にCentOS7環境へインストールするためのBashスクリプトを用意しましたが、もちろん手動でコマンドを打っても結果は同じです。
下記はレポジトリを追加するための定義ファイルと、インストレール作業用のシェルスクリプトです。本体をyum経由でインストールしているほか、InfluxDBがデフォルトで利用するポートを許可するためにファイヤウォールを設定しています。設定を変えている場合は環境に合わせて変更して下さい。

レポジトリ定義:

[influxdb]

name = InfluxDB Repository RHEL $releasever

baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable

enabled = 1

gpgcheck = 1

gpgkey = https://repos.influxdata.com/influxdb.key

インストール用スクリプト:

#!/bin/bash -eu

cp influxdb_repo.conf /etc/yum.repos.d/influxdb.repo

# install via yum

echo “install influxDB”

yum install y influxdb

systemctl enable influxdb

# configure firewall

firewallcmd