Hinemos開発日記 2nd Season RSSフィード

2014-03-17 第七十九 RHEL6.5

cです。こんにちは。


Hinemosのメーリングリストに参加している方はお気づきだと思いますが、

RHEL6.5(Cent6.5等も含む)でHinemosを動かすと、一か月程度で異常になってしまいます。

(古いRHELを利用していても、OpenJDKをアップデートすると、発生します。)

という緊急周知が出ています。

詳細は下記を確認してください。

http://sourceforge.jp/projects/hinemos/lists/archive/mailing-list/2014-March/000587.html

2014-01-31 第七十八 Hinemos4.1.1, 4.0.3

cです。こんにちは。


Hinemos4.1.1, 4.0.3をリリースしました。

http://www.hinemos.info/topics_version/hinemosver411ver403.php

不具合が修正されているので、最新版を利用しましょう。

2013-12-29 第七十七話 Ubuntu

cです。こんばんは。


http://atomitech.jp/hinemos/blog/?p=1443

Ubuntu対応版のHinemosがリリースされた様子。

エージェントだけではなく、マネージャもあるようですね。

2013-12-20

HinemosでCloudStackを管理する

23:28

@moomindaniです。

今回は、HinemosApache CloudStackを管理する方法について考えてみます。

この記事は CloudStack Advent Calendar 2013 の12月20日分のエントリとなってます。


CloudStackは、サーバ仮想化環境を基盤にして、IaaS型のクラウドを提供するOSSです。

CloudStack 4.2を試しにインストールすると、こんな感じのインタフェースが提供されます。

f:id:hinemos_dev:20131220010131p:image

CloudStackを管理する上で、主な管理対象となる構成要素は下記です。

ここからは、Hinemosを使って具体的にどのように管理(監視・ジョブ制御)できるかを見ていきます。



[準備] Hinemosマネージャサーバのセットアップ

まず、管理サーバ、ハイパーバイザ、インスタンスと疎通可能なネットワークに、Hinemosマネージャサーバを用意します。

Hinemosマネージャインストール方法は、下記のマニュアル記載の通りです。

Hinemosマネージャインストールしたら、CloudStackの管理サーバ、ハイパーバイザ、インスタンスノードとして登録します。

f:id:hinemos_dev:20131220231206p:image

1. 管理サーバの管理

CloudStackの管理サーバを管理する方法を考えます。

#管理サーバの管理とは哲学的ですね・・・

ちなみに、もしCloudStackの管理サーバ上でジョブ管理したいなどの要件があれば、Hinemosエージェントを導入するために、CloudStackの管理サーバCentOS/RHELとする必要があります。

UbuntuではHinemosエージェントを使用できないため)


○死活監視

管理サーバに対して、HinemosのPING監視を設定し、応答時間パケット損失率を監視します。

f:id:hinemos_dev:20131220231207p:image

リソース監視

管理サーバに対して、Hinemosのリソース監視を設定し、CPU使用率やメモリ使用率、ファイルシステム使用率等を監視します。

f:id:hinemos_dev:20131220231208p:image

○アラート監視

CloudStackでは、すべてのアラートに対してsyslogを生成できます。

下記のドキュメントを参考に、CloudStackのsyslogの宛先ホストをHinemosマネージャサーバに設定します。

CloudStack Admin Guide

あとは、Hinemosのシステムログ監視を設定するだけです。

f:id:hinemos_dev:20131220231210p:image

なお、スクリーンショットでは、パターンマッチ表現に「.*」(すべてマッチ)しか用意していませんが、

本来は監視したいログメッセージに対応するパターンマッチ表現を設計する必要があります。


○CloudStack API監視・実行制御

CloudStack APIを使って、管理サーバを外部から情報取得・制御できます。

まず、Hinemosマネージャサーバ上からCloudStack APIで制御するスクリプトを実装し、それをHinemosのカスタム監視やジョブに設定します。


CloudStack APIを用いたカスタム監視により、listCapacityを利用するとキャパシティの状態監視が可能になります。

この際、カスタム監視のコマンドで指定するスクリプト内で、CloudStack APIで取得した出力結果をHinemosのカスタム監視で読み取り可能なkey,value形式に整形して標準出力する必要があります。


また、CloudStack APIを用いたジョブの制御により、インスタンスの起動/停止のスケジューリングなどが可能になります。

具体的なスクリプティング方法等については、下記の記事が参考になります。


2. ハイパーバイザの管理

CloudStackではハイパーバイザとして、VMware vSphere、KVM、Citrix XenServerが選択できます。

これらのハイパーバイザを管理する方法を考えます。


○死活監視

ハイパーバイザに対して、HinemosのPING監視を設定し、応答時間パケット損失率を監視します。


リソース監視

ハイパーバイザに対して、Hinemosのリソース監視を設定し、CPU使用率やメモリ使用率、ファイルシステム使用率等を監視します。

ちなみに、Hinemosの各ハイパーバイザに対応したVM管理オプションを使うと、ハイパーバイザのAPI経由でリソース状況を監視できます。



3. インスタンスの管理

CloudStack上のインスタンスを管理する方法を考えます。


○死活監視

インスタンスに対して、HinemosのPING監視を設定し、応答時間パケット損失率を監視します。


リソース監視

インスタンスに対して、Hinemosのリソース監視を設定し、CPU使用率やメモリ使用率、ファイルシステム使用率等を監視します。



★やりたいこと

理想的には、Hinemosエージェントを導入したテンプレートをCloudStackに登録し、そのテンプレートデプロイした瞬間からHinemosで管理開始できるようにしたいところですが、今回はAdvent Calendarのスケジュール上、タイムオーバーでそこまでできておりません・・・。

この点については実現できる目処はつけたので、今後やってみます。


以上、CloudStackをHinemosで管理する方法について考えてみました。


参考文献:CloudStack徹底入門

2013-12-18 第七十六話 ログファイルを正規表現で指定可能に

cです。こんにちは。

http://sourceforge.jp/projects/hinemos/releases/59584/note

Hinemos4.1の主な機能追加、機能改善はこちら。


今回もHinemos4.1の細かい機能改善をお伝えします。


ログファイル監視で対象ファイルを正規表現で指定できるようになりました。

f:id:hinemos_dev:20131218152453p:image

Hinemos4.0のログファイル監視の設定画面


f:id:hinemos_dev:20131218152454p:image

Hinemos4.1のログファイル監視の設定画面


画面を見てもらえばわかるように、ファイル名に正規表現が利用できるようになっています。

最新のログファイルが「hoge.20131218」のように日付が含まれている場合、この機能改善は嬉しいと思います。


注意事項として、最新ファイルが「hoge.log」で、古いファイルが「hoge.log.1」「hoge.log.2」「hoge.log.3」のようになっている場合に、「hoge.*」を監視対象とするのはNGです。

hoge.logがログローテートされてhoge.log.1になった瞬間に、Hinemosエージェントはhoge.log.1が新しいファイルになったと検知してしまい、新しいhoge.log.1(直前まではhoge.logであったもの)を最初から読み直してしまいます。


まとめると下記のように設定すると良いです。

最新のログファイル:hoge.20131218
古いログファイル:hoge.20131217, hoge.20131216, hoge.20131215 
監視設定OK例1:hoge.[0-9]*
監視設定OK例2:hoge.*
(例2よりも例1のように、できるだけ他のファイルがヒットしないような正規表現が良いです。)

最新のログファイル:hoge.log
古いログファイル:hoge.log.1, hoge.log.2, hoge.log.3
監視設定OK例:hoge.log
監視設定NG例1:hoge.*
監視設定NG例2:hoge.log.*

最新のログファイル:hoge.log
古いログファイル:hoge.log.20131217, hoge.log.20131216, hoge.log.20131215
監視設定OK例1:hoge.log
監視設定OK例2:hoge.*
(例2よりも例1のように、できるだけ他のファイルがヒットしないような正規表現が良いです。)

(本当は、hoge\.logとするのが正確なのですが…。)