Stackdriver Monitoring で GCE と Nginx を監視する

このブログは GCE 上で WordPress を利用して運営している。

GCPと親和性の高い Stackdriver を利用して、このブログを監視していきたい。

Stackdriver 設定

GCP のコンソールから Stackdriver を選択し、Stackdriver アカウントを作成。

対象GCEに Stackdriver monitoring agent をインストール。

curl -O
sudo bash --write-gcm


ls -la /etc/stackdriver/


  1. Uptime Checks
  2. Uptime Checks Overview
  3. Create Uptime Checks
  4. New Uptime Check 画面で以下に修正し、Save する
    Title : blog
    Check Type : HTTPS
    Resource Type : Instance


グラフは Resources → Instances → 自分のインスタンス名 で確認できる。



less /etc/stackdriver/collectd.conf


Interval 60

# Explicitly set hostname to "" to indicate the default resource.
Hostname ""

# The Stackdriver agent does not use fully qualified domain names.
FQDNLookup false

LoadPlugin syslog
<Plugin "syslog">
  LogLevel "info"
# if you uncomment this, you will get collectd logs separate from syslog
#LoadPlugin logfile
#<Plugin "logfile">
#  LogLevel "info"
#  File "/var/log/collectd.log"
#  Timestamp true

LoadPlugin df
<Plugin "df">
  FSType "devfs"
  IgnoreSelected true
  ReportByDevice true
  ValuesPercentage true

LoadPlugin cpu
<Plugin "cpu">
  ValuesPercentage true
  ReportByCpu false
LoadPlugin swap
<Plugin "swap">
  ValuesPercentage true
LoadPlugin interface
LoadPlugin disk
LoadPlugin load
LoadPlugin memory
<Plugin "memory">
  ValuesPercentage true
LoadPlugin processes
LoadPlugin tcpconns
LoadPlugin write_gcm
LoadPlugin match_regex
LoadPlugin match_throttle_metadata_keys
LoadPlugin stackdriver_agent

<Plugin "processes">
  ProcessMatch "all" ".*"
  Detail "ps_cputime"
  Detail "ps_disk_octets"
  Detail "ps_rss"
  Detail "ps_vm"

<Plugin "disk">
  # No config - collectd fails parsing configuration if tag is empty.

<Plugin "tcpconns">
  AllPortsSummary true

LoadPlugin exec
# Monitor the Stackdriver Logging agent. This should fail gracefully if for any
# reason the metrics endpoint for the Logging agent isn't reachable.
<Plugin "exec">
  # The script doesn't need any privileges, so run as 'nobody'.
  Exec "nobody" "/opt/stackdriver/collectd/bin/stackdriver-read_agent_logging" "http://localhost:24231/metrics"

LoadPlugin aggregation
LoadPlugin "match_regex"
<Plugin "memory">
  ValuesPercentage true

PostCacheChain "PostCache"
<Chain "PostCache">
  <Rule "processes">
    <Match "regex">
      Plugin "^processes$"
      Type "^(ps_cputime|disk_octets|ps_rss|ps_vm)$"
    <Target "jump">
      Chain "MaybeThrottleProcesses"
    Target "stop"
  <Rule "otherwise">
    <Match "throttle_metadata_keys">
      OKToThrottle false
    <Target "write">
      Plugin "write_gcm"

<Chain "MaybeThrottleProcesses">
  <Rule "default">
    <Match "throttle_metadata_keys">
      OKToThrottle true
      TrackedMetadata "processes:pid"
      TrackedMetadata "processes:command"
      TrackedMetadata "processes:command_line"
      TrackedMetadata "processes:owner"
    <Target "write">
       Plugin "write_gcm"

# if you have other config, especially for plugins, you can drop them
# into this directory
Include "/opt/stackdriver/collectd/etc/collectd.d"
Include "/etc/stackdriver/collectd.d"


  • syslog
  • df
  • cpu
  • swap
  • processes
  • exec
  • tcpconn
  • memory

Nginx を監視

アプリケーションのメトリクスは Agent にプラグインをインストールしなければならない。

今回は WordPress に利用している Nginx を監視してみる。

まず、Nginx 側で Nginx のステータス情報ハンドラを有効にする必要がある。

root 権限で行う。

sudo su

Nginx のフォルダに status.conf を配置。

(cd /etc/nginx/conf.d/ && curl -O

Nginx 再起動。

systemctl restart nginx

Stackdriver 側で Nginx モニタリングプラグインを配置。

(cd /opt/stackdriver/collectd/etc/collectd.d/ && curl -O

Stackdriver を再起動。

systemctl restart stackdriver-agent

これで Stackdriverコンソールの Resources から Nginx を選択することができる。


【GCP入門編・第15回】 GCP から AWS までモニタリングできる Google Stackdriver を紹介!

【GCP入門編・第16回】アプリのパフォーマンスを視覚的に確認できる Stackdriver Monitoring を紹介!

【GCP入門編・第17回】 Stackdriver Monitoring で Google Compute Engine を監視しよう!

Nginx プラグイン