[機能概要]
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