僕らのサービスと一緒に育つMackerel氏

こんにちは。
ShareWisなんでもエンジニア、@kuchitamaこと国平です。
12月に入ってからScalaアドベントカレンダーの記事ばかり投稿していましたが、
今回の記事はMackerelアドベントカレンダー 10日目の記事です。
ShareWisのリニューアルについては、前回の記事の冒頭でお知らせしました。
そのリニューアル版の公開が間もなくということで、ドキドキしています。
しっかりとテストを行い、負荷試験も実施して、あとはリリースするだけなのですが、それでも予期せぬエラーが起こったり、サーバが急に停止したりするかもしれません。
そんな不安を解消するために、ShareWisではMackerelによるサーバ監視を行っています。
mackrel氏

Mackerelを導入したわけ

これまでのShareWisではサーバ監視にNewRelicを利用していました。
しかし、今回のリニューアルに伴って、サーバ監視についても見直しました。
いくつかの候補から、ShareWisの監視にはもっとも導入が簡単だったMackerelを採用しました。

MackrelAgentをAnsibleでインストールする

Mackerelのヘルプを見ていただければわかるのですが、Mackerelのインストールは非常に簡単です。
しかし、ShareWisはAWSを利用しており、ユーザ数の増加に合わせてサーバをスケールアウトできる構成になっています。
導入が簡単とはいえ、何度も手作業でインストールを行うのは面倒です。
そこで、ShareWisではAnsibleを利用して、サーバにMackerelのインストールを行うことにしました。

Mackerel公式のGalaxy Role

以前の記事でお伝えした通り、ShareWisのプロビジョニングにはAnsibleを利用しています。
AnsibleGalaxyにはMackerelが管理しているGalaxyRoleがあり、このRoleを利用してMackerelのインストールと設定を行うことにしました。
Galaxy|mackerel-agent
しかし、導入しようとした際に、一つ問題がありました。
このRoleは UbuntuやCentOSには対応していたのですが、AmazonLinuxには対応していませんでした。
別のRoleを探すか、自分でRoleを作成しようかとも思ったのですが、一通り実装を読んでみると、このRoleは非常にシンプルに実装されていました。
それに、同様の機能をもつRepositoryを量産するのもメリットがないので、AmazonLinuxにも対応できるように修正したPRを送りました。

また、このRoleを使うことで、agent-pluginを利用するための設定も簡単に行えるのですが、このRoleでは肝心のagent-plugin自体はインストールできませんでした。
これでは、片手落ちだと思ったので、agent-pluginをインストールする機能も作成してPRを送りました。

いきなりのPRだったので、マージされるまでに時間がかかるかと思っていたのですが、PRを出したその日のうちにマージしてもらえました。
ということで、MackerelのAnsible Galaxy Roleは、かなり扱いやすくなったんじゃないかと思います。
もし、サーバ監視にMackerelをご利用される際には、このRoleを使うといいでしょう。

これから

先週の告知ブログを読んでいて気づいたのですが、チェックプラグインを使うとログ監視もできるんですね。
現在ShareWisではログ監視にlogmonというIBM製のツールを利用しています。
もちろん、インストールにはAnsibleを利用しているのですが、ShareWis開発時点ではGalaxyにRoleがなかったので、作って公開しました。
https://galaxy.ansible.com/detail#/role/5870
しかし、Mackerelの通知機能を利用できるのは便利なので、近いうちにMackerelのログ監視機能を使おうと思います。
今のところ、MackerelのRoleはチェックプラグインのインストールに対応していないのですが、対応できるようにしようと思います。
Mackerelは非常に導入がシンプルなので、Ansibleのようなプロビジョニングツールの利用も非常にシンプルに実現できます。
そのため、自分の用途に足りないものがあった時にも、すぐに追加できます。
Mackerelチームの方々はPRにも、すぐに反応してくれるので、みなさんAnsibleRoleや他のMackerel関連のツールにもじゃんじゃんPRを送っていきましょう。

コメント

タイトルとURLをコピーしました