grasys blog

Grafana and Stackdriver

こんにちは、Cloud Monitoring(旧称Stackdriver)おじさんです。
今回はネタ切れと時間の都合諸事情によりGrafanaからCloud Monitoringのデータを可視化してみます。


Grafanaって?

Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data driven culture:

Grafana Labs.によって開発されたオープンソースのデータ分析ソフトウェアです。
特徴として、Graphite, Prometheus, Influx DBをはじめとする様々なデータ基盤や、Google Cloud (GCP) Monitoring, AWS CloudWatchなどのモニタリングサービスをデータソースとして持つことができ、データの可視化を一元化することができます。

今回はGoogle Cloud (GCP) Monitoringをバックエンドとし、GCPインスタンスで簡単なグラフを作成することを目標とします。

Grafana Labs
https://grafana.com/

GitHub
https://github.com/grafana/grafana

  • 検証環境
cloud providerServiceOS
Google Cloud (GCP) PlatformCompute EngineCentOS 7

※インスタンス作成の際、インスタンスに付与するサービスアカウントに roles/monitoring.viewer が設定されている必要があります。

1. Grafana OSS インストール・起動

公式ドキュメントに従い、Grafana OSSのyumリポジトリを設定しインストールを行います。

https://grafana.com/docs/grafana/latest/installation/rpm/

まずはyumリポジトリを設定し…

$ sudo vim /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

インストールします。

$ sudo yum install grafana

そして起動します。

sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl status grafana-server

2. ダッシュボードにアクセスする

statusで起動を確認(Active: active (running))できたら、Webブラウザでダッシュボードにアクセスします。
デフォルトではport 3000を使用しますので、必要に応じてfirewallを設定してください。

http://<EXTERNAL_IP>:3000/

ダッシュボードにアクセスしたら、 usernameとpasswordにそれぞれ admin と入力し、ログインしてください。
デフォルトパスワードでのログイン時にはパスワードの変更を促されますので、画面上の指示に従ってください。

3. datasourceを設定する

Grafanaでは様々なバックエンドに対応しているため、まずは参照するdatasourceを指定する必要があります。
まずはConfigurationボタン(歯車)を選択しましょう。

次に、Add data sourceを選択します。

下方向へスクロールしていき、Stackdriverを選択します。

認証の種別を選択します。
今回はインスタンスのサービスアカウントにroles/monitoring.viewerを付与しているため、GCE Default Service Accountを指定します。
インスタンスのサービスアカウントに必要な権限が付与されていない場合や、GCE以外のサービスを使用する場合(例えばAWSなど)などは、別途必要な権限を持つサービスアカウントを作成し、Upload Service Account key fileからuploadする必要があります。
認証情報を扱うため、可能であれば事前にhttpsでアクセスできるよう設定することが望ましいです。 また、万が一乗っ取られた場合を考慮し、付与する権限は最小限に設定しましょう。

Save & Testを選択し、Successfully~となったらdatasourceの追加は成功です。
次のステップに進みましょう。

4. ダッシュボードの設定

次に、追加されたdatasourceを使用しグラフを作成します。
まずはダッシュボードの追加を選択します。

次に、Add new panelを選択し、パネルを新規作成します。

先ほど追加したdatasourceを選択します。

今回は例としてGCEインスタンスのCPU使用率をインスタンスごとに表示するグラフを作成します。

  • ServiceにComputeを設定します。GCEインスタンス
  • MetricにCPU usageを設定します。CPU使用率
  • Group byにmetric.label.instance_nameを設定します。インスタンスごとに
    以上3点を設定することで、例題通りのグラフが設定されました。

まとめ

以上、簡単ではありますがCloud MonitoringのメトリクスをGrafanaで可視化しました。 色々お試しいただき、GCE,GKE(Prometheus)とCloud Monitoringのような組み合わせや、AWS CloudWatchとの組み合わせなど、VMやコンテナ、マネージドサービス、マルチクラウドといった複雑化する構成の可視化の助けとなれば幸いです。


株式会社grasys(グラシス)は、技術が好きで一緒に夢中になれる仲間を募集しています。

grasysは、大規模・高負荷・高集積・高密度なシステムを多く扱っているITインフラの会社です。Google Cloud (GCP)、Amazon Web Services (AWS)、Microsoft Azureの最先端技術を活用してクラウドインフラやデータ分析基盤など、ITシステムの重要な基盤を設計・構築し、改善を続けながら運用しています。

お客様の課題解決をしながら技術を広げたい方、攻めのインフラ技術を習得したい方、とことん技術を追求したい方にとって素晴らしい環境が、grasysにはあります。
お気軽にご連絡ください。


採用情報
お問い合わせ