Google Cloud Platform Japan Blog
最新情報や使い方、チュートリアル、国内外の事例やイベントについてお伝えします。
DevOps で役に立つ Stackdriver の 6 つのポイント
2016年6月22日水曜日
* この投稿は米国時間 6 月 9 日、Developer Advocate である Aja Hammerly によって投稿されたもの(
投稿はこちら
)の抄訳です。
DevOps やシステム管理は私の職務のほんの一部に過ぎませんが、そういう人間にとっても、頻繁に必要になるすべてのツールが 1 つにまとめられていると、とても助かります。
そして、まさにそれを実現しているのが
Stackdriver
です。モニタリング、ロギング、デバッグ、エラー レポートがすべて統合され、ウェブ サイトを落とさずに健全な状態に保つために必要不可欠なツールが揃っています。
基本的なモニタリングのセットアップに関するシステム管理の詳細な知識が要求されない点も気に入っています。最小限の労力を注ぐだけで、アプリケーションに問題がある場合には必ず通知が送られてくるという安心感が得られます。
私は Google I/O 2016 のセッション “Just Enough Stackdriver to Sleep At Night”(Stackdriver があれば夜はよく眠れる)で、Stackdriver のどこが気に入っているかをお話ししました。このセッションの様子は
こちら
で見ることができますが、この投稿ではそのハイライトをお届けします。
1. モニタリングと稼働時間チェック
基本的なモニタリングの設定は DevOps で最も一般的なタスクの 1 つです。Stackdriver では、URL、App Engine アプリケーションとモジュール、ロード バランサ、特定のインスタンスが稼働しているかどうかをモニタリングできます。稼働時間のチェックは HTTP、HTTPS、UDP、もしくは TCP を介して行うことができ、チェックの頻度を指定することも可能です。
私は主として、アプリケーションのルートやその他の重要なエンドポイントに対する URL チェックを使っています。そうしたチェックをセットアップすると、通知の送り方も設定できるようになります。
Stackdriver は、電子メールや SMS といった一般的な通知方法のほか、HipChat、Slack、Campfire などのメッセージング プラットフォームや、PagerDuty、Google Cloud Console モバイル アプリなどもサポートしています。そして、これらのどの方法でも、チームのニーズに合わないときのために、設定の変更が可能なウェブフックをサポートしています。
2. アプリケーション レベルのモニタリング
DevOps チームにとってはアプリケーション レベルのモニタリングも必要です。Stackdriver は、nginx、Apache、Memcached、MongoDB、MySQL、PostgreSQL、RabbitMQ など、広く使われているツール / フレームワークの多くをモニタリングできます。
これらのアプリケーションのモニタリングは、システムに config ファイルを追加してモニタリング エージェントを再起動するだけで開始されます。もちろん、特定のスタックがまだサポートされていない場合はカスタム モニタリングが可能です。
Google Cloud Platform
上でアプリケーションが実行されると、Stackdriver は自動的にオープン ポート、実行中のサービス、インスタンス名をチェックして、上述したようなツールが使用されているかどうかを判定し、もし使われているなら、それらのツールのメトリクスもモニタリングの対象に追加します。
たとえば、
Google Compute Engine
上の “MySQL” というインスタンスで MySQL サーバーを実行し、mysql プロセスが動いている場合、Stackdriver はそれを検出してモニタリング オプションに MySQL のメトリクスを追加します。
Google App Engine
を使っている場合には、Stackdriver はリクエスト レベルのレイテンシ モニタリングをサポートします。たとえば 5xx のエラー、2xx の成功など、特定クラスのレスポンスのレイテンシをチェックできます。全体の平均、95 %、5 % のチェックも可能です。リクエスト レベルのレイテンシがときどき外れ値になるような場合は、これが特に役に立ちます。
3. システム レベル モニタリング
Stackdriver はシステム レベル モニタリングもサポートしています。ディスクの使用量、I/O、メモリ イメージとスワップ、CPU の利用状況と
スティール
、プロセス(実行中、スリープ中、ゾンビ)、ネットワーク トラフィックとオープン TCP 接続をモニタリングできます。ディスクがいっぱいになるのが早過ぎたり、CPU のスパイクが許容限度を超えたりしたときのために、アラートを設定することも可能です。
システムの一部をモニタリングするためには、Stackdriver モニタリング エージェントをマシンにインストールしなければなりません。エージェントのインストールは数分で終わります。そして、Chef のクックブック、Puppet のモジュール、Ansible のロールもあります。
4. ロギング
Stackdriver Monitoring と同様に、
Stackdriver Logging
も Cloud Platform と Amazon Web Services の両方で動作します。デフォルトでは App Engine 用にセットアップされており、一部の
Google Container Engine
イベントもキャプチャします。
Compute Engine VM へのロギング エージェントのインストールは簡単です。また、多くのウェブ フレームワークのために、アプリケーションに Stackdriver Logging を統合するためのパッケージが作られています。
フレームワークがサポートされていない場合やカスタム イベントが必要な場合は、Stackdriver Logging API を使って Stackdriver に直接イベントを送ることができます。この API はエントリの表示、プロジェクトのロギングの管理もサポートしています。
Stackdriver Logging UI が時間間隔やログ レベル、ログ ソースなどによる検索をサポートしている点も気に入っています。以前は、このレベルのフィルタリングのためにコードを書かなければなりませんでした。
Logging UI の検索機能では不十分な場合は、ログを
Google BigQuery
にエクスポートすればよいでしょう。BigQuery なら数 TB ものデータでも、すばやいクエリや集計、フィルタリングが可能です。BigQuery に対するクエリは、あとで繰り返したり結果を共有したりするために保存できます。
5. エラー レポート
“普通のエラー”はよく頭を悩まされる問題です。ほとんどのアプリケーションは、何かの境界条件とかその他の条件に従い、急いでフィックスする必要のないエラーまで出力するようになっているようです。
私は
Stackdriver Error Reporting
におけるエラーの扱いが気に入っています。Stackdriver Error Reporting は、アプリケーションのエラーを監視して集計し、新しいエラーが起きそうになるとアラートを送ってきます。
Error Reporting コンソールには、個々のエラーの発生件数、エラーが発生したアプリケーションのバージョン、最初と最後の発生時刻などが表示されます。Error Reporting はエラーの代表的なスタック トレースを保存し、アプリケーションのデバッグを支援します。特定のエラーをバグ トラッカーのバグにリンクすることも可能です。
Error Reporting は App Engine アプリケーションに自動的にセットアップされます。現在は、Java、Python、JavaScript、PHP、Go の各言語がサポートされています。
他の環境で Error Reporting を使用するには、アプリケーションから API を呼び出すか、特定の形式で Stackdriver Logging にエラー イベントを送ります。新しいエラーに関するアラートを受け取るためには、
Google Cloud Console
でオプトインします。
6. デバッギング
Error Reporting か Stackdriver Logging によってアプリケーション内のエラーに気づいたときは、再発を防ぐためにアプリケーションをデバッグする必要がありますが、そうした局面で役に立つのが
Stackdriver Debugger
です。
Stackdriver Debugger は、本番稼働のウェブ サイトにデバッガをフックする(私たちの多くがフックした経験がありますが、このやり方を勧める人はまずいません)のではなく、指定したポイントでアプリケーションの状態のスナップショットを取得します。インストルメンテーションの対象コードを本番稼働しなくても、このスナップショットを見ればコール スタックと変数の値がわかります。
スナップショットはファイル名と行番号を指定するだけで取得できます。アプリケーションのソースコードにアクセスできる場合は、Stackdriver Debugger にそれをアップロードすることが可能です。
また、デバッガにクラウド リポジトリを参照させたり、ブラウザにソースコードをローカルにロードしたりすることもできます。ソースコードを使える場合は、IDE 内でブレークポイントを設定するのと同じように、デバッガ内でスナップショット ポイントを設定します。
Stackdriver Debugger は、すべての App Engine アプリケーションで自動的に有効になります。しかも、キャプチャされたリクエストにさほど大きなレイテンシをもたらすわけではないので、パフォーマンスが落ちていることにユーザーは気づかないでしょう。
まとめ
皆さんはすでに何年もクラウドでアプリケーションを実行してきたかもしれませんが、アプリケーションを監視してエラーにすばやく対処するためには、通常は複数のベンダーの複数のツール(これらはデータを共有できないこともあります)を使用しなければなりませんでした。
Stackdriver は、必要なツールを一度のログインで 1 つの場所にまとめて提供します。Error Reporting でエラーを見ている間も、Cloud Logging の関連するログをシームレスに参照できます。Cloud Logging ではイベントにモニタリングとアラートを追加できます。問題を見つけたら、本番環境で簡単にデバッグすればよいのです。
機会があれば、ぜひ Stackdriver を試してみてください。そして、感想を Twitter の
@thagomizer_rb
にお寄せいただければ幸いです。
0 件のコメント :
コメントを投稿
12 か月間のトライアル
300 ドル相当が無料になるトライアルで、あらゆる GCP プロダクトをお試しいただけます。
Labels
.NET
.NET Core
.NET Core ランタイム
.NET Foundation
#gc_inside
#gc-inside
#GoogleCloudSummit
#GoogleNext18
#GoogleNext19
#inevitableja
Access Management
Access Transparency
Advanced Solutions Lab
AI
AI Hub
AlphaGo
Ansible
Anthos
Anvato
Apache Beam
Apache Maven
Apache Spark
API
Apigee
APIs Explore
App Engine
App Engine Flex
App Engine flexible
AppArmor
AppEngine
AppScale
AprilFool
AR
Artifactory
ASL
ASP.NET
ASP.NET Core
Attunity
AutoML Vision
AWS
Big Data
Big Data NoSQL
BigQuery
BigQuery Data Transfer Service
BigQuery GIS
Billing Alerts
Bime by Zendesk
Bitbucket
Borg
BOSH Google CPI
Bower
bq_sushi
BreezoMeter
BYOSL
Capacitor
Chromium OS
Client Libraries
Cloud API
Cloud Armor
Cloud Audit Logging
Cloud AutoML
Cloud Bigtable
Cloud Billing Catalog API
Cloud Billing reports
Cloud CDN
Cloud Client Libraries
Cloud Console
Cloud Consoleアプリ
Cloud Container Builder
Cloud Dataflow
Cloud Dataflow SDK
Cloud Datalab
Cloud Dataprep
Cloud Dataproc
Cloud Datastore
Cloud Debugger
Cloud Deployment Manager
Cloud Endpoints
Cloud Firestore
Cloud Foundry
Cloud Foundry Foundation
Cloud Functions
Cloud Healthcare API
Cloud HSM
Cloud IAM
Cloud IAP
Cloud Identity
Cloud IoT Core
Cloud Jobs API
Cloud KMS
Cloud Launcher
Cloud Load Balancing
Cloud Machine Learning
Cloud Memorystore
Cloud Memorystore for Redis
Cloud monitoring
Cloud NAT
Cloud Natural Language API
Cloud Networking
Cloud OnAir
Cloud OnBoard
cloud Pub/Sub
Cloud Resource Manager
Cloud Resource Manager API
Cloud SCC
Cloud SDK
Cloud SDK for Windows
Cloud Security Command Center
Cloud Services Platform
Cloud Source Repositories
Cloud Spanner
Cloud Speech API
Cloud Speech-to-Text
Cloud SQL
Cloud Storage
Cloud Storage FUSE
Cloud Tools for PowerShell
Cloud Tools PowerShell
Cloud TPU
Cloud Translation
Cloud Translation API
Cloud Virtual Network
Cloud Vision
Cloud VPC
CloudBerry Backup
CloudBerry Lab
CloudConnect
CloudEndure
Cloudflare
Cloudian
CloudML
Cluster Federation
Codefresh
Codelabs
Cohesity
Coldline
Colossus
Compute Engine
Compute user Accounts
Container Engine
Container Registry
Container-Optimized OS
Container-VM Image
Couchbase
Coursera
CRE
CSEK
Customer Reliability Engineering
Data Studio
Databases
Dbvisit
DDoS
Debugger
Dedicated Interconnect
deep learning
Deployment Manager
Developer Console
Developers
DevOps
Dialogflow
Disney
DLP API
Docker
Dockerfile
Drain
Dreamel
Eclipse
Eclipse Orion
Education Grants
Elasticsearch
Elastifile
Energy Sciences Network
Error Reporting
ESNet
Evernote
FASTER
Fastly
Firebase
Firebase Analytics
Firebase Authentication
Flexible Environment
Forseti Security
G Suite
Gartner
gcloud
GCP
GCP Census
GCP 移行ガイド
GCP 認定資格チャレンジ
GCPUG
GCP導入事例
gcsfuse
GEO
GitHub
GitLab
GKE
Go
Go 言語
Google App Engine
Google Apps
Google Certified Professional - Data Engineer
Google Cloud
Google Cloud Certification Program
Google Cloud Client Libraries
Google Cloud Console
Google Cloud Dataflow
Google Cloud Datalab
Google Cloud Datastore
Google Cloud Endpoints
Google Cloud Explorer
Google Cloud Identity and Access Management
Google Cloud INSIDE
Google Cloud INSIDE Digital
Google Cloud INSIDE FinTech
Google Cloud Interconnect
Google Cloud Launcher
Google Cloud Logging
Google Cloud Next '18 in Tokyo
Google Cloud Next '19 in Tokyo
Google Cloud Platform
Google Cloud Resource Manager
Google Cloud Security Scanner
Google Cloud Shell
Google Cloud SQL
Google Cloud Storage
Google Cloud Storage Nearline
Google Cloud Summit '18
Google Cloud Summit ’18
Google Cloud Tools for IntelliJ
Google Code
Google Compute Engine
Google Container Engine
Google Data Analytics
Google Data Studio
Google Date Studio
Google Deployment Manager
Google Drive
Google Earth Engine
Google Genomics
Google Kubernetes Engine
Google maps
google maps api
Google Maps APIs
Google Maps Platform
Google SafeSearch
Google Service Control
Google Sheets
Google Slides
Google Translate
Google Trust Services
Google VPC
Google マップ
Google 公認プロフェッショナル
GoogleNext18
GPU
Gradle
Grafeas
GroupBy
gRPC
HA / DR
Haskell
HEPCloud
HIPAA
Horizon
HTCondor
IaaS
IAM
IBM
IBM POWER9
icon
IERS
Improbable
INEVITABLE ja night
inevitableja
InShorts
Intel
IntelliJ
Internal Load Balancing
Internet2
IoT
Issue Tracker
Java
Jenkins
JFrog
JFrog Artifactory SaaS
Jupiter
Jupyter
Kaggle
Kayenta
Khan Academy
Knative
Komprise
kubefed
Kubeflow Pipelines
Kubernetes
KVM
Landsat
load shedding
Local SSD
Logging
Looker
Machine Learning
Magenta
Managed Instance Group
Managed Instance Group Updater
Maps API
Maps-sensei
Mapsコーナー
Maven
Maxon Cinema 4D
MightyTV
Mission Control
MongoDB
MQTT
Multiplay
MySQL
Nearline
Network Time Protocol
Networking
neural networks
Next
Node
NoSQL
NTP
NuGet パッケージ
OCP
OLDISM
Open Compute Project
OpenCAPI
OpenCAPI Consortium
OpenShift Dedicated
Orbitera
Organization
Orion
Osaka
Paas
Panda
Particle
Partner Interconnect
Percona
Pete's Dragon
Pivotal
Pivotal Cloud Foundry
PLCN
Podcast
Pokemon GO
Pokémon GO
Poseidon
Postgre
PowerPoint
PowerShell
Professional Cloud Network Engineer
Protocol Buffers
Puppet
Pythian
Python
Qwiklabs
Rails
Raspberry Pi
Red Hat
Redis
Regional Managed Instance Groups
Ruby
Rust
SAP
SAP Cloud Platform
SC16
ScaleArc
Secure LDAP
Security & Identity
Sentinel-2
Service Broker
Serving Websites
Shared VPC
SideFX Houdini
SIGOPS Hall of Fame Award
Sinatra
Site Reliability Engineering
Skaffold
SLA
Slack
SLI
SLO
Slurm
Snap
Spaceknow
SpatialOS
Spinnaker
Spring
SQL Server
SRE
SSL policies
Stack Overflow
Stackdriver
Stackdriver Agent
Stackdriver APM
Stackdriver Debugger
Stackdriver Diagnostics
Stackdriver Error Reporting
Stackdriver Logging
Stackdriver Monitoring
Stackdriver Trace
Stanford
Startups
StatefulSets
Storage & Databases
StorReduce
Streak
Sureline
Sysbench
Tableau
Talend
Tensor Flow
Tensor Processing Unit
TensorFlow
Terraform
The Carousel
TPU
Trace
Transfer Appliance
Transfer Service
Translate API
Uber
Velostrata
Veritas
Video Intelligence API
Vision API
Visual Studio
Visualization
Vitess
VM
VM Image
VPC Flow Logs
VR
VSS
Waze
Weave Cloud
Web Risk AP
Webyog
Wide and Deep
Windows Server
Windows ワークロード
Wix
Worlds Adrift
Xplenty
Yellowfin
YouTube
Zaius
Zaius P9 Server
Zipkin
ZYNC Render
アーキテクチャ図
イベント
エラーバジェット
エンティティ
オンライン教育
クラウド アーキテクト
クラウド移行
グローバル ネットワーク
ゲーム
コードラボ
コミュニティ
コンテスト
コンピューティング
サーバーレス
サービス アカウント
サポート
ジッター
ショート動画シリーズ
スタートガイド
ストレージ
セキュリティ
セミナー
ソリューション ガイド
ソリューション: メディア
データ エンジニア
データセンター
デベロッパー
パートナーシップ
ビッグデータ
ファジング
プリエンプティブル GPU
プリエンプティブル VM
フルマネージド
ヘルスケア
ホワイトペーパー
マイクロサービス
まっぷす先生
マルチクラウド
リージョン
ロード シェディング
運用管理
可用性
海底ケーブル
機械学習
金融
継続的デリバリ
月刊ニュース
資格、認定
新機能、アップデート
深層学習
深層強化学習
人気記事ランキング
内部負荷分散
認定試験
認定資格
料金
Archive
2019
8月
7月
6月
5月
4月
3月
2月
1月
2018
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2017
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2016
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2015
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2014
12月
11月
10月
9月
8月
6月
5月
4月
3月
2月
Feed
月刊ニュースレターに
登録
新着ポストをメールで受け取る
Follow @GoogleCloud_jp
0 件のコメント :
コメントを投稿