2018-12-15

学生サークルでMackerelを運用してみた話

はじめに

この記事は、Mackerel Advent Calendar 2018の15日目の記事です。

今回は技術的なお話ではなく、私が所属する学生サークル(以下、サークル)で実際にMackerelを導入したお話をしていきます。

概要

現在、サークルで運用しているサーバはオンプレミスとクラウド(AWS)の二種類あります。

オンプレミスは実際に自宅などで動いているサーバで、こちらは内部に構築したZabbixで監視しています。

クラウドの方はAWSを利用しているので、CloudWatchを使っていました。

ただ、監視ツールが複数またがるのと、それに伴い認証情報もバラバラになってしまうため、非常に管理するのが大変でした。

そこで、新しい監視ツールを使うのにあたり、DatadogかMackerelのどちらかを使いたいという話になりました。

Mackerelを選んだ理由

Mackerelは周りの学生もよく使っていて、日本語に対応していることと、直感的なインタフェースが好評でした。

また、最近はAWSインテグレーションもサポートし始めたので、CloudWatchを使っている身としては好都合でした。

[https://mackerel.io/ja/features/aws-integration/:embed:cite]

Datadogの方が機能は豊富ですが、実際のユースケースを考えるとMackerelが最適だと考え、今回導入に至りました。

実際に使ってみた話

サークルではMackerelの通知をSlackではなくDiscordに流しています。これは本団体がDiscordメインで活動しているからです。

公式にはサポートしていませんが、実はDiscordにはSlack-Compatible Webhookが存在し、Slackと同じフォーマットでWebhookを送ることができます。

そのため、Discordで通知するのも簡単で、グラフ画像もちゃんと出ています。

[f:id:albacore:20181215151115p:plain]

Zabbix時代にはルータやL3スイッチなどのネットワーク機器もSNMPで監視していたのですが、こちらの記事を参考にMackerelでもメトリックが取れるようになりました。OIDを探すまで一苦労ですが、気合いでなんとか乗り切りました。

また、MackerelはOSSも充実しており、mackerel-client-goというGoのライブラリを使うことで、既存のWebサービスに対して柔軟に組み込むことが可能です。実際にホストのCPU使用率やメモリ使用量などからオートスケーリングするロジックも独自で組んで運用しています。

[https://github.com/mackerelio/mackerel-client-go:embed:cite]

最近のMackerelのトピックとしては、アラートの一覧を取得する際に以前はオープンなアラートしか取得出来ませんでしたが、クローズされたアラートも一緒に取得することが出来るようになり、とても便利です。よく使っています。

[https://mackerel.io/ja/api-docs/entry/alerts#get:embed:cite]

おわりに

とても短い文章になってしまいましたが、Mackerelは学生でも簡単に使える超最高なサービスです。

自宅でサーバ運用している人から、趣味でWebサービスを運用している人まで誰でも簡単に触れるのでオススメです。

皆さんもぜひ使ってみてくださいね! !