・2008/06/07 里親になりそうです
・2008/06/15 やってきた
・2008/06/16 写真と動画
・2008/07/18 もみちゅぱ
・2008/07/20 もみちゅぱ動画
・2010/06/09 猫を飼ってる人には判ること
・2011/04/30 もみもみちゅぱちゅぱ
・2011/05/01 むにゅーん
☆エイプリルフール
・2005/04/01
・2004/04/01
・2003/04/01
☆サーバ設定
・2004/12/14(1) ハード・ソフト一覧
・2004/12/14(2) OS Install
・2004/12/15(1) /etcの下
・2004/12/15(2) 各portの設定
・2004/12/17(1) RAIDディスク監視
・2004/12/17(2) IDEディスク監視
・2004/12/17(3) HotSaNIC
・2008/05/31 メンテナンスのお知らせ文テンプレ
・2008/06/01 ECCエラーなHDD入れ替え
・2008/12/30 HDD入れ替え
・2009/06/06 電源が壊れたときの作業ログ
・2011/05/29 tDiaryを3.0系統に入れ替えたときのパッチ
☆Xperia acroHD・Android
・2012/12/22 root取り~Titaniumまで
・2013/01/06 アプリ整理・Link2SD
・2013/01/21 旧端末→新端末アプリ移動
・2013/02/09 旧端末分解・アプリ整理
☆写真
・2002/12/31 冬コミ ブリジットコス
・2004/02/16 Babyロリ服
・2011/03/09 リーマンコス(笑)
・2011/07/19 BABYロリ服・浴衣
・2011/08/13 夏コミ2日目。薄桜鬼千鶴・BABYロリ服
・2011/08/14 夏コミ3日目。リリカルなのは制服・薄桜鬼千鶴
☆その他
・2004/08/08 tDiary改造メモ
・2003/02/18 キャッチセールスの断り方
・2010/08/12 リネ2 FFC応募作品
・2011/07/12 リネ2とTERAとの比較記事
2004-12-06 (Mon)
★[雑記] あーん [14:46] [14:52追記] [15:00追記]
そっか。携帯とかRSS経由で見てる人には見えてなかったのね。
先週からこんなタイトル画像使ってました。
………6回目が起こりました orz
なんでだよぉ私そんなに日頃の行い悪かったか〜〜〜? (泣)
とある人曰く「最近ふりふりあんまり着てないから。萌えをふりまかなきゃ駄目なんです」
=□○_
あーんなんかムシャクシャするぅ。買い物でも行ってきていいですか? ←非常に危険
そうそう、10万アクセスありがとうございます。10万人目の方は不明ですが、12/1に達成しておりました。名乗り出てくれれば、何かお願い事かなえますよー♪
mixiのほうも2500アクセス達成です。2500アクセス目は、さささんでした。ありがとうございますっ♪ お願い事は何でしょう?
[14:52追記] トラブル6回、サーバの台数としては4台です。1台はたぶんケーブル不良、1台はディスク、1台はディスクorメモリ、1台はたぶん私の操作ミス。
[15:00追記] キリ番一覧更新。ついでにあげる・くださいリストも更新です。随時更新してます。左側からリンク貼ってあるよ。
ちなみにキリ番は、日記10000ごと、mixi500ごとにお願い事権利がありますっ♪
2004-12-14 (Tue)
★[サーバ] 設定メモ書き(1) [19:34][随時最新情報に更新:最終更新 01/19 20:48]
サーバの設定が落ち着いてきたので、メモの意味をこめて、数日かけてここに残しておくことにします。
基本的には自分用、あとでメンテするときに便利なように残すものですが、ここに公開することで人の役にたつかもしれませんので
パスワードとかはかけずに公開しちゃいます。
※いつもの日記と違って、まじめな日記です。ふざけた部分いっさいありません。
●Hardware/OS
パーツ | 製品 | 仕様 |
CPU | Intel Celeron 2.6GHz retail | L2=128KB, FSB=400MHz |
Memory | 1GB | 400MHz/512MB CL2.5 + 533MHz/512MB CL2.5 |
Motherboard | MSI 845GE Max-L | Intel 845GE/ICH4, FSB533MHz, 2 DIMM, PCI(32bit 33MHz) 6スロット |
VGA | Chipset内臓 | - |
Network | Chipset内臓 | - |
RAIDカード | 3ware Escaraid 9500-4LP JKIT 日本代理店の製品を使用 | RAID0/1/0+1/5/JBD, S-ATA 4ポート キャッシュメモリ(SO-DIMM)128MBを差し替えて256MBにして使用 64bit PCIのカードですが32bitのスロットで使えます |
Disk(1) | Maxtor DiamondMax 10 6B200M0 x 4台 | 200GB, S-ATA150, 7200RPM, cache 8M, native command queueing対応, seek time 9ms 9500-4LPに接続、4台でRAID5として(600GBで)使用 |
Disk(2) | Maxtor DiamondMax Plus 9 6Y160P0 | 160HB, U-DMA133, 7200RPM, cache 8M, seek time 9ms マザーボードのIDEポートに接続。ICH4の制限でU-DMA100で使用 |
FDD | なし | - |
CD-ROM | なし | - |
キーボード | 適当なキーボード | 値段で選んだ。1000円以下 |
マウス | なし | - |
ケース | 適当なATXケース | 値段で選んだ |
OS | FreeBSD 5 stable | dmesg SA が出るたびに定期的に update している |
●導入Software
Portsで入れたソフトウェアのリスト
ImageMagick-6.x.x.x
amavisd-new-2.x.x,x
analog-5.x_x,x
apache-worker-2.x.x_x
arc-5.x
autoconf-2.x.x_x
autoconf-2.x_x
bash-2.x.x_x
boehm-gc-6.x
cabextract-1.x
chkrootkit-0.x
clamav-0.x_x
cvsup-without-gui-16.x
db3-3.x.x_x,x
drac-1.x_x
eruby-1.x.x
expat-1.x.x
fcgi-devkit-2.x.x
fontconfig-2.x.x,x
freetype2-x.x.x_x
freeze-2.x_x
gd-2.x.x_x,x
gettext-0.x.x_x
ghostscript-gnu-7.x_x
gmake-3.x_x
gsfonts-8.x_x
help2man-1.x.x
imake-6.x.x_x
ja-jcode.pl-2.x
ja-jvim-3.x.x.x_x
ja-less+iso-358.x_x
ja-lynx-2.x.x.relx
ja-nkf-2.x
ja-p5-Jcode-0.x
ja-qkc-1.x
ja-ruby18-uconv-0.x.x
ja-w3m-0.x.x
jasper-1.x.x
javavmwrapper-2.x_x
jbigkit-1.x
jdk-minimal-1.x.xpx_x
jpeg-6b_x
lcms-1.x_x,x
lha-1.x_x
libfpx-1.x.x.x
libgmp-4.x.x
libiconv-1.x.x_x
libtool-1.x.x_x
libtool-1.x.x
libwmf-0.x.x.x
libxml2-2.x.x
lv-4.x
lzo-1.x_x
lzop-1.x
m4-1.x.x
mod_fastcgi-2.x.x
mod_perl2-1.99xxx
mod_ruby-1.x.x
mpeg2codec-1.x_x
netpbm-10.x_x
nspr-4.x.x_x
open-motif-2.x.x
p5-AppConfig-1.x
p5-Archive-Tar-1.x
p5-Archive-Zip-1.x
p5-BerkeleyDB-0.x_x
p5-Compress-Zlib-1.x
p5-Convert-BinHex-1.x
p5-Convert-TNEF-0.x
p5-Convert-UUlib-1.x,x
p5-Crypt-DES-2.x
p5-DBD-Pg-1.x
p5-DBI-1.x
p5-Digest-1.x
p5-Digest-HMAC-1.x
p5-Digest-MD5-2.x
p5-Digest-SHA1-2.x
p5-Event-1.x
p5-FastCGI-0.x
p5-Filter-1.x
p5-HTML-Parser-3.x
p5-HTML-Tagset-3.x
p5-IO-Zlib-1.x
p5-IO-stringy-2.x
p5-MIME-Base64-3.x
p5-MIME-Tools-5.x,x
p5-Mail-SpamAssassin-3.x.x_x
p5-Mail-Tools-1.x
p5-Net-DNS-0.x
p5-Net-SNMP-5.x.x_x
p5-Net-Server-0.x
p5-POE-0.x
p5-POE-Component-IRC-2.x
p5-Storable-2.x
p5-Time-HiRes-1.x,x
p5-URI-1.x
p5-Unix-Syslog-0.x
p5-gettext-1.x
p5-libwww-5.x_x
pcre-5.x
perl-5.8.x
pkgconfig-0.x.x_x
png-1.x.x
popt-1.x
portaudit-0.x.x
portupgrade-200xxxxx_x
postfix-2.x.x_x,x
postgresql-7.x.x
proftpd-1.x.x
qpopper-4.x.x_x
razor-agents-2.x
rpm2cpio-1.x_x
rrdtool-1.x.x
rsync-2.x/x_x
ruby-1.x.x.px_x
ruby18-bdb1-0.x.x
screen-4.x.x_x
sl-3.x
smartmontools-5.x
sudo-1.x.x.x
thumbnail_index-xxxx.x.x_x
tiff-3.x.x_x
unarj-2.x_x
unrar-3.x,x
unzip-5.x
vim-6.x.x
webalizer-2.x.x_x
wget-1.x.x_x
wgetpro-0.x.x
xmbmon-nox11-x_x
xorg-libraries-6.x.x_x
zip-2.x_x
zoo-2.x.x
Ports以外で入れたソフトウェア
3ware の CLI ソフト
HotSaNIC
fml
(12/16 01:10最新情報に更新)
★[サーバ] 設定メモ書き(2) [20:06]
今回は OS インストールに関して。
●OS Install
bootonly の iso を落としてきて、ftp install した。
あとで buildworld するつもりなので必要最小限バイナリ+ソースコードをインストール、鶏と卵の関係になってしまうので、cvsup(without GUI) だけは packages でつっこんだ。
また、サーバ用途なので X11 実行環境は不要だが、ライブラリを要求するソフトがあるので(Javaとか)入れた。
(ls /var/db/pkg すると perl と cvsup だけがある状態になる)
●cvsup
/usr/share/example/stable-supfile, /usr/share/example/ports-supfile を参考に supfile を作る。
(インストール当時は6分岐前で、RELENG_5 というのは無く CURRENT だったので、stable-supfile ではなく cvs-supfile を見た)
私の場合、/usr/src 直下に CVS-SUPFILE.src と CVS-SUPFILE.ports が置いてある。内容は以下
*default host=cvsup?.jp.freebsd.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_5
*default delete use-rel-suffix
*default compress
src-all
*default host=cvsup?.jp.freebsd.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
ports-all
doc-all
そして cvsup を実行。
※特定のサーバに負荷がかかるのを避けるためホスト名前は一部伏せました。
●buildworld
/usr/src/UPDATING の最後のほうに手順が書いてある。
手順をサボってもうまくいくことが多いが、この前ハマりました。安全を期す場合はちゃんと single user に落ちた方が良いようだ。
multiuser のままやるなら、少なくとも余計な process (httpd とか)は落としておいた方が良い。
(でも、このサーバは遠くにあるので single user に落としにくかったり…(汗
私の場合は buildkernel/installkernel を2回やっている。1回は GENERIC (make のオプション無し)、もう1回は自分の configration、の2回。
/boot の下には、kernel, kernel.old, kernel.GENERIC, kernel.GENERIC.old の4つのディレクトリを作っている。
(installkernel する毎に cd /boot して mv している)
●ports の install 準備
まず、パッケージを取ってこられる状態を作る。
私の場合は /etc/make.conf に以下を追加
FETCH_CMD=fetch -p
CFLAGS=-O -pipe
MASTER_SITE_BACKUP?=\
ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
ネットワーク環境によっては他にも設定が必要かも。会社のマシンでは以下のようなことが /etc/profile に書いてあったりする。
http_proxy=http://proxy.example.com:3128
ftp_proxy=http://proxy.example.com:3128
export http_proxy ftp_proxy
●ports の install
ひたすら install。
うちのサーバの場合、perl 5.6.x を取っ払ってしまった。
perl の port によって、自動的に以下が /etc/make.conf に追加されたようだ。
# -- use.perl generated deltas -- #
# Created: Mon xxx xx xx:xx:xx 2004
# Setting to use base perl from ports:
PERL_VER=5.8.x
PERL_VERSION=5.8.x
PERL_ARCH=mach
NOPERL=yo
NO_PERL=yo
NO_PERL_WRAPPER=yo
_ 名無し兎さん [ざっくりとportupgradeとかは使わないのん? ] (2004-12-15 (Wed) 11:57)
_ すてねこ@管理人 [update には使ってますよん。portupgrade 使って新規インストールもできるのは知ってるんですが、1回目に入れるときは、Makefile.doc とかを読んで pkgtools.conf にビルドオプション登録とかやってるので、make 使ってます。 ] (2004-12-15 (Wed) 12:1)
2004-12-15 (Wed) 「あげる・ください」リストもこっそり更新してます。そちらもよよしく
★[サーバ] 設定メモ書き(3) [22:22]
昨日の続きのメモ書きです。(たぶん今週いっぱいかかる)
●システム設定
【/etc/fstab】
ディスク割り当ては、RAID 部分を /home など、データが飛んではまずい部分に。
IDE の(単体)ディスクを swap や /tmp などのデータが飛んでも良い部分と、RAID の backup に。
(RAID 導入の目的はデータの保護で、無停止運用ではないので、全部 RAID にはしなかった。hotswap もコストかかるし、やってない。
ディスクが飛んだらシステムは止まるけど(RAIDの1台が飛んでも箱をあけて中身を交換)、データは保護される仕組み)
# Device Mountpoint FStype Options Dump Pass#
/dev/da0s1a / ufs rw 1 1
/dev/da0s1g /home ufs rw,userquota 2 2
/dev/ad0s1d /tmp ufs rw 2 2
/dev/da0s1d /usr ufs rw 2 2
/dev/da0s1e /var ufs rw,userquota 2 2
/dev/da0s1f /var/log/httpd ufs rw 2 2
/dev/ad0s1e /backup ufs rw 2 2
#/dev/acd0 /cdrom cd9660 ro,noauto 0 0
procfs /proc procfs rw 0 0
【/usr/local/etc/rc.d/000.swapon-md0】
fstab を見て判るとおり swap が無い。IDE のディスクが昔のサーバから引っ越したものであり、歴史的事情による (bsdlabel するわけにいかなかったのだ)
swap が無いのは不安なので、/backup 上に swap というファイル(2Gバイト)を作り、それを md デバイス経由で swapon している。
# dd if=/dev/zero of=/backup/swap bs=1M count=2048
# chmod 600 /backup/swap
そして、mdconfig を実行するスクリプトを rc.d で走らせている。
このスクリプト、mdconfig でできるデバイスが md0 であると仮定しているのであまり良くないが、
起動時にしか実行されない(=起動後1回目の実行なので必ず0番が割り当てられるはず)のなら問題は無いだろうということで、そのままで放置。
#!/bin/sh
case "$1" in
start)
# swap
mdconfig -a -t vnode -f /backup/swap
swapon /dev/md0
;;
stop)
swapoff /dev/md0
mdconfig -d -u md0
;;
*)
echo ""
echo "Usage: `basename $0` { start | stop }"
echo ""
exit 64
;;
esac
【/etc/rc.conf】
このサーバが置いてあるネットワークは特殊で、NIC には 192.168.xxx.xxx を振って、router で tunnel して global IP を振っている。
(こうすることで 8IP の契約でそのまま 8IP が使えるそうだ)
ここで載せているのは前半部、ports の起動設定は後の項目にて。
hostname="mike.suteneko.jp"
cloned_interfaces="gif0"
ifconfig_fxp0="inet 192.168.xxx.xxx netmask 255.255.255.0"
ifconfig_gif0="inet 218.44.240.166 netmask 255.255.255.255 218.44.240.xxx
tunnel 192.168.xxx.xxx 192.168.xxx.xxx mtu 1454"
defaultrouter="-iface gif0"
kern_securelevel_enable="NO"
keymap="jp.106"
inetd_enable="NO"
sshd_enable="YES"
portmap_enable="YES"
ntpdate_enable="YES"
ntpdate_flags="xxxxxxxx.ocn.ad.jp"
ntpd_enable="YES"
named_enable="YES"
named_flags="-u bind"
firewall_enable="YES"
firewall_type="/etc/ipfw.conf"
firewall_quiet="NO"
firewall_logging="YES"
firewall_flags="-q -p /usr/bin/cpp"
blanktime="NO"
enable_quotas="YES"
check_quotas="YES"
sendmail_enable="NO"
usbd_enable="YES"
ipv6_enable="NO"
clear_tmp_enable="YES"
【/etc/ipfw.conf】
FreeBSD に pf が導入されたのは知っているんですが、まだ導入されたばっかりで枯れては居ないと思うので、ipfwを使っている。
そのまま使うとわかりにくいので、cpp をかませてる。rc.conf にこんな感じで書いてる。
firewall_enable="YES"
firewall_type="/etc/ipfw.conf"
firewall_quiet="YES"
firewall_logging="YES"
firewall_flags="-p /usr/bin/cpp"
以下が /etc/ipfw.conf
ホントはstatefulにしたい(check-stateルール)ところだけど、CPUがしょっちゅう100%に貼り付くような状態では不可能 (T_T)
(この設定内容を書くのはすごく不安……ということで適当に編集します。コピペしてうまく動く保証はありません)
/*
* ipfw setting for mike.suteneko.jp
* 2002/10/24-2004/12/15, suteneko
*
* ipfw -p /usr/bin/cpp /etc/ipfw.conf
*
* rule 01xxx : trust I/F
* rule 02xxx : allow established packet
* rule 03xxx : skipto
* rule 04xxx : any to GLOBAL_IP in
* rule 05xxx : GLOBAL_IP to any out
* rule 06xxx : from IRC-Servers to GIP in
* rule 65xxx : log denied packets
*/
#define GIP 218.44.240.166
#define LIP 192.168.xxx.xxx
#define GIF gif0
#define LIF fxp0
#define LOOP lo0
#define LOG log logamount 0
#define IRCNARAWIDE 192.244.23.2
#define IRCTOKYOWIDE 192.244.23.1
#define IRCFUJISAWAWIDE 192.244.23.3
#define SLAVENAMESERVER1 218.xxx.xxx.xxx
#define SLAVENAMESERVER2 219.xxx.xxx.xxx
#define ROUTER 192.168.xxx.xxx
/* delete rules made by rc.firewall */
flush
/* trusted I/F */
add 01001 allow all from any to any via LOOP
/* local connection */
add 01002 allow all from GIP to GIP
add 01003 allow all from LIP to LIP
/* tunnel I/F */
add 01011 allow 4 from ROUTER to LIP
add 01012 allow 4 from LIP to ROUTER
/* allow TCP packet if setup success */
add 02001 allow tcp from any to any established
add 02002 allow tcp from any to any frag
/* spam sites */
add 02501 deny ip from xxx.xxx.xxx.xxx to any
add 02502 deny ip from xxx.xxx.xxx.xxx to any
add 02503 deny ip from xxx.xxx.xxx.xxx to any
add 02504 deny ip from xxx.xxx.xxx.xxx to any
/* skipto */
add 03001 skipto 06001 all from IRCNARAWIDE to GIP in
add 03002 skipto 06001 all from IRCTOKYOWIDE to GIP in
add 03003 skipto 06001 all from IRCFUJISAWAWIDE to GIP in
add 03011 skipto 04001 all from any to GIP in
add 03011 skipto 04001 all from any to LIP in
add 03012 skipto 05001 all from GIP to any out
add 03012 skipto 05001 all from LIP to any out
add 03021 deny LOG all from any to any
/* any to me in */
/* services by admin */
add 04001 allow tcp from any to any http,ssh,ftp,20,smtp,pop3
add 04002 allow udp from any to any domain,ntp
add 04003 allow tcp from any ssh to any
add 04004 allow udp from any domain to any
/* allow some ICMP
* icmptypes 0: Echo Reply (used in ping)
* icmptypes 3: destination unreachable (RFC2979)
* icmptypes 8: Echo (used in ping)
* icmptypes 11: time-to-live exceeded (used in traceroute)
*/
add 04011 allow icmp from any to any icmptypes 0,3,8,11
/* application software support
* FTPD passive port: xxxxx-xxxxx
* IRC-bot:
* (略)
*/
add 04021 allow tcp from any to any xxxxx-xxxxx
add 04021 allow tcp from any to any xxxx,xxxx,xxxx,...
/* allow dns transfer */
add 04032 allow tcp from SLAVENAMESERVER1 to any domain
add 04033 allow tcp from SLAVENAMESERVER2 to any domain
/* deny others */
add 04041 deny tcp from any to any 137-139
add 04042 reset tcp from any to any ident
add 04043 deny LOG tcp from any to any setup
add 04044 deny tcp from any to any
add 04045 deny all from any to any
/* me to any out */
add 05001 allow all from any to any out
/* IRC-servers to me in */
add 06001 allow tcp from any to any http,ssh,ftp,20,smtp,pop3,ident
add 06002 allow udp from any to any domain,ntp
add 06003 allow tcp from any ssh to any
add 06004 allow udp from any domain to any
add 06011 allow icmp from any to any icmptypes 0,3,8,11
add 06021 reset tcp from any to any
add 06022 deny all from any to any
★[サーバ] 設定メモ書き(4) [23:59][随時最新情報に更新:最終更新 01/19 20:46]
今度はports。関係ないけど ports といった場合は collection 全体で、1つ1つは port と言うそうだ。知らなかった(^^;
●各portの設定
パッケージ名 | 設定 | 意味 |
editors/vim | WITHOUT_X11=yes | - |
java/jdk14 | MINIMAL=yes | 最小インストール。いろいろ入れない |
mail/qpopper | WITH_DRAC=yes | POP before SMTP を使う場合にon |
WITH_PAM=yes | - | |
WITH_POPPASSD=yes | - | |
WITH_SHY_ENABLED=yes | qpopper のバナーに version を出さない | |
WITH_STANDALONE_MODE=yes | inetd からの起動ではなくて daemon 化する | |
net/rsync | WITH_POPT_PORT=yes | buildに必須 |
sysutils/xmbmon | WITHOUT_X11=yes | - |
www/apache2 | WITH_MPM=worker | worker thread を有効に |
WITH_THREADS=yes | thread を有効にする | |
WITH_SUEXEC=yes | - | |
SUEXEC_DOCROOT=/home | - | |
SUEXEC_LOGFILE=/var/log/httpd/httpd-suexec.log | - | |
SUEXEC_UIDMIN=2000 | - | |
SUEXEC_GIDMIN=2000 | - | |
www/mod_fastcgi | WITH_APACHE2=yes | Apache2で使うためのオプション |
www/webalizer | WITH_LZW=yes | GIF関連。特許が解決されたのでオプションなくなった? |
以上の部分を /usr/local/etc/pkgtools.conf の MAKE_ARGS 欄に記載。こんな感じ
MAKE_ARGS = {
'java/jdk14' => 'MINIMAL=yes',
2004-12-17 (Fri)
★[サーバ] 設定メモ書き(5) [16:29]
昨日は飲みに誘われてたので何も欠けなかった。一昨日の続きです。
●RAIDディスク監視体制
○必要なバイナリ
3ware社(RAIDボードのメーカー)が配布しているCLIプログラム (tw_cli-freebsd-x86.tgz)
3ware社のページ(英語) にある。日本代理店のページには無いようだ。○インストール
展開すると、tw_cli-freebsd-x86 というディレクトリの中にプログラムとマニュアルが入る。
$ tar xvzf tw_cli-freebsd-x86.tgz
x tw_cli-freebsd-x86/
x tw_cli-freebsd-x86/tw_cli
x tw_cli-freebsd-x86/tw_cli.8.html
x tw_cli-freebsd-x86/tw_cli.8.nroff
x tw_cli-freebsd-x86/tw_sched
x tw_cli-freebsd-x86/tw_sched.8.html
x tw_cli-freebsd-x86/tw_sched.8.nroff
x tw_cli-freebsd-x86/tw_sched.cfg
これを、それぞれのディレクトリにコピー
tw_cli, tw_sched
→ /usr/local/sbin/ に root:wheel 500 でコピー
tw_cli.8.nroff, tw_sched.8.nroff
→ 名前を *.8.nroff → *.8 に変更して、gzip 圧縮。
そして /usr/local/man/man8/ に root:wheel 444 で置いた
tw_cli.8.html, tw_sched.8.html
→ /usr/local/share/doc/ に twa/ というディレクトリを作り(root:wheel 755)
そこに root:wheel 444 で置いた
tw_sched.cfg
→ /usr/local/etc/tw_sched.cfg.sample (root:wheel 444) として置いた
パーミッションが500であるのは、tw_cli を一般ユーザで実行しようとしても
$ /usr/local/sbin/tw_cli
Error: (CLI:001) Only root/administrator can run this program.
と出るため。一般ユーザに触らせる意味が無い。
○dailyで動くように設定
/usr/local/etc/periodic/daily/401.status-twa (root:wheel 755) を作って、periodicにつっこみました。
#!/bin/sh
daily_status_twa_cli_cmd="/usr/local/sbin/tw_cli"
daily_status_twa_cli_controller="c0"
if [ -r /etc/defaults/periodic.conf ]
then
. /etc/defaults/periodic.conf
source_periodic_confs
fi
case "$daily_status_twa_enable" in
[Yy][Ee][Ss])
echo ""
echo "3ware RAID status:"
echo ""
$daily_status_twa_cli_cmd info
$daily_status_twa_cli_cmd info $daily_status_twa_cli_controller
;;
*) ;;
esac
exit 0
そして /etc/periodic.conf に以下を。
daily_status_twa_enable="YES"
これで、daily status output のメールに以下のようなのが追加される。
3ware RAID status:
Ctl Model Ports Drives Units NotOpt RRate VRate
------------------------------------------------------------------
c0 9500S-4LP 4 4 1 0 4 4
Unit UnitType Status %Cmpl Stripe Size(GB) Cache AVerify OvrECC
------------------------------------------------------------------------------
u0 RAID-5 OK - 64K 558.762 ON OFF OFF
Port Status Unit Size Blocks Serial
---------------------------------------------------------------
p0 OK u0 189.92 GB 398297088 B403xxxx
p1 OK u0 189.92 GB 398297088 B403xxxx
p2 OK u0 189.92 GB 398297088 B403xxxx
p3 OK u0 189.92 GB 398297088 B403xxxx
★[サーバ] 設定メモ書き(6) [16:41]
●IDEディスク監視体制
○必要なport
sysutils/smartmontools make 時のオプションは無し
○dailyで動くように設定
RAIDと同様。periodic につっこんだ。/usr/local/etc/periodic/daily/402.status-smart (root:wheel 755)
#!/bin/sh
daily_status_smart_smartctl_cmd="/usr/local/sbin/smartctl"
daily_status_smart_smartctl_option="-H -l error /dev/ad0"
if [ -r /etc/defaults/periodic.conf ]
then
. /etc/defaults/periodic.conf
source_periodic_confs
fi
case "$daily_status_smart_enable" in
[Yy][Ee][Ss])
echo ""
echo "SMART status:"
echo ""
$daily_status_smart_smartctl_cmd $daily_status_smart_smartctl_option
;;
*) ;;
esac
exit 0
そして /etc/periodic.conf に以下。
daily_status_smart_enable="YES"
daily status output のメールのサンプル
SMART status:
smartctl version 5.xx Copyright (C) 2002-4 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
The SMART RETURN STATUS return value (smartmontools -H option/Directive)
can not be retrieved with this version of ATAng, please do not rely on this value
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
SMART Error Log Version: 1
No Errors Logged
quietオプション(-q errorsonly)を追加した方が良いかもしれない。
★[サーバ] 設定メモ書き(7) [19:14]
●システム監視体制 (HotSaNIC)
○実際に動いている例
○必要なport
net/rrdtool make 時のオプションは無し
sysutils/xmbmon make 時のオプションは WITHOUT_X11=yes
graphics/ImageMagick make 時のオプションは無し (無くても可だが汚いグラフになる)
snmpは不要
○port以外で必要なバイナリ
HotSaNIC http://hotsanic.sourceforge.net/
使ったのは、0.5.0系のHotSaNIC。まだ正式リリースではなくpre5版だが、特に不具合は感じてない
○インストール
(1) (rootで作業) hotsanic というユーザ/グループを作る。自動起動を設定するために必要なので shell は /bin/sh。nologin では駄目だった。パスワードは「*」(ログインできない) にした。
(2) (一般ユーザで作業) パッケージを取ってきて展開。HotSaNIC というディレクトリの中にいろいろできる。
(3) (一般ユーザで作業) cd HotSaNIC; ./setup.pl
どのモジュールを有効にするかとか、いろいろ聞かれる。あとで変えられるので適当に。私の設定は以下
APCUSV :無効(n)
APPS :有効(y)、web上で公開(y)
BIND :無効(n)
DISKIO :有効(y)、web上で公開(y)
DNET :無効(n)
MAILQ :有効(y)、web上で公開(y)
NETSTAT :有効(y)、web上で公開(y)
NETWORKS :無効(n)
PART :有効(y)、web上で公開(y)
PING :無効(n)
SENSORS :有効(y)、web上で公開(y)
SHOUTCAST :無効(n)
SYSTEM :有効(y)、web上で公開(y)
TRAFFIC :有効(y)、web上で公開(y)
WORMS :無効(n)
これを選択したあと何も進まなかったのでenter押してあげたら進んだ。他にも、同じ質問が何回も出てきたりしたので、setup.pl はまだ (少なくとも FreeBSD に対しては)不具合がある模様。まぁ setup が難ありでも、実際に動けば問題ないのだけれど。
ちなみに上のモジュール設定だと、たとえばこんな感じで
setting up diskio ...
not supported yet, sorry
Please check the settings file and adapt it to satisfy your needs.
文句を言われたりもする。改造するつもりなので無視。
(4) (一般ユーザで作業) 設定
var/settings/ に設定ファイルがある。var/settings/main に対して settings という名前で symbolic link が貼られている。
デフォルトの設定から変えたところは、以下。
・var/settings/main
DAEMONDIR="/usr/local/HotSaNIC"
WEBDIR="/usr/local/www/data/HotSaNIC"
手順 (5)(6) で使う予定のディレクトリに合わせる
IMAGEFORMAT="png"
LZWの特許は切れたはずなのでgifでも問題ないとは思うが、なんとなく。
DTIME="6"
グラフを6分ごとに作り直す。
CTIME="0.1"
縮小画像を0.1時間(=6分)ごとに作り直す。要するにグラフ生成ごとに毎回作ることになる。
CONVERTMETHOD="I::M"
縮小画像を作るのに perl の Image::Magick を使う。
THUMBSIZE="46%"
このへんはお好みで。
REFRESH="60"
html のリロード時間。
・var/settings/mod_apps
APP=httpd
監視するアプリを設定。perl も監視したほうがいいかも、とか最近おもってたり。
・var/settings/mod_diskio
DEV=da0,da0
DEV=ad0,ad0
・var/settings/mod_part
DRIVE=/dev/da0s1a,root-filesystem
DRIVE=/dev/da0s1g,/home
DRIVE=/dev/ad0s1d,/tmp
DRIVE=/dev/da0s1d,/usr
DRIVE=/dev/da0s1e,/var
DRIVE=/dev/da0s1f,/var/log/httpd
DRIVE=/dev/ad0s1e,/backup
・var/settings/mod_sensors
SENSOR=0,TEMP0,Temperture 1,,,,C
SENSOR=1,TEMP1,Temperture 2,,,,C
SENSOR=2,TEMP2,Temperture 3,,,,C
SENSOR=3,FAN0,Fan rotate,,,,RPM
SENSOR=4,VC0,VCore 1,,,,V
SENSOR=5,VC1,VCore 2,,,,V
SENSOR=6,V33,+3.3V,,,,V
SENSOR=7,V50P,+5V,,,,V
SENSOR=8,V12P,+12V,,,,V
SENSOR=9,V12N,-12V,,,,V
SENSOR=a,V50N,-5V,,,,V
・var/settings/mod_traffic
DEV="gif0,12500000,12500000,100 MBit Ethernet"
(5) (rootで作業) 上で作ったものを /usr/local/HotSaNIC にコピー、chown -R hotsanic:hotsanic *
どうも var ディレクトリ以外でもいろんなところに data file/temporary file を生成するようで、まるごと chown してやらなければ駄目だった。ちょっとお行儀が悪いですよね…
(6) (rootで作業) 画像が生成されるディレクトリを作成。mkdir /usr/local/www/data/HotSaNIC
(7) (rootで作業) cd /usr/local/HotSaNIC; ./makeindex.pl
index.html とかが生成されるので、それを適当に編集。一回生成されたら自動では作り直されないのでご自由に。
(8) (rootで作業) cd /usr/local/www/data/HotSaNIC; chown -R hotsanic:hotsanic *
画像を生成するディレクトリを hotsanic さんが書き込み可能にする。
○改造
・rrdtimer.pl (Context diff)
HotSaNIC は10秒ごとにシステムからデータを取ってくる。グラフを作る時間とは無関係に10秒ごとにデータを収集している。
データを取ってくるだけでも、決して軽い処理ではないと思うのだけれど…。
この間隔は10秒でソースに埋め込んであるので、これを30秒ごとに変更した。
*** rrdtimer.pl.orig Thu Dec 9 22:05:55 2004
--- rrdtimer.pl Thu Dec 9 22:06:12 2004
***************
*** 181,187 ****
$lastconvert+=$CONFIG{CTIME};
}
}
! $sleeptime=10-(time % 10);
sleep $sleeptime;
}
}
--- 181,187 ----
$lastconvert+=$CONFIG{CTIME};
}
}
! $sleeptime=30-(time % 30);
sleep $sleeptime;
}
}
・modules/diskio/platform/freebsd.pm (Context diff)
rrdtool に小数を入れようとして失敗して、うまく動いていないようなので、int() を追加。rrdtool って小数扱えないの?
*** modules/diskio/platform/freebsd.pm.orig Thu Dec 9 22:07:51 2004
--- modules/diskio/platform/freebsd.pm Thu Dec 9 22:08:05 2004
***************
*** 28,34 ****
if ( ! -e "rrd/$drive.rrd" ) {
system("./makerrd","$drive","U");
}
! RRDs::update "rrd/$drive.rrd",time.":".($KBt*1024).":$xfr:$time:".($MB*1024*1024);
if ($ERROR = RRDs::error) {
print time," ",$args{MODNAME},
": unable to update `$drive.rrd': $ERROR\n";
--- 28,34 ----
if ( ! -e "rrd/$drive.rrd" ) {
system("./makerrd","$drive","U");
}
! RRDs::update "rrd/$drive.rrd",time.":".int($KBt*1024).":".int($xfr).":$time:".int($MB*1024*1024);
if ($ERROR = RRDs::error) {
print time," ",$args{MODNAME},
": unable to update `$drive.rrd': $ERROR\n";
../modules/netstat/platform/freebsd.pm (File)
新規作成。netstat コマンドを叩いて、その出力で "ESTABLISHED" とか書いてあるところの matching を取って、数えているだけです。原理的には FreeBSD じゃなくても使えるはず。
../modules/netstat/diagrams.pl Context diff
../modules/netstat/makerrd (Context diff)
この2つは、FreeBSD のときは動作しないようになっていた。if の条件だけを修正。
*** modules/netstat/diagrams.pl.orig Thu Dec 9 22:11:49 2004
--- modules/netstat/diagrams.pl Thu Dec 9 22:11:55 2004
***************
*** 77,83 ****
my ($prints,$xs,$ys);
! if ($^O =~ /linux/) {
($prints,$xs,$ys)=RRDs::graph $TEMPNAME, "-i", "-b","1024", "-v", $LEGEND,
"-s","-$range", "-w",$CONFIG{"WIDTH"}, "-h",$CONFIG{"HEIGHT"}, "-a", uc($IMGFMT),
"-u",1, "-l",0, "--title", "socket stats for $name - last $descr ($DATESTRING)",
--- 77,83 ----
my ($prints,$xs,$ys);
! if ($^O =~ /linux/ || $^O =~ /freebsd/) {
($prints,$xs,$ys)=RRDs::graph $TEMPNAME, "-i", "-b","1024", "-v", $LEGEND,
"-s","-$range", "-w",$CONFIG{"WIDTH"}, "-h",$CONFIG{"HEIGHT"}, "-a", uc($IMGFMT),
"-u",1, "-l",0, "--title", "socket stats for $name - last $descr ($DATESTRING)",
*** modules/netstat/makerrd.orig Thu Dec 9 22:12:19 2004
--- modules/netstat/makerrd Thu Dec 9 22:12:25 2004
***************
*** 14,20 ****
echo $SECS $MODNAME: setting up database $DEV.rrd for values [0..unknown]
! if [ $OS_TYPE = "Linux" ]; then
$BINPATH/rrdtool create rrd/$DEV.rrd --step 10 \
DS:unknown:GAUGE:300:0:U \
DS:established:GAUGE:300:0:U \
--- 14,20 ----
echo $SECS $MODNAME: setting up database $DEV.rrd for values [0..unknown]
! if [ $OS_TYPE = "Linux" -o $OS_TYPE = "FreeBSD" ]; then
$BINPATH/rrdtool create rrd/$DEV.rrd --step 10 \
DS:unknown:GAUGE:300:0:U \
DS:established:GAUGE:300:0:U \
../modules/sensors/platform/freebsd.pm (Context diff)
センサーから取れる情報に「-5V」「-12V」があったのだが、負の値を入れると nan とされていた。絶対値を入れるようにして修正。rrdtool って小数だけじゃなくて負の値も扱えないの?
*** modules/sensors/platform/freebsd.pm.orig Thu Dec 9 22:10:04 2004
--- modules/sensors/platform/freebsd.pm Thu Dec 9 22:10:13 2004
***************
*** 26,32 ****
if ( ! -e "rrd/$dev.rrd" ) { system("./makerrd","$dev","10000") }
# update database
! RRDs::update "rrd/$dev.rrd",time.":".$value;
if ($ERROR = RRDs::error) { print time," ",$args{MODNAME},": unable to update `$dev.rrd': $ERROR\n"; }
}
}
--- 26,32 ----
if ( ! -e "rrd/$dev.rrd" ) { system("./makerrd","$dev","10000") }
# update database
! RRDs::update "rrd/$dev.rrd",time.":".abs($value);
if ($ERROR = RRDs::error) { print time," ",$args{MODNAME},": unable to update `$dev.rrd': $ERROR\n"; }
}
}
../modules/traffic/diagrams.pl (Context diff)
トラフィックのグラフが上下に出るのって見にくくないですか?
私はこれ、なんか好きになれなかったので、両方とも上に出るように修正。
グラフを作るときに "CDEF:avgout_draw=avgout,$SWAPOI,*" とやって-1をかけて負の値にしていたので(←逆ポーランド記法です)、$SWAPOIの値を1にした。rrdファイルに入っているデータは修正していない。(ここだけ書き換えれば過去のデータを修正しなくてもグラフが全部書き換わる)
*** modules/traffic/diagrams.pl.orig Thu Dec 16 17:35:57 2004
--- modules/traffic/diagrams.pl Thu Dec 16 17:51:54 2004
***************
*** 56,62 ****
if ($SCALE eq "") { $SCALE=-1000; }
if ($SCALE > 0) { push @FEATURES,"--rigid"; }
! my $SWAPOI=-$SWAPIO;
# generate diagrams
#
--- 56,63 ----
if ($SCALE eq "") { $SCALE=-1000; }
if ($SCALE > 0) { push @FEATURES,"--rigid"; }
! #my $SWAPOI=-$SWAPIO;
! my $SWAPOI=$SWAPIO;
# generate diagrams
#
○実験
su hotsanic
cd /usr/local/HotSaNIC
../rrdgraph start
しばらく待って画像が出てくれば成功。
../rrdgraph stop
止まれば (ps x してプロセスが残らなければ) 成功。
○自動起動設定
/usr/local/etc/rc.d/hotsanic.sh を root:wheel 555 で作成。
スクリプトの内容をサボってるので、rc.conf で起動する/しないの設定ができなかったり。
#!/bin/sh
PREFIX=/usr/local
HOTSANICBIN=/usr/local/HotSaNIC/rrdgraph
HOTSANICUSER=hotsanic
case $1 in
start)
[ -x ${HOTSANICBIN} ] && {
echo ' hotsanic'
su -l ${HOTSANICUSER} -c "exec ${HOTSANICBIN} start"
}
;;
stop)
[ -x ${HOTSANICBIN} ] && {
su -l ${HOTSANICUSER} -c "exec ${HOTSANICBIN} stop"
}
;;
restart|reload)
[ -x ${HOTSANICBIN} ] && {
su -l ${HOTSANICUSER} -c "exec ${HOTSANICBIN} restart"
}
;;
status)
[ -x ${HOTSANICBIN} ] && {
su -l ${HOTSANICUSER} -c "exec ${HOTSANICBIN} status"
}
;;
*)
echo "usage: `basename $0` {start|stop|restart|reload|status}" >&2
exit 64
;;
esac
2004-12-26 (Sun)
★[雑記] いそがしいの… [21:52]
冬コミに向けて衣装制作修羅場中…。更新しばらくできそうにないです。
1日遅れだけど画像1枚おいておきます。うちのテレビの端っこ。
サーバ設定のメモも続きあるんだけどね。一段落したら書きますね。
というか、間に合うんだろうか、私…(汗 場合によっては1日目行かないで制作やってて2日目だけ行くとか、するかも…。
_ マトリョーシカ葉山(-_-x) [じゃあ、2日目行って見るか・・・・(笑) ] (2004-12-27 (Mon) 10:58)
2004-12-28 (Tue)
★[雑記] おわりそうにありません [02:59]
眠い…… (T_T)
★[雑記] 疲れてるときって [23:19]
いろんなこと起こるよね。
ワンピの上半身は表地で下半身が裏地が出てたりとか…
… (泣)
逆に縫いつけたらしいです…(汗
_ みさと。 [がんばれ〜☆ できなかったときは作りかけのお洋服でGo(ぇ゛ ] (2004-12-28 (Tue) 11:54)
_ じゅん [お手伝いに行きましょうか〜? 作りかけ…それはそれでイロっぽくていいかも(爆) ] (2004-12-28 (Tue) 20:30)
_ すてねこ@管理人 [ぐへー。裸のところを見たいってか〜〜。えっち〜〜〜。そんな格好を公衆の面前でなんてできないよぉ〜〜。見たいなら個人的に言いなさいよ(え? ] (2004-12-31 (Fri) 21:51)
2004-12-29 (Wed)
★[雑記] 着れるようになったけれど [16:34]
布が1枚あまってます。型紙かいてちゃんと枚数も確認して切ったはずなのに。なぜ…??
ま、着れるから、いいか…(笑)
あ、まだ仕上げが残ってるので、とりあえず着れるというだけです。
_ くーくん [みたよー みたよー ] (2004-12-31 (Fri) 6:51)
_ ゆーな [お疲れさまでしたー。かわいかったでしw ] (2004-12-31 (Fri) 20:4)
_ すてねこ@管理人 [みなさまお疲れ様でした〜。衣装、まにあわせで全然だめだめでしたよ〜(汗 ] (2004-12-31 (Fri) 21:49)
2004-12-31 (Fri)
★[雑記] 大晦日 [21:19]
大晦日。
今年1年、いろんなことがありました。いろんな人と仲良くなって、いろいろ遊びいったり。
いろいろ遊びいったかわり、お金はあんまり貯まらなかったけど(笑)
いまは実家に来てます。実家といっても埼玉県なんで遠くないんですが、都内より雪は多かったみたい。都内だと2cmくらいしかつもってなかったんですが(それでもうちの近くの急坂は車両通行止めになってた)、こっちだと数センチつもってました。車では出歩きたくないでしゅ。今年の正月は、実家で犬を撫でながら優雅に過ごすことになりそうです。単にコタツにこもってるだけ、というツッコミは無しです(笑)。初詣はどうしようかな…。
なお、冬の衣装は、昨日の何とか完成させました。朝の2時半ころにとりあえず仕上げて、4時頃まで気になる部分を補修してました。26日の夜中に布を切ってましたから、忘年会に行った時間とかを考えると事実上3日半で完成させたことになるでしょうか。いい加減な部分、ヘタな部分は山ほどありました。リボンに使った布を切ってない(端に切り込み入れてぴーっと破って使った)とかね。3日半しかかけられなかったんで、ちゃんとした布を使う気にもなれず、ホントは別珍つかいたかったんだけどポリエステルツイル使いました。でも、決して仕事が早くない私にとってはかなり頑張った感じです。褒めて褒めて〜☆ (笑)
3日間の睡眠時間は4時間、3時間、ゼロという感じ。ベッドの上に敷いてある布団を剥いで、そこにアイロンとミシンを置いて作業してたんで、毛布にくるまって寝てました。当日は徹夜。冷凍食品とインスタント食品で生きてました。当日は結構つかれてたみたいで、終わったあと友達と食事いった時に、おなかいっぱいになったのと、終わった〜〜ってのとで、墜ちました…(汗 食事中に寝ちゃったのは初めてだよ… (^^;
写真は手元にはあるんですが、いま実家でAirH"で繋いでるのでアップが大変なんです。てなわけで今日は無し。気分次第で来年早々にアップしますねw
衣装、時間があったら、ちゃんと作り直したいです…。でもその前に、SD使って真紅つくって、じゅんのコスプレやってみたいかな〜(笑)
なにはともあれ、1年間、ありがとうございました☆ 来年も宜しくお願いしますね♪
_ へっぽこ@時差ボケ中 [こんばんは。(ぉ) 私も最近フリーな休日がとれず、むしゃくしゃしてこないだ買い物を(略 ] (2004-12-6 (Mon) 16:20)