読者です 読者をやめる 読者になる 読者になる

mackerel のインストールと設定

はてな謹製のSaaS型サーバー監視ソリューション、mackerelの導入とプラグインの設定メモ。

環境はUbuntu 15.04。いつものさくらのVPS環境。mackerelの詳細およびアカウント登録は以下へどうぞ。

mackerel.io

2週間の試用期間後はサーバー5台までは制限事項つきながら無料で使える。エージェントはGo言語らしいので、きっとMuninより高負荷に強いだろうと思われる。

インストール

まずはaptのリポジトリを追加してインストールする。この辺りは公式ドキュメントどおり。

$ curl -fsSL https://mackerel.io/assets/files/scripts/setup-apt.sh | sh
$ sudo apt-get install mackerel 

まずはAPIキーを設定ファイルに書き込んで動作確認。

$ sudo vi /etc/mackerel-agent/mackerel-agent.conf

ファイルの先頭にapikey = ...のような行があるの先頭のコメント記号を削除してされているのでそこに貼り付ける。echoで末尾に追記でも大丈夫だろうけど。 apiキーの取得はログインして「エージェントをインストール」というリンクをクリックし、インストール手順の説明のところに表示されているはず。

$ sudo systemctl start mackerel-agent

しばらく放置したのち、mackereのサイトにログインするとCPU使用率などのグラフが確認できるようになる。

プラグイン設定

基本設定だけではさみしいので、Linux用のプラグインとnginxのステータス確認プラグインを導入してみる。

$ sudo apt-get install mackerel-agent-plugins

インストール後の容量が130Mとか表示されてちょっとどうかなというところ。 パッケージをざっくりでいいから分割して欲しいような気もしなくもない。

linuxプラグイン

設定ファイル(/etc/mackerel-agent/mackerel-agent.conf)に以下のような箇所があるのでコメントを外して有効にする。

# [plugin.metrics.linux]
# command = "/usr/local/bin/mackerel-plugin-linux"

行頭のコメント記号(#)を外すだけ。

$ sudo vi /etc/mackerel-agent/mackerel-agent.conf

で、agentを再起動。

$ sudo systemctl restart mackerel-agent

nginxプラグイン

まず、nginx 側の設定を一部変更し、stub_status を有効にする。

Ubuntuのお作法として、Nginxの設定ファイルは、以下のようにメインの設定ファイルからもろもろ読み込まれる。

  • /etc/nginx/nginx.conf
  • /etc/nginx/conf.d/*
  • /etc/nginx/sites-enabled/*

実際は、sites-available に配置したファイルに、sites-enabled へのシンボリックリンクをはるわけですが。

どこに追記するかは個人のお好みで。/etc/nginx/sites-enabled/defaultghostという名称にリネームしている*1のでそこに追記。

sudo vi /etc/nginx/sites-enabled/ghost

以下はポート8080番で/nginx_statusに対し、ローカルホストのみアクセスすを許可する設定。mackerelプラグインのデフォルトに合わせておく。ポート番号はmackerel-agentのプラグイン側でも指定できるので他のポートでも問題ない。

server {
    listen 8080;
    server_name localhost;
    location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        deny all;
    }
}

設定ファイルの構文チェック。

sudo nginx -t -c /etc/nginx/nginx.conf

問題がなければ設定を反映させる。

sudo systemctl reload nginx

実際に値が取れるか試す。それらしい値が取れればOK。

$ /usr/local/bin/mackerel-plugin-nginx
nginx.connections.connections   1.000000        1442489255
nginx.requests.accepts  1.714286        1442489255
nginx.requests.handled  1.714286        1442489255
nginx.requests.requests 1.714286        1442489255
nginx.queue.reading     0.000000        1442489255
nginx.queue.writing     1.000000        1442489255

問題なければ、linuxプラグインと同じ要領で設定ファイルを編集してプラグインを有効に。

# [plugin.metrics.nginx]
#  command = "/usr/local/bin/mackerel-plugin-nginx"

のコメント記号(#)を外す。nginx側の設定に応じてmackerel-plugin-nginxのオプションを指定すればよい。

5分から10分ぐらい放置し、然るのちにホストの詳細情報ページにアクセスするとグラフが増えてやんわりとした多幸感に包まれることができる。GUIでポチポチとクリックしていくだけで閾値設定も可能。

mackerelで一番面白いのは削除したVMとか、存在しなくなったホストを「退役させる」という言い回し。 登録解除でも削除でもなく「退役」ですよ「退役」、軍事ネタが好きなのか、それとも? そのうち新規サービスをロールアウトとか言い出すのか…。

問題は価格体系かなあ。小規模サイトで課金するぐらいなら監視用のサーバーを用意してMuninとかZabbixでいいと思う。 専任のサーバー管理者がいないとか、インフラに強い人間がいない環境ならありかな。 MuninやZabbixに不満があって監視ツールを自作するるぐらいなら素直に課金使うほうが合理的だとは思う。

それはそうと、最近AdsenseでMackerelの広告ばかり表示されるのはいかがなものか。 他のページで過去にクリックした広告が表示されているんだろうけど、すでに導入済みの人間に表示してどうするのかと。 しかも英語ページにとばされるし。

参考にしたサイト

*1:ghostというblogエンジン用のサーバなので。defaultのままだとパッケージの更新時に設定ファイルを上書きして良いかどうか、確認の手間が発生するので。