学生サークルで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サービスを運用している人まで誰でも簡単に触れるのでオススメです。
皆さんもぜひ使ってみてくださいね! !