mackerel のインストールと設定
スポンサーリンク
はてな謹製のSaaS型サーバー監視ソリューション、mackerelの導入とプラグインの設定メモ。
環境はUbuntu 15.04。いつものさくらのVPS環境。mackerelの詳細およびアカウント登録は以下へどうぞ。
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/default
をghost
という名称にリネームしている*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の広告ばかり表示されるのはいかがなものか。 他のページで過去にクリックした広告が表示されているんだろうけど、すでに導入済みの人間に表示してどうするのかと。 しかも英語ページにとばされるし。
参考にしたサイト
- debパッケージでmackerel-agentをインストールする - Mackerel ヘルプ
- はてなのサーバー管理ツール(mackerel 鯖)使ってみた ③ - shoprevのブログ
- zabbixでnginxの接続状態を確認する - 雑記
- nginx で接続状態を確認する(stub_status を使ってみる) | レンタルサーバー・自宅サーバー設定・構築のヒント
*1:ghostというblogエンジン用のサーバなので。defaultのままだとパッケージの更新時に設定ファイルを上書きして良いかどうか、確認の手間が発生するので。