PHP版サーバー監視アプリ
はじめに
データセンターのサーバー監視ツールとは「どのようなもの」、
「どのようなことを」をするのか学習させるためにPHPで監視アプリを作ってみました。
最初はWindowsのXAMPPを使用し、データはMysqlで保存、その後Linuxへ移植しています。
必要な機能は
- 監視対象ホストの状態を一目でわかるビジュアルな画面にできる
- イベント発生のログを出力およびメールで通知できる
- 監視対象ホスト群のレイアウトの画面構成がカスタマイズできる
- 監視対象ホストの追加、変更ができる
- Ping死活監視のほか、SNMP監視ができる
- 統計資料としてのグラフが作成できる
カスタマイズ例
画面フレームは
- ヘッダフルーム
上辺部に画像、時計、URLボタン、ログアウトボタンを配置 - メニューフレーム
左辺部にメニューボタンを配置 - アプリフレーム
中央部にメニューを実行するアプリ領域を配置 - コアフレーム
下辺部に継続自動起動されるアプリを配置
実現するための考慮事項は
- 自動実行させるアプリは、HTMLのRefresh機能でタイマー起動する
- メニュー方式は、Javascriptで必要な都度アプリを追加できる
コーディング例
- HTML フレーム分割
<frameset rows="140,*,30">
<frame src="HeaderPage.php" name="header" title="ヘッダフレーム">
<frameset cols="170,*">
<frame src="MenuPagephp.html" name="menu" title="メニューフレーム">
<frame src="MonitorManager.php" name="apl" scrolling="yes" title="アプリフレーム">
</frameset>
<frameset cols="190,190,190,190,190,0">
<frame name="core" src="MonitorCoreAuto.php">
<frame name="snmp" src="SnmpAutoScan.php">
<frame name="mrtg" src="MrtgAutoRunPrePage.html">
<frame name="disc" src="Discover.php">
<frame name="msg" src="Messages.php">
</frameset>
</frameset>
- HTML Refresh機能
<?php
...
print '<head>';
print '<meta http-equiv='refresh' content=120>";
print '</head>';
print '<body>';
print "<h4>xxx Refresh 120sec</h4>";
- Javascriptでメニューボタンと呼び出し
<script language="JavaScript">
function chgmon() {
parent.apl.location.href = "MonitorManager.php";
}
function chglog() {
parent.apl.location.href = "EventLogPage.php";
}
...
//
</head>
<body>
<div>
<hr>
<div class="sidebar" id="left">
<h2>▼ 表示メニュー</h2>
<ul>
<li><a href="javascript:chgmon()">監視モニター</a></li>
<li><a href="javascript:chglog()">イベントログ</a></li>
...
</ul>
</div>
おわりに
PHPで作成した理由は、どのOSへも移植が出来ること、ノートPCへ入れて研修先へ持ち運び出来ることでした。
ブラウザアプリをPHPとHTMLで作成したため、わかりやすい半面、ロジックが複雑になっており、キレイなプログラムにはなっていませんが、興味ある方はここからどうぞ。