ToC
Grafanaとは
運用サービスや運用環境が増えて、管理対象の数が増えてくるとどうしても 「エラーではないのだけど、ちょっと調子がおかしい」という個別の状況を確認するのが 難しくなってきます。 すべてを確認するのは難しいかもしれませんが、「ポイントとなる重要なメトリクスだけでも、 いい感じのダッシュボードにして参照することはできないか」と考えて、 Grafana を調査をはじめました。
各種のデータを可視化することができるアプリケーションです。時系列の情報を可視化できるのが強みです。
いろいろな可視化ツールがありますが、デフォルトでデータソースとして利用可能な対象が
多いのが非常に便利です。
クラウド界隈でログの見える化といえば、メジャーどころの elasiticsearch
や
AWS Cloudwatch
といったところから、MySQL
や Postgres
といったRDB系も利用ができます。
また、プラグイン拡張により Zabbix
などもデータソースとすることが可能なようです。
また、コミュニティーで作成したダッシュボードが共有されているので、多少の設定をするだけで
見た目もそこそこカッコイイダッシュボードが作成できます。
インストール
Vagrantを利用して、CentOS 7.2上で検証用の環境を作成しました。 マニュアルも非常に充実しているので、ほぼ迷うポイントはありません。 yumコマンドを利用してインストールすれば、いくつかの依存性のあるライブラリとともに インストールされます。
Vagrantで作成した環境という都合もあり、ポート番号を3000
から8080
に変更する必要があり、
設定ファイル( /etc/grafana/grafana.ini
)も少しだけ変更しました。
各種の設定変更も簡単にできます。
# インストール
sudo yum install -y https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3-1.x86_64.rpm
# 設定ファイルの書き換え
sudo sed -i -e 's/\;http_port = 3000/http_port = 8080/' /etc/grafana/grafana.ini
sudo sed -i -e 's/\;protocol = http/protocol = http/' /etc/grafana/grafana.ini
# サービスの自動起動設定と初回起動
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
初期の管理者ユーザー名とパスワードは、 admin
のようです。
AWS Cloudwatch ダッシュボードを設定
ログインができたので、早速ダッシュボードを作ってみます。
まずはDataSourceとしてAWS Cloudwatch
を設定しました。AccessKey
とSecret
を
入力して接続テストをすれば良いだけです。
AWSでインスタンスを立てて実行している場合には、ServerRoleやAssumeRoleを利用した接続も 大丈夫なようです。 その後、手始めにDashboardをImportすると完成です。 今回は AWS Lambda のダッシュボードを インポートしてみました。本当に数ステップでここまでできてしまうので、感動です。 もちろんDataSourceもダッシュボードもカスタマイズ自由なので、データの見える化は バリバリ進みそうですね。
バックアップとリストア
運用を考えると重要なのは、サーバーの入れ替えの際にバックアップとリストアができるか という点になります。 せっかく作ったダッシュボードが、復元できないと少し悲しいことになってしまいます。
でも、心配は不要です。
grafanaの管理情報は、デフォルトでは、/var/lib/grafana/grafana.db
に
sqlite3
形式で管理されます。
このファイルをバックアップして、移行先のサーバーで展開することで復元が可能になります。
追加でインストールしたpluginも /var/lib/grafana/plugin
に保存されているので、
リストア時に配備すると復元されます。
それだけです。
また、管理情報は sqlite3
でなく外部に配置しておくことも可能なようです。
外部のデータベースサーバー(RDSのマネージドサービスなんかもいいですね)を設定する
ことも可能です。ロードバランサでgrafana
をスケールアウト構成とした場合には、
セッション情報等も保存されるようですね。
Enjoy
インタラクティブなダッシュボードが、非常に簡単に作成できました。
わたしの一番オススメ機能は、Dashboard Playlist機能
です。大型ディスプレイで
Dashboardが数分ごとに切り替える(そうです。アレです)ものができてしまうので、
運用上のポイントとなる重要なメトリクスが知らず知らずのうちにチームメンバーが
確認してくれるようになります。
その他にもアラート機能というものもあるので、もう少し機能の深掘りをしてみる必要がありそうです。
参照
Grafana Labs Grafana Labs - Lambda Dashboard
[amazon_link asins=‘477419218X,4774165433,B0793JRHYC,4774164240’ template=‘ProductCarousel’ store=‘lunalab-22’ marketplace=‘JP’ link_id=‘c14df4bb-0f4d-11e8-af3f-9dfe05a9ec6a’]