[機能概要]
 1.サーバのインストール作業を記録、検索する機能
   ・サーバ基本情報(サーバ名,IPアドレス,DNSサーバなど)
   ・サーバのアカウント情報
   ・サーバのインストール記録
   ・サーバのインストール記録検索
   ・ルータの設定ファイル記録
 2.サーバを監視する機能
   ・TripWire の記録
   ・TripWire の記録検索
   ・LogWatch の記録
   ・LogWatch の記録検索
   ・Cron の記録
   ・Cron の記録検索
   ・Living Confirmation の記録
 3.メールによる監視報告

[動作環境]
* Apache2+PHP+PEAR+SmartyおよびPostgreSQLが動作しているサーバ1台の構成例。
(注)動作確認はFirefoxで実施しています。Internet Explorerでは表示がずれる場合があります。
                │
                │192.168.1.1
              ┏┷┓
              ┃  ┃
              ┃  ┃example
              ┃  ┃
              ┗━┛

Vine Linux 4.2
PostgreSQL-8.2.4
Apache-2.0.59
PHP-5.2.5
PEAR-1.6.1
Smarty-2.6.19

-PostgreSQL
./configure --enable-integer-datetimes

-Apache
./configure --enable-mods-shared=all --enable-ssl=static

-PHP
 './configure'
 '--with-apxs2=/usr/local/apache2/bin/apxs'
 '--with-pgsql=/usr/local/pgsql/8.2.4/'
 '--with-imap=/usr/local/src/imap-2006g'
 '--with-imap-ssl=/usr/local/ssl'
 '--enable-zend-multibyte'
 '--enable-mbstring'
 '--enable-mbregex'
 '--without-mysql'
 '--with-zlib'
 '--with-ldap'
 '--with-gd'
 '--with-jpeg-dir=/usr/lib'
 '--with-png-dir=/usr/lib'
 '--enable-soap'
 '--with-curl'
 '--enable-ftp'

 [root@example root]# vi /usr/local/lib/sendmail.sh
 #!/bin/sh
 exec /usr/lib/sendmail -t 

 [root@example root]# chmod 755 /usr/local/lib/sendmail.sh

 [root@example root]# vi /usr/local/lib/php.ini
 省略
 [mail function]
 ; For Win32 only.
 SMTP = localhost
 smtp_port = 25
 
 ; For Win32 only.
 ;sendmail_from = me@example.com
 
 ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
 ;sendmail_path =
 sendmail_path = /usr/local/lib/sendmail.sh
 
 [mbstring]
 ; language for internal character representation.
 mbstring.language = Japanese
 
 ; internal/script encoding.
 ; Some encoding cannot work as internal encoding.
 ; (e.g. SJIS, BIG5, ISO-2022-*)
 mbstring.internal_encoding = EUC-JP
 以下省略

-PEAR
 Package                  Version State
 Archive_Tar              1.3.2   stable
 Console_Getopt           1.2.3   stable
 DB                       1.7.13  stable
 Net_IPv4                 1.3.0   stable
 Net_UserAgent_Mobile     0.31.0  beta
 OLE                      0.6.1   beta
 PEAR                     1.6.1   stable
 Spreadsheet_Excel_Writer 0.9.1   beta
 Structures_Graph         1.0.2   stable

[設定例]
-アプリケーション設定例
 [root@example root]# adduser server_manager_std
 [root@example root]# chmod 755 /home/server_manager_std
 ※1 アプリケーションファイルを解凍後、FTPでアップロードしてください。
 ※2 server_manager_std 以外のアカウントで設定する場合は、
     .forward
     .procmailrc
     の設定変更が必要です。
 ※3 server_manager_setup.phpの設定は必ず確認してください。
     ほとんどの場合に設定変更が必要です。

 /home/server_manager_std
         ├─.forward      <<== ※2
         ├─.procmailrc   <<== ※2
         ├─xin.php
         ├─duanxin.php
         ├─songduanxin.php
         ├─songxin.php
         ├/docs
         ├/lock
         ├─TWReport.eml  <= 動作確認用
         ├─Logwatch.eml  <= 動作確認用
         ├─Cron.eml      <= 動作確認用
         ├─Living.eml    <= 動作確認用
         ├─readme_j.txt
         └/public_html
               ├─.htaccess
               ├─index.php
               ├/css
               │   └─servermanager.css
               ├/libs
               │   ├─data_read.php
               │   ├─mailview.php
               │   ├─memoview.php
               │   ├─server_manager.lib.php
               │   ├─server_manager_setup.php   <<== ※3
               │   └─sql.lib.php
               └/xslt
                    ├─account_all.php
                    ├─add_account.php
                    ├─add_serverbook_form.php
                    ├─add_server_install_log_form.php
                    ├─add_server_user_form.php
                    ├─daily_cronbook.php
                    ├─daily_logwatchbook.php
                    ├─daily_tripwirebook.php
                    ├─edit_account.php
                    ├─edit_serverbook_form.php
                    ├─edit_server_install_log_form.php
                    ├─edit_server_user_form.php
                    ├─install_routerbook.php
                    ├─install_router_logs.php
                    ├─install_serverbook.php
                    ├─install_server_logs.php
                    ├─invalid_class_form.php
                    ├─invalid_delete_server_form.php
                    ├─invalid_delete_user_form.php
                    ├─invalid_user_form.php
                    ├─living_mail.php
                    ├─login_form.php
                    ├─logout_form.php
                    ├─main_menu.php
                    ├─search_install_log_form.php
                    ├─search_install_log_list.php
                    ├─search_new_server_log_form.php
                    ├─search_server_install_log_form.php
                    ├─search_server_new_list.php
                    ├─serverbook.php
                    ├─server_info.php
                    ├─server_user_list.php
                    ├─set_date_form.php
                    └─user_serverbook.php


-データベース設定例
 [root@example root]# su - postgres
 [postgres@example postgres]$ cd /home/postgres/sql
 [postgres@example sql]$ createdb -E UTF-8 server_manager_std
 ※アパッチの実行ユーザを確認してください。
 nobody以外の場合は、server_manager_std.sqlの変更が必要です。
 [postgres@example sql]$ psql -d server_manager_std -f server_manager_std.sql

 /home/postgres
         └/sql
            └─server_manager_std.sql

[動作確認]
-TripWire Daily Logs 確認手順
 [server_manager_std@example server_manager_std]$ cat TWReport.eml | /usr/local/bin/php xin.php
 [server_manager_std@example server_manager_std]$ su - postgres
 [postgres@example postgres]$ psql server_manager_std
 server_manager_std=# select * from logs_tripwire;
 ※レコードが追加されていることを確認してください。

-LogWatch Daily Logs 確認手順
 [server_manager_std@example server_manager_std]$ cat Logwatch.eml | /usr/local/bin/php xin.php
 [server_manager_std@example server_manager_std]$ su - postgres
 [postgres@example postgres]$ psql server_manager_std
 server_manager_std=# select * from logs_logwatch;
 ※レコードが追加されていることを確認してください。

-Cron Daily Logs 確認手順
 [server_manager_std@example server_manager_std]$ cat Cron.eml | /usr/local/bin/php xin.php
 [server_manager_std@example server_manager_std]$ su - postgres
 [postgres@example postgres]$ psql server_manager_std
 server_manager_std=# select * from logs_cron;
 ※レコードが追加されていることを確認してください。

-Server Living Confirmation 確認手順
 [server_manager_std@example server_manager_std]$ cat Living.eml | /usr/local/bin/php dua
nxin.php
 [server_manager_std@example server_manager_std]$ su - postgres
 [postgres@example postgres]$ psql server_manager_std
 server_manager_std=# select * from logs_hourly;
 ※レコードが追加されていることを確認してください。

[監視対象のサーバ設定例]
-foward設定
[root@example root]# vi .forward
server_manager_std@[192.168.1.1]
[root@example root]# chmod 600 .forward

-TripWire (監視対象ファイルについては設定例を省略しています)
http://jaist.dl.sourceforge.net/sourceforge/tripwire/
からダウンロード。
[root@example root]# cd /usr/local/src
[root@example src]# tar xfz tripwire-2.4.1.2-src.tar.bz2
[root@example src]# cd tripwire-2.4.1.2/
[root@example src]# cd tripwire-2.4.1.2-src
[root@example tripwire-2.4.1.2-src]# ./configure --prefix=/etc/tripwire
[root@example tripwire-2.4.1.2-src]# make
[root@example tripwire-2.4.1.2-src]# make install
[root@example tripwire-2.4.1.2-src]# cd /etc/tripwire
[root@example tripwire]# ./sbin/twadmin --create-polfile -S ./etc/site.key ./etc/twpol.txt
[root@example tripwire]# vi etc/twpol.txt
省略
  ########################################
 #                                      ##
######################################## #
#                                      # #
#  Tripwire Binaries and Data Files    # #
#                                      ##
########################################
( emailto = root){                                <<<<====追加
# Tripwire Binaries
中略
  ################################################
 #                                              ##
################################################ #
#                                              # #
#   Proc Filesystem                            # #
#                                              ##
################################################
(
   rulename = "Proc Filesystem",
)
{
   !/proc ;                           # Ignore most of this directory
}
}                                                 <<<<====追加

[root@example tripwire]# ./sbin/tripwire --init
[root@example root]# vi tripwire.sh
#!/bin/sh
/etc/tripwire/sbin/tripwire --check --email-report
[root@example root]# chmod 700 tripwire.sh
[root@example root]# vi /etc/crontab
省略
# Tripwire
0 2 * * * root /root/tripwire.sh > /dev/null 2>&1

-LogWatch
http://www2.logwatch.org:81/tabs/download/
からダウンロード。
[root@example src]# rpm -ivh logwatch-7.3.6-1.noarch.rpm
[root@example src]# vi /usr/share/logwatch/default.conf/logwatch.conf
# If set to 'Yes', the report will be sent to stdout instead of being
# mailed to above person.
#Print = Yes
Print = No

-Cron
[root@example root]$ vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root                                       <<<<====確認
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
~
-Server Living Confirmation
[root@example root]# vi /etc/cron.hourly/songduanxin.sh
#!/bin/sh
echo '' | mail -s 'Living confirmation 1' root@[192.168.1.1]
※サーバの番号(srv_cd)を確認してください。
[root@example root]# chmod 755  /etc/cron.hourly/songduanxin.sh

[使用方法]
-ログインしてください。
 Username:servermanager
 Password:servermanager

※社内LANでの使用を想定して作っています。
  ID、パスワードに有効期限設定などの機能はありません。
  メールアドレスを設定する際は、特に注意してください。
  設定を間違えると迷惑メールの温床になります。

※ご自由にお使いください。

        
[ ソースダウンロード ]
server_manager_standard.zip