じっぱひとからげスマートフォン用の表示で見るじっぱひとからげ十把一絡げになんでもかんでもつづる。Hinemos運用監視ツールはOSSで置き換えできるのかといった議論が出てくるほど、OSS運用監視が注目されてきている*1。シェアの高いJP1はサポートが手厚いので、ビジネスにおいて止められない仕組みがJP1で動いているところをあえてOSSに置き換えて攻めようという力がはたらかない。ジョブ管理について言えば、はっきり言っていまさらもう変えられないというのが正直なところだろう。これらは、さわったことがない漠然とした不安からくるものであって、使ってみればなんということはない。感じられる部分もきっと多いはず。OSSを使い倒して「運用監視ツールはわしらが育てた」といえるくらいになりたいものだ。置き換えという観点で考えると、運用ツールのトップシェアを誇るJP1シリーズがフォローしているであろう1死活監視・通知、2稼働状況可視化、3ジョブ実行制御を実現できそうなHinemosをさわってみる。@ITHinemosは3.xのときにさわったことがあったが、エンタープライズオプションは使ったことがない。最近洗練されてきたエンタープライズオプションを使うことでジョブフローがグラフィカルに見られたり、少しずつJP1に近づいているようである。Webクライアントwb01の3台を構築する。7をここからダウンロードしてそれぞれの仮想マシンを立てる。Vagrantの導入についてはここでは言及しない。install.pdfに従う。手順書上は、マネージャ、エージェント、Webクライアントの幅優先探索で進んでいくが、便宜上、深さ優先探索に置き換えて説明する。マネージャサーバ前提となるパッケージを確認する。sblim-wbemcli足りないパッケージをインストールする。sblim-wbemcli(省略)もう一度、パッケージがインストールされていることを確認する。Hinemosマネージャのインストール4.1.1インストーラの実行インストール前にロケールを確認。LANGLANG=ja_JP.UTF-8Hinemosマネージャのインストーラをダウンロードしてインストールする。'/etc/systemd/system/multi-user.target.wants/hinemos_pg.service'意図した通りの言語設定になっていることを確認する。Managerのサービスを起動してみる。7からはserviceコマンドではなくsystemctlコマンドに置き換わっているが、公式手順ではserviceコマンドで書かれているのでその通りに従う。hinemos_manager.serviceHinemos5.0.2の場合は何もエラーが出なければ起動OK。PID行にjavaのプロセスIDとjavaのメッセージが表示されることを確認する。PID行にpostgreSQLのプロセスIDとpostgresのメッセージが表示されることを確認する。PostgreSQL.<psでのプロセス確認>2つのプロセスが起動していることを確認する。/opt/hinemos/これでHinemosマネージャの構築は完了。お決まりの流れで起動したら止めましょう。PID行に"code=exited"が表示されていることを確認する。PID行に"code=exited"が表示されていることを確認する。PostgreSQL.<psコマンドでの確認>JVMとPostgreSQLのプロセスが存在しないことを確認する。※手順書上の順序が前後するが、マネージャはマネージャ、エージェントはエージェントで構築する順序で記載している。ここからは管理対象となるバッチサーバ(bt01)にエージェントをインストールする。管理対象ノード前提となるパッケージの有無を確認する。openlmi-storageHinemosエージェントのインストーラをダウンロードしてインストールする。openlmi-storage(省略)もう一度パッケージを確認する。インストーラの実行インストール前にロケールを確認する。LANGLANG=ja_JP.UTF-8Hinemosエージェントをダウンロードしてインストールする。インストールするとき、マネージャのホスト名またはIPアドレスを指定する。この時点でマネージャが決まっていない場合は省略可。あとから設定もできる。snmpd.service'へ転送しています。snmpd.serviceここで指定したHINEMOS_MANAGERは、ここに反映される。あとで変更したい場合はこのファイルを編集すれば良い。serviceコマンドで起動する。手順では、ここでsnmpdをstartさせることになっているがデフォルトで起動しているのでステータスを確認するだけ。例によって、起動したら停止方法を確認。Webクライアントを構築。これまではHinemosクライアントはWindowsアプリしかなかったが、Webクライアントで操作できるようになっている。Windowsアプリをリッチクライアントと呼び、いずれかの方法でHinemosマネージャを操作できる。今回は、MacBookProからHinemosマネージャを操作したいので、Webクライアントサービスを提供するWebクライアントのサーバを構築する。手順書は前後するが、前提条件でWebクライアントのサーバの前提確認しておく。管理対象ノード前提となるパッケージの有無を確認する。java-1.7.0-openjdk-devel不足しているパッケージをインストールする。java-1.7.0-openjdk-devel(省略)もう一度パッケージの有無を確認する。全体構成ブラウザ(MacBookPro)からWebクライアント(wb01)にアクセスしてマネージャを操作する。インストーラの実行インストール前にロケールを確認する。LANGLANG=ja_JP.UTF-8Webクライアントをダウンロードしてインストールする。[100%]意図した通りの言語が設定されていることを確認する。Webクライアントを起動する。]内側からアクセスしてみる。>(後略)外からアクセスしてみる。7のデフォルトのfirewalldに止められている様子。firewalldを止めて、ファイアウォールを無効化する。Webクライアントの画面にアクセスできた。接続先URLにHinemosマネージャのホストを指定してログインする。パスワードもhinemos。ログインしてみるもログインに失敗。jm01もfirewalldで止められている様子。Hinemosマネージャに入り、こちらもfirewalldを止める。firewalldもう一度ログインしてみると、か、かわいい...。なにこのキャラクター。Hinemos公認キャラクター「もにた」らしい。Monitoringのモニタなんでしょう。従って実際にHinemosであそんでみる。リポジトリパースペクティブを開き、Hinemosマネージャの監視対象にbt01(192.168.100.51)を追加する。してもfirewalldに止められたので、bt01のfirewalldも止める。最初から全部止めておけばよかった。一度bt01(192.168.100.51)をSearchすると各種属性が自動的に入力されるので「登録」をクリックする。リポジトリ(監視対象)にbt01が追加された。次に、監視パースペクティブでPING監視を追加する。したメッセージがわかるような文字列を設定)を定義してOKをクリック。監視項目が作成されたことを確認し、OKをクリックする。STATUS_FOR_POLLINGのステータス通知の種類に「情報」を追加しておく。これを追加しておかないと、PING監視に失敗してステータスが「危険」になった後、再びPING監視に成功したときにステータスが「危険」になったまま戻らなくなってしまう。監視履歴パースペクティブを確認する。PING_TEST_001の監視によりbt01にPINGが通ることが確認されている。ここで、bt01を落としてみる。nowPING監視によって危険を検知して「ステータス」と「イベント」に通知される。「ステータス」に出すのか、「イベント」に出すのか、あるいは「メールで通知」するのかは通知IDによって設定を変更できる。(ステータス)」と「監視履歴(イベント)」に通知するようになっている。bt01のダウンをPING監視によって検知できたので、bt01をもう一度起動して、Hinemosエージェントを起動してみる。firewalldも止めておく。(実運用ではHinemosエージェントの自動起動、firewalldのを起動しない設定を入れ込んでおくべき)PING監視を再開し、PINGが通ったのでbt01の復活が確認されステータスが「情報」に更新された。Hinemosではその他、ログ監視、プロセス監視、リソース監視、ディスク監視などシステム運用上必要とされる監視は一揃えあるので、Hinemosだけ入れておけば監視まわりは十分と言って良い。言うと、任意のSQLを投げて、その結果を監視するSQL監視も作り込めるようになっているので、DBの中の監視もHinemosに任せて良い。バッチサーバでCPUフル回転で使用率が正しく100%になっているものまでアラートが上がってしまうなど、拾わなくても良いアラートについては、時間であったり、何分間隔で、何回検知したときにアラートとして上げるのかなど多少テクニックはいるが、監視のチューニングをすることで、欲しいアラートだけ拾うということもそれなりにできる。ジョブも動かしてみよう。お試しジョブとして、日付と時刻を出力するシェルを用意する。0ジョブ設定パースペクティブを開く。ジョブユニットを作成する。ジョブIDとジョブ名を定義する。作成済みのジョブユニット内にジョブネットを作成する。ジョブIDとジョブ名を定義する。コマンドジョブを作成する。ジョブIDとジョブ名を定義し、コマンドタブを開く。実行するホストをスコープで定義し、実行するシェルのパスを起動コマンドに定義してOKをクリックする登録アイコンをクリックして、ジョブの設定を登録する。ここで登録しなければ編集した内容はなかったことになるので注意。ジョブ登録して良いか確認されるのでYesをクリック。ジョブの登録成功のメッセージが表示されたらOKをクリックする。登録した「お試しジョブ」を実行する。実行の仕方を確認されるので何もチェックを入れずに「実行」をクリックする。ジョブ履歴パースペクティブを開き、右上の更新アイコンをクリックすると実行されたジョブが履歴に表示される。指定したジョブが実行され正常終了していることを確認する。実際にbt01にログインし、ファイルに結果が出力されていることを確認する。!試しに、「お試しジョブ」をもう一度実行してみる。同様の手順で、チェックをせずに「実行」をクリック。一度実行されたことを確認する。bt01上ではもう一度ジョブが実行されていることを確認する。3.xのときにリッチクライアントを触っていたが、Webクライアントでできることとリッチクライアントでできることに差がないように感じた。端末ごとにインストールが必要なリッチクライアントを入れるくらいなら、Webクライアントを用意したほうが運用上楽ができると思う。監視できること、ジョブを動かせることまで確認したので今度はエンタープライズオプションも試してみたい*3。はてなブログProSIerを5年ほど経験してから、ユーザ企業の情シスで社内SEをやっています。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。