pdoc 0.1 documentation

管理運用

«  宅内環境設計   ::   Contents   ::   エラーの供養  »

管理運用

あくまで自宅設備用の管理運用方針的なもの。

死活監視

死活監視およびプロセス監視を継続的に行う。

ただし、個人的理由による環境変更が度々行われるため、メールによる通知は行わないものとする。 プロセス監視については、単にプロセスが動作していることを確認するものと、挙動が想定どおりであることを確かめるものがある。
監視対象プロセスまたはサービス
全般
SSH NTPD
Web
Apache
DB
MySQL
DNS
BIND DHCP DHCPv6
LDAP
LDAP
PPPoE Router
mpd UPnP RA DHCPv6 Client DDNS
FTP
FTP SFTP
AD
AD
Hyper-V
Hyper-V
VMware ESXi
VM

状態監視

Webの応答内容
改竄、ファイル破損チェック。全部やってられるわけあるか。
DNSの応答アドレス
DNSは生きてるけどキャッシュ汚染されてるとか。
時刻同期の状態監視
NTPDによる時刻の同期状況を監視する。NTPDは動いているけど時刻はずれてる…ってどうしろってんだ。

リソース監視

リソース監視には、単純にH/Wのリソースを得るものと、各プロセスのリソース消費を得るものがある。

セキュリティ

攻撃、不審な動きに対する対応について。

障害復旧

想定される障害に対する復旧手順、または取得すべき情報の回収手順を記載しておきたいよね。

ハードウェア障害

HDDが故障した場合 Memory(non-ECC)が故障した場合 Memory(ECC)が故障した場合

ソフトウェア障害

バージョンアップによってサービスが立ち上がらなくなった場合

オペレーション障害

誤ってファイルを消去した場合(むしろ、それを考慮して何をバックアップとするか、という話) * ZFSによるsnapshotを取得している場合 * ファイルバックアップが存在する場合

バックアップ

Dokuwiki

Dokuwikiの場合は、ファイルバックアップと同時にVPSに送付して自宅が死んだ際に参照出来るようにもしておく。

[マスター側] スクリプトでSSH実行出来るように公開鍵登録をしておく

# ssh-keygen -N "" -t rsa
# ssh-copy-id '-p 11122 backup@example.net'
backup@example.net's password:

[マスター側] こんな感じのスクリプトを置く。

#!/bin/sh
#:<<:
echo "*** dokuwiki backup start. ***"
echo "cd /var/www"
cd /var/www

echo "tar update start."
tar uf /root/doku_latest.tar ./doku
echo "tar update done."

echo "cd /root"
cd /root

echo "gzip start."
gzip -c doku_latest.tar > doku_latest.tar.gz
echo "gzip done."
ls -l doku_latest.tar
ls -l doku_latest.tar.gz

echo "sftp upload start."
sftp -oPort=11122 backup@example.net<<__EOL__
put doku_latest.tar.gz
__EOL__
:
echo "sftp upload done."
echo "*** dokuwiki backup completed. ***"

[マスター側] crontabに仕込む

echo "15 5  * *   root    /root/dokuwiki_backup.sh" >> /etc/crontab

[スレーブ側] バックアップファイルを自動展開するスクリプトを書く

#!/bin/sh
BACKUP=doku_latest
echo "cd /home/yuki ..."
cd /home/yuki
echo "cd done."

if [ -s ${BACKUP}.tar.gz ]; then

  echo "gunzip ${BACKUP}.tar.gz ..."
  gunzip ${BACKUP}.tar.gz
  echo "gunzip done."

  echo "mv ${BACKUP}.tar /tmp/ ..."
  mv ${BACKUP}.tar /tmp/
  echo "mv done."

  echo "cd /var/www/ainoniwa ..."
  cd /var/www/ainoniwa
  echo "cd done."

  echo "update start..."
  sudo -u apache tar xf /tmp/${BACKUP}.tar
  echo "update done."

else

  echo "backup file not found."

fi

[スレーブ側] DNSの切り替わり監視スクリプトに書き加えて、crontabに仕込む

DNSが切り替わった場合に、Dokuwikiの内容だけは保障出来るようになる。

OpenLDAP

LDAP構成ファイルをとりあえず何も考えずにコピーするスクリプトを書く

#!/bin/sh
echo "*** openldap backup start. ***"

echo "cd /var/db/openldap-data/"
cd /var/db/openldap-data/

echo "tar zcvf ldap_backup-`/bin/date '+%Y%m'`.tar.gz DB_CONFIG alock *.bdb log.*"
tar zcvf ldap_backup-`/bin/date '+%Y%m'`.tar.gz DB_CONFIG alock *.bdb log.*
echo "tar done."

echo "mv ldap_backup-`/bin/date '+%Y%m'`.tar.gz /mnt/lib_01/server/ldap_remilia/"
mv ldap_backup-`/bin/date '+%Y%m'`.tar.gz /mnt/lib_01/server/ldap_remilia/
echo "mv done."

if [ -s /mnt/lib_01/server/ldap_remilia/ldap_backup-`/bin/date '+%Y%m'`.tar.gz ]; then
  echo "*** openldap backup completed. ***"
else
  echo "!!! openldap backup failed. !!!"
fi
  • crontabに仕込む
  • 必要な時にぶちまける

«  宅内環境設計   ::   Contents   ::   エラーの供養  »