最近、趣味がGoogle Compute Engineでサーバー構築になりつつあるA-takです。こんにちは。
今回Google Cloud Monitoringでサーバー監視の仕組みを入れてみました。かなりお手軽に構築できてしまいます。これやばいな。
Nagiosとか監視システム構築不要
サーバー運用するとなると、各サーバーの状況をモニタしたり、異常が起きたらメールで通知するような仕組みが必要になってきます。NagiosやZabbixなどがそれです。
Google Compute Engineの場合、ベータ版ではありますが、簡単に使える監視システムが用意されています。こいつが、設定も簡単でグラフなんかも見やすくて、かなりいいです。
まずはどんなことができるか
Google Developer Consoleから「監視」にアクセスすると、このような画面が表示されます。見ていただくとちゃんとサイトが稼働しているかのUptime CheckやCPUの使用率やメモリや、今インスタンスがいくつオートスケールで立ち上がっているかなどがグラフで表示されます。
さらにグラフはドラッグすると「画面遷移なし」で「スムーズ」に拡大表示が出来きて、上の虫眼鏡マークを押すと、すぐに元の倍率に戻せます。すげー楽。
メニューのServicesからNginxを選ぶとNginxサーバーの各種状況が表示できます。オートスケールで起動しているサーバーの一覧や、下にスクロールしていくとメモリやスワップ、ディスクI/O、コネクション数も表示。サーバーの状態が一目瞭然。
こんな感じでURL監視もできます。指定したURLにアクセスしてOK返ってくればサーバー生きてる、という監視ですね。世界各国からのアクセス状況を表示してくれるのが、無駄にすごい。
もちろん監視にひっかかったらメール通知してくれて、回復したらそれも「どの分のエラー」が回復したかちゃんとわかるように、元のエラーのメールを引用に含めて知らせてくれます。わかりやすい。
エラーの履歴も出てくる。
発生中のものと解決したものをわけて表示しくれます。すげー便利。
設定方法
設定方法はこちら見ていただくと、そんなに難しくないでしょう。英語ですが内容は短いです。
だいたい、ざっくりした流れは…
- Google Cloud MonitoringでAPI Keyを取得
- CentOS7にさっきのAPI Keyを含めてコマンド貼り付けてエージェントをインストール
- Nginxのconfを設定
- エージェントのプラグイン設定を記載
という流れです。
API Key取得とエージェントのインストールは上記ページのままなので、NginxとMariaDB(MySQL)の設定について紹介します。
Nginxの設定
こちらを見ていけばたぶん設定できると思いますが、一応軽く紹介します。
Nginxの設定を追加します。suになっている前提です。
vi /etc/nginx/nginx.conf
server {
listen 80;
server_name local-stackdriver-agent.stackdriver.com;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location / {
root /dev/null;
}
}
Nginx再起動。
systemctl restart nginx.service
次にエージェントのプラグイン設定をします。
vi /opt/stackdriver/collectd/etc/collectd.d/nginx.conf
LoadPlugin "nginx"
<Plugin "nginx">
URL "http://local-stackdriver-agent.stackdriver.com/nginx_status"
</Plugin>
もしviで保存時にエラーが出るようであれば、エージェントのインストールが出来ていなくてディレクトリがないと思われます。
エージェント再起動。
systemctl restart stackdriver-agent
これでNginxの細かい情報が監視画面に出てくるようになります。
MariaDB(MySQL)設定
これはプラグインの設定だけですね。
vi /opt/stackdriver/collectd/etc/collectd.d/mysql.conf
LoadPlugin "mysql"
<Plugin "mysql">
<Database "データーベース名">
Host "localhost"
User "ユーザー名"
Password "パスワード"
Port 3306
</Database>
</Plugin>
複数のデータベースを監視したい場合は、Databaseのタグのセットをもう一つ作れば複数のデータベースの状況が表示できます。
systemctl restart stackdriver-agent
これでOK。
超お手軽
インストールも設定も簡単だし、グラフも見やすい。MuninとかNagiosとかいろいろ入れなくても済むのはかなりうれしいですね。
今はベータだから無料だけど、正式版は有償になるのかな−、無料のままだとうれしいけどなぁ。