mackerel + その他ツールで Zikka Reliability Engineering(ZRE) に取り組んでみた

IT のお仕事をしている方々は恐らく避けられない、帰省時のパソコンメンテナンス。
twitter を眺めていても、そういうツイートを多く見かけました。プリンタを設定してほしい、なんかエラーが出てくる、ウイルスに感染した、等々。
かく言う私もエンジニアとして働いているということもあり、帰省するとちょっと見てくれるかなというところから始まって年賀状の印刷までサポートすることがあります。それなりに楽しいのは楽しいので何だかんだやってしまうんですが。

で、ちょっと思ったのがこれ毎年まとめてやるのって無駄だなぁということ。年賀状の印刷とかそういう個別の対応は仕方がないとして、ディスクが少なくなってきたとかウイルスに感染したとか、その時にわからないものかなと思いました。
普段お仕事では、監視は運用の要ですよー、監視は定期的に見直しましょうねー、とか言っている割にこの辺出来てないなぁとふと思ったので、今年の帰省を機に Zikka Reliability Engineering(ZRE) に取り組むことにしました。

ZRE で必要なこと

監視

ZRE を始めるにあたり、まず必要なものとしては、何はともあれ監視です。ユーザーは基本的にコンピューターの仕組みを知りません。なので、エンジニアからはとても考えられない使い方をしているケースがよくあります。例えば、アプリをガンガンインストールしてスタートアップに大量に登録されているとか、ディスクサイズを気にせずガンガン写真を取り込んでみるとか。全てをカバーするにはそれなりに作りこみが必要ですが、まずは基本的なメトリック監視をするだけでも様々なトラブルを未然に防ぐことができます。
また、今後のことを考えて拡張性があった方がよいと考えました。

リモート接続

異常を検知したらそこから回復する必要があります。ZREにおいては、手軽にリモート接続ができることは必須と考えました。
また、リモート接続をするにあたり、ユーザーのオペレーションが必要になってしまうと、接続するところに至るまでにサポートが必要になるので、オンライン状態であればそのまま接続できる仕組みが必要と考えました。通常のお仕事ではプライバシー面で認証の仕組み等を考える必要がありますが、ZRE ならではの自分のみが管理者ということもあり、その辺は考えないことにしました。

構成管理・ポリシー

ユーザーの意図したもの、意図しないもの含め、必要以上のアプリケーションがインストールされたり、動作に影響のある設定変更がされたりするのは好ましくありません。
従って、インストールされているアプリケーションのリストやポリシー管理ができる仕組みが必要と考えました。

安い

これ重要です。ZRE では基本的にユーザーに課金は出来ないので、基本的にポケットマネーになります。なので、基本無料できる限り安く、を目指しました。

採用したツール

mackerel

手軽な監視、というところで初めに浮かんだのが mackerel です。エージェントを入れさえすればとりあえず基本的なメトリック監視ができる、SaaS 型の監視ソリューションです。
当然、アラートを出すこともできます。また、拡張性という面でも、監視用のツールを好きなように作れるので、十分です。

難点があるとすれば、せっかくエージェントがあるのに、それを介してツールの配布ができないことです。また、価格の面でも、5台までは無料なのですが、6台以上になると料金が発生し、その料金も個人運用するには安くないという点です。さらに、無料版では、1日間しかデータが保持されないということです。(サービスを無料で使えるというだけで十分ありがたいのですが)

このあたり、もう一つのツールとして、Azure の Log Aanalytics と比較した時に、Negative なポイントでした。
ちなみに、Log Analytics では、とりあえずエージェントを入れれば、ソリューションを足していくだけで必要なツールを適宜ダウンロードしてくれます。
また、課金体系もノード数に対する課金ではなく、1日のデータ量になり、1日500 MB までであれば課金されることもなく、また過去のデータも残すことができます。

最終的に、好きなツールを動かせるという拡張性という面と、6台以上を対象とすることは今のところなくとりあえず1日分のデータさえ見れれば十分というところで meckerel を選択しました。

TeamViewer

リモート接続では定番ツールです。1回限りのサポートとして、クライアント権限で単一バイナリで動かすこともできますし、サービスとしてインストールすると、ユーザーのオペレーション無くリモート接続が可能になります。

TeamViewer も、個人利用の場合は、無料で使用ができます。
また、アカウントを作成すると、複数台の PC 管理ができます。

こんな感じ。
f:id:mitsuki0820:20190106025135p:plain

ファイル転送もできるのがいいですね。

Office 365

ログインのアカウントとデバイス、アプリケーションの紐づけができると、デバイスやアカウント の管理がとても簡単になります。この点、ZRE でも例外ではありません。

例えば、久しく実家 PC に触れてまずうーんと思うのがサービスを利用するアカウントがどんどん増えていくこと。アカウントだけであればいいものの、アカウント管理がされていないので、サービスによって Gmail しか出てこないものとかもあり、それに誘導されて、メールアドレスが増えていきます。当然、以前に作ったアカウントやパスワードは忘れ去られています。

この原因の一つとして、PCにログインするアカウントと、サービスを使うときのアカウント、メールアドレスがバラバラになっており、どれか一つに統一されていないということです。
この辺りはシステマチックに解決するというよりは、今後このアカウント(メールアドレス)を使っていこうね、という決めの問題ではあるのですが、アカウントの統一以外にも解決できることがあったので、O365 の Business Essentialsを使うことにしました。

Windows 10 では、O365(正確には Azure AD)にアカウントを作ると、そのアカウントで PC にログインすることができるようになります。また、O365 を使うとメールアドレスも用意されるので、PC へのログイン、メールの利用を含め、アカウントの統一ができるようになります。

また、O365 Business Essentials では、OneDrive for Business を使うことができ、さらに容量が 1 TB と十分あります。そして、ドキュメントフォルダーやデスクトップも含め、自動的に O365 に同期をかけることもでき、よくありがちな、「どこかは分からないけど保存はしている」状態であってもとりあえず同期できます。

難点は、価格です。1ユーザー年間で6,480円します。我が家では4ユーザーいるので、合計 25,920 円。なかなか辛いものがありますね。。

Intune

いわゆる MDM です。Intune を使うことで、ドメイン参加していなくてもポリシーでクライアント管理が可能になります。
できることとしては、例えば、BitLocker をかけるとか、Windows Defender の設定とか、アプリケーションの自動インストールとか、なんでもと言っていいくらいいろんなことができます。ZRE においては十分過ぎます。

しかしこちらも価格に難点あり。 1 ユーザー 650 円(しかも月額)ということで、さすがに個人で払うにはちょっと厳しいお値段です。ひとまず検証目的として、無料試用版を使ってみています。

まとめ

監視対象の強化や、O365 の活用等まだまだやりたいことはあるのですが、ひとまず現状はこんな感じです。
皆さんもぜひ、ZRE をやってみてはいかがでしょうか。