0
1

サーバー監視アプリを作ろう

Last updated at Posted at 2024-02-28

PHP版サーバー監視アプリ

はじめに

データセンターのサーバー監視ツールとは「どのようなもの」、
「どのようなことを」をするのか学習させるためにPHPで監視アプリを作ってみました。
最初はWindowsのXAMPPを使用し、データはMysqlで保存、その後Linuxへ移植しています。

必要な機能は

  • 監視対象ホストの状態を一目でわかるビジュアルな画面にできる
  • イベント発生のログを出力およびメールで通知できる
  • 監視対象ホスト群のレイアウトの画面構成がカスタマイズできる
  • 監視対象ホストの追加、変更ができる
  • Ping死活監視のほか、SNMP監視ができる
  • 統計資料としてのグラフが作成できる

カスタマイズ例

visualmonitor.png

画面フレームは

  • ヘッダフルーム
    上辺部に画像、時計、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で作成したため、わかりやすい半面、ロジックが複雑になっており、キレイなプログラムにはなっていませんが、興味ある方はここからどうぞ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1