[Server] サーバー管理ツールを作る #1「複数サーバー管理」

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

Chef、Asibleという今どきのサーバー管理ツールを使ってみて、どうしてももう少し改良できないかと思ってしまったので、いっその事自分で作ってみました。

現状ツールの不満点

サーバー管理ツールは、管理対象が複数サーバーあって、一括で一元管理できるという事がサーバー管理者のリソースを圧迫しない為を目的にしていますが、この点は、大いに賛成です。

僕が問題視しているのは、サーバー管理する親サーバーと管理される子サーバーに別れると思いますが、子サーバーに対してもう少しパッケージモジュールのリソースを省略できないかという点です。

ChefやNagios、Zabbix、どれも同じパッケージをインストールして、パッケージ間でデータなどのやりとりをするパターンで機能を担保してますが、
Ansibleがいいと感じたのは、「子サーバーにはパッケージのインストールが必要ない」という仕様が非常に気に入りました。

だが、古いサーバーに対して管理対象にすると、どうしてもアクセスできない場合があり、調べてみると、Pythonがインストールされていないと動作しないという事でした。

やはりパッケージ依存していた・・・

解決方法は簡単

基本的には、Linuxサーバーという事を条件にして、OSの持っている機能だけで管理できれば、問題ないという安易な考えですが、基本的にsshアクセスをすれば、全く問題ないと考えました。

β版をGITHUBにアップしました

https://github.com/yugeta/serverHealth

今現在は、コマンドを叩いてヘルスチェックと、shellコマンドの実行ができるというレベルですが、ansibleで行えることは大体できるのではないかと考えてます。

使い方

1. Githubよりcloneしたデータを任意の階層に置いておきます。(どこでもOK)
2. 「src/servers.list」に管理対象サーバーを改行区切りで入力する。(ドメインも可)
3. 対象サーバーに対して、sshの秘密鍵でアクセスできるようにセットする。
  ※今のベージョンではssh-addして、鍵を付与しないようにしてください。
  ※ヘルスチェックだけであれば、root権限は入りません。
4. コマンドを実行するとヘルスチェックができます。

今後の展開

以下の様な機能を追加してアップデートしていきます。

・複数サーバーに対しての定期管理ロギング
・障害発生時に管理者にメール送信
・サーバーの時間帯ログなどで、負荷値のレポート(グラフ)
・管理対象サーバーをグループ分けして、管理画面(GUI)でのグループ別の一括操作を行う
・初期設定のある程度の自動化

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です