Asianux 2.0 SP2(MIRACLE LINUX V4.0)の「ビデオ プロパティ」でディスプレイを LCD PANEL 1280x1024とか変更すると、xorg.confファイルのMONITORセクションのVirtRefreshの内容が空になりますね。で、再起動するとXが起動しない。明らかに不具合と思われるのですが。これって誰も文句言わないのか?こういう細かい部分の挙動が怪しいままだと、他の部分の信頼度も落ちますね。こういう細かいところに関してはRedHatの方が上手く出来てますね。あまりにも高すぎる利用料には不満があるのですが。。
2007年3月アーカイブ
Squid2.5で特定のサイトにのみ接続を許したい場合
例としてhttp://www.livedoor.com/hogehoge/test/ 配下のみ許可。
squid.conf
acl client src 192.168.100.0/24
acl allow_url url_regex ^http://www.livedoor.com/
acl allow_path urlpath_regex /hogehoge/test/
http_access allow allow_url allow_path client
こういう方法しか無いのか・・・
もうちょっとスマートに実装できないかなぁ・・・
それにしても、降るねぇ。
なんかなぁ。
もう桜がどうとか言ってる時期なのに。。。
雪、まるでクリスマスの雰囲気ばりに降ってたよ。
クリスマスは全然降らなくって、雰囲気悪かったのにねぇ。
実のところ触ってるのはAsianux 2.0だったりするんですが。
ちょっと不満な点。
・XConfig
ディスプレイをGeneric CRT 1600x1200に変更したらXが起動しなくなった。仕方ないのでログを見て、/etc/X11/xorg.confのMonitorセクションを手で修正。ま、AsianuxというよりはXorgのバグですね。この辺はRHELではきっちり手が入っていて好印象。
lvsはあっさり(RHELと同じ方法)で動作。あと気になるのは、ソース拾ってきてコンパイルとか、カーネルリメークとか・・・その辺でしょうか。
で、カーネルのAXって何の略?
RedHat Enterprise Linux (RHEL)・・・ライセンス高杉
新規に導入するのでなければ、Windows Serverの方が安くなる。だって、パッケージ買いしても16万。新規じゃなければ、CALの問題は無いので16万ですむ。4年なり、5年の期間使い続けることが出来るけどRHELは10万×利用年数。2年使うと、Windowsの方が4万安くなる。。更に、ipvsadm含め、LVSはクラスターパッケージ製品であって標準環境に含まれていない。。なんつーケチくさい商売なんだよ。
Solaris(x86)は対応ハードが限られるから、結局SUNのX2100やX4200を選択する必要がありそうだし。前述したとおりウイルス対策が今ひとつ。リアルタイムスキャンに対応したソフトが見つからない。何より先行きが心配。さすがにSolarisでコンパイル通らないってのは滅多に無いけど、ネット上の情報も思ったより少ない。個人的にはSolaris好きなんですけどねー。今時ウイルス対策できなきゃ、客に提案持ってけないでしょ。(ウイルス掛かりませんから〜という言い訳も苦しい。侵入されちゃったらアーキテクチャ違っても、一緒でしょ?)Trusted Solarisなら・・・。。
割り切ってCentOSなら、それでもいいけど。運用側にそれ相応のスキルが求められてしまう。
個人的にはAsianux(日本だとMIRACLE LINUX)が好感度高いな。RHELほど出し惜しみしてない。値段も安い。まともなサポート付けると高くなるけど。とりあえずパッチ入手だけでも許容範囲。いやRHELと比較すると激安。ちょっとだけ使ってみたけど、意外とまともっぽい。(ちょっと触っただけだから、安定性とかは判らないけど)
官庁相手だと、せめて購入後4年まで安価なサポート欲しい所だけど。
Keepalivedもやってみよー!! ってことで
1−1.OpenSSL0.9.8eのインストール
# ./configure ; make
# sudo make install
1−2.keepalivedのインストール
# CPPFLAGS='-I /usr/local/ssl/include' ./configure \
--with-kernel-dir=/usr/src/linux-2.4.21-32.EL \
--disable-lvs-syncd
# make
# sudo make install
1−3.keepalived.confの作成
# vi /usr/local/etc/keepalived/keepalived.conf
virtual_server 192.168.1.100 80 {
delay_loop 3
lvs_sched wrr
lvs_method DR
protocol TCP
real_server 192.168.1.7 80 {
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 80
connect_timeout 1
}
}
real_server 192.168.1.8 80 {
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 80
connect_timeout 1
}
}
}
virtual_server 192.168.1.101 80 {
delay_loop 3
lvs_sched wrr
lvs_method DR
protocol TCP
real_server 192.168.1.7 80 {
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 80
connect_timeout 1
}
}
real_server 192.168.1.8 80 {
weight 1
inhibit_on_failure
TCP_CHECK {
connect_port 80
connect_timeout 1
}
}
}
1−4.ipvsadmのテーブルクリア
# ipvsadm -C
1−5.keepalivedの起動
# keepalived -e /usr/local/etc/keepalived/keepalived.conf
1−6.確認
# ipvsadm
IP Virtual Server version 1.0.8 (size=65536)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.100:http wrr
-> 192.168.1.8:http Route 0 0 0
-> 192.168.1.7:http Route 1 0 0
TCP 192.168.1.101:http wrr
-> 192.168.1.8:http Route 0 0 0
-> 192.168.1.7:http Route 1 0 0
取りあえず、ちゃんと動いてるっぽい。。
Weight=0のサーバは本当に電源Offになってる奴。
LinuxのLVS。高性能っぽいので、
今更ながら、しょぼい機械を集めてテストしてみました。
マシン
lb:ロードバランサー役
Pentium4 3GHz/Mem 1GB/OS RedHatEnterpriseLinux ES3 Update5
w1:WWWサーバ1役
Pentium3 667MHz/Mem 512MB/OS RedHatEnterpriseLinux ES4
w2:WWWサーバ2役
Pentium3 800MHz/Mem 384MB/OS RedHatEnterpriseLinux ES4
条件
WWWサーバはVirtualHostで2つのサイトを持ちます。
アクセス制限の関係とか色々あって、2つのサイトはIPベースでの
バーチャルホストです。
IPアドレス
実アドレス
lb ... 192.168.1.4/24
w1 ... 192.168.1.7/24
w2 ... 192.168.1.8/24
仮想アドレス
Web Site1 ... 192.168.1.100
Web Site2 ... 192.168.1.101
ロードバランスの方式
分散は何も考えずにラウンドロビンで行う。
アクセスログを残したいのと、高速性がほしいのでDSRで行う。
用意するもの
ipvsadmコマンド ここからダウンロードできます。
1.ロードバランサーの準備
1−1.rpmでipvsadmをインストールします。
# rpm -ivh ipvsadm-1.21-1.rh.el.1.i386.rpm
1−2.仮想IPアドレス用のインターフェースを設定します。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.100
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
TYPE=Ethernet
#
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.101
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
TYPE=Ethernet
#
# /etc/init.d/network restart
1−2.IPv4フォワードを有効にします。
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
#
# sysctl -p
1−3.カーネルにip_vsモジュールを読ませます
# cd /lib/modules/2.4.21-32.ELsmp/kernel/net/ipv4/ipvs
# insmod ip_vs
# insmod ip_vs_rr
# insmod ip_vs_lc
# insmod ip_vs_wrr
# insmod ip_vs_wlc
# insmod ip_vs_lblc
# insmod ip_vs_lblcr
# insmod ip_vs_sh
# insmod ip_vs_ftp
# insmod ip_vs_dh
1−4.ipvsadmに仮想サイトを教え込みます。
# ipvsadm -A -t 192.168.1.100:80 -s rr
# ipvsadm -A -t 192.168.1.101:80 -s rr
1−5.ipvsadmに実WWWサーバを教え込みます。
# ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.7 -g
# ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.8 -g
# ipvsadm -a -t 192.168.1.101:80 -r 192.168.1.7 -g
# ipvsadm -a -t 192.168.1.102:80 -r 192.168.1.8 -g
1−6.ipvsadmの設定値をファイルに記録します。
# service ipvsadm save
1−7.ipvsadmを起動します。
# service ipvsadm start
1−8.ipvsadmを自動起動に設定します。
# chkconfig ipvsadm on
2.WWWサーバの準備
2−1.ループバックインターフェースに仮想IPを仕込みます。
# vi /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.1.100
NETMASK=255.255.255.255
NETWORK=192.168.1.100
BROADCAST=192.168.1.100
ONBOOT=yes
NAME=loopback:0
#
# vi /etc/sysconfig/network-scripts/ifcfg-lo:1
DEVICE=lo:1
IPADDR=192.168.1.101
NETMASK=255.255.255.255
NETWORK=192.168.1.101
BROADCAST=192.168.1.101
ONBOOT=yes
NAME=loopback:0
#
# /etc/init.d/network restart
コツはネットワークアドレス、ブロードキャストアドレスと
IPアドレスに同じ値を入れることと
サブネットマスクが255.255.255.255な事です。
デフォルトゲートウェイは/etc/sysconfig/networkではなく
ifcfg-eth0のなかに書きましょう
GATEWAY=192.168.1.254
2−2.arp応答をしないようにします。
# vi /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.eth0.arp_announce = 2
#
# sysctl -p
2−3.WWWサーバをVirtualHostで構築します。
(省略)
基本的にはこれだけで負荷分散されたWWWサイトが構築出来ます。
簡単ですね。
最近のAjax OS周りの動きを見ていると、コンピュータの歴史を思い出してしまう。
結局、単純な発想でWebベースでOSが動く→OSに関係なくWebで仕事できるじゃん。
みたいな。
あれ、昔OracleあたりでNCとか言ってなかったっけ?・・・
近いところでは、シンクライアント、メタフレームとかも同じ発想だよね?
自分用WebMailサーバをSquirrelMailからActive!Mail2003に乗り換えました。
さすがに商用のWebMailだけあって処理が速い。
商用なんですが、「5ユーザ用無償版」ってのがダウンロード可能になってます。
Trans Wareのダウンロードページ http://www.transware.co.jp/support/am/download.html
個人用ならアカウント5つも使わないと思うので、十分です。
色々OSが混在している関係で、基本はIMAPかつThunderbirdだったんですけど、IMAPフォルダの処理がイマイチ。というか、一度キャッシュしたら、他のクライアントから「フォルダ名を変更されても」頑なに保持しようとする挙動が許せない。という事で、ここしばらくはWebMailを利用中。最近のはWebベースでも十分な操作性が得られますね。
ちなみにThunderbirdの動作は、プロファイルの下にImapMailフォルダがあって、その下にキャッシュがあるので、msgFilterRules.datを残して他を全て削除すると一応、最初から読み返ししてくれます。
メールヘッダ読み返すだけでも、とっても面倒ですけどね。
ApacheでSSLサイトを構築する方法もメモ
これも今更のネタなんだけど、折角自分のサイトで証明書の更新を行ったので、メモ。実は仕事中の自分が一番使うってのは内緒です(^^;
SSLのコンフィグ(httpd.conf)
httpd.confを直接編集するよりは、httpd.confにはIncludeを書いて、ssl.confとか、別ファイルにしたほうがあとあと編集しやすいだろう。
<VirtualHost *:443>
DocumentRoot /var/ssl/htdocs
ServerName ssl.hogehoge.net:443
ServerAdmin postmaster@hogehoge.net
ErrorLog /var/log/apache/ssl-error.log
CustomLog /var/log/apache/ssl-access.log common
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
SSLCACertificatePath /etc/httpd/conf/ssl.crt
SSLCARevocationPath /etc/httpd/conf/ssl.crt
</VirtualHost>
証明書の作成
秘密鍵(server.key)と申請書(server.csr)を作成する。
-nodesオプションで、あえて暗号化していない点がポイント。パスフレーズが要らないので、通常の手順のようにあとからパスフレーズを取り除く必要が無くなる。
[root@server Sat Mar 10 00:00:00 /etc/httpd/conf]
# openssl req -new -nodes -keyout ssl.key/server.key -out ssl.csr/server.csr
Generating a 1024 bit RSA private key
................................................++++++
................++++++
writing new private key to 'ssl.key/server.key'
現状Solarisで動作する商用ウイルススキャンとしては、Sophosしか選択肢が無い。
リアルタイムスキャンも出来ない。
以前はTrend MicroのInter Scan Virus WALLという製品もあったのだが、InterScan がEnterpriseになった時点で、ローカルディスクへのスキャン機能がカットされてしまい、今はSophosのみという悲しい状況。Trend MicroかMcAfeeあたりの大手でSolaris用のウイルス対策ソフトだして欲しいですけど・・・。
そう言えば、MAC用のウイルススキャンに関しても寂しい状況。
そういえば…10年程前に「志保ちゃんのエミュレータニュース」なんてサイトもありましたね。
Archivesで見つけました。http://web.archive.org/web/*/http://toheart.pos.to/emunews/index.html
懐かしいです。あの頃はまだネットに勢いがありましたね・・・。法整備がまだまだで、アングラの香りも残ってましたね。。
ま、懐かしいのでメモです。ちなみに当時は志保ちゃんの元ネタは全然知らなかったです。。まさかオタクゲームとは…。
自分はエミュレータって魔物にやられて観てました。今となってはそれもいい思い出ですか・・・
そういえば、ブックマークの中が肥大化しすぎてて気づかなかったんですが、あの当時のブックマークの残り香?が残ってて、ちょっとビックリです。
例えばhttp://www.emulatronia.com/とか(爆
その間にマシン何台乗り換えたかなんて、覚えちゃいないんですが(汗
えと前述の
next if(($list[1]+$list[2]+$list[3]+$list[4]) == 0);
ってコードですが、文字列排除をした方が良いですね。
従って
next if("$list[1] $list[2] $list[3] $list[4]" =~ /[A-Za-z]);
の方がベターでしょうね。。sarにパラメータ与えて気づきましたorz
またSolarisなんですけど、sarのレポートから、「報告用のレポート」を作成する必要があって、sarの出力結果をPerlに食わせて、CSVかHTMLに出力させることを考えた。
@buf = `LANG=C sar -f $sa_path/$filename`; foreach (@buf) { chomp($_); next if($_ =~ /^$/); $_ =~ s/\t+/ /g; $_ =~ s/\s+/ /g; @list = split(/ /, $_ ); next if(($list[1]+$list[2]+$list[3]+$list[4]) == 0); next unless($list[0] =~ /[012][0-9]:[0-5][0-9]:[0-5][0-9]/); $time = $list[0]; $usr = $list[1]; $sys = $list[2]; $wio = $list[3]; $idle = $list[4]; 処理 }
とりあえず、sarの出力結果の内、頭4行と最終行は不要。
1行目:空行
2行目:「OS名 ホスト名 OSバージョン カーネルバージョン アーキテクチャ 日付」
3行目:空行
4行目:「時間 %usr %sys %wio %idle」
最終行:「Average 平均値」
headとlastを使って抜き出そうかとも思ったんですが、結局if/unlessで判断することに。もっと適切な方法もありそうなんですが...。
dovecotのバージョンアップ
1.0alphaの頃は認証で手こずった記憶があったため、ずっとバージョンアップは躊躇していたのですが、1.0系もRC25まで上がっていたため、バージョンアップしてみようかと。
ちなみにポータルサイトはhttp://dovecot.org/
0.99系と1.0系ではconfigの書き方が違います。
まず、インターフェースのバインド部分
0.99系
imap_listen = *
pop3_listen = *1.0系
protocol imap {
listen = *:143
}
protocol pop3 {
listen = *:110
}
メールボックスの場所を指定する部分
0.99系
default_mail_env = maildir:%h/Maildir1.0系
mail_location = maildir:%h/Maildir
POP3のUIDLコマンドの挙動
1.0系で追加
protocol pop3 {
pop3_uidl_format = %v.%u
}
認証部分
0.99系
auth = default
auth_mechanisms = plain
auth_userdb = passwd
auth_passdb = pam
auth_user = root1.0系
auth default {
mechanisms = plain
passdb pam {
}
userdb passwd {
}
user = root
}
設定内容は拡張されている程度で大幅には変わっていないのですが、フォーマットが変更された部分もあって、注意が必要ですね。認証はshadowを使ってもいいですが、PAMに丸投げするのが今風でしょうね。
Maildirの内容が変更されるようです。
## って事は0.99に逆戻りは出来ないのか?
0.99系
Maildir/.subscriptions1.0系
Maildir/subscriptions
動作は今のところ正常です。しばらく様子見ですかね。
HTMLの構文チェックサイトです。
http://openlab.ring.gr.jp/k16/htmllint/htmllintl.html
嫌なサイトですね(笑
でも、大変お世話になっています。
サーバの監視用途で、Perlでコマンドを書いたのだが、どうしてもGUIでの表示。できればWebでの表示をご希望とのこと。テキストで表示画面を作成したのだが、どうも見づらい。出来ればグラフで視覚的に表示したい。追加ソフト無しでグラフを表示したい。後々の管理を考えると、出来れば画像ファイルも置きたくない。(cgi1本で実現したい)
と言うことで、頑張ってCSSだけで、グラフを表示することにした。
結果から書くと、意外と簡単。
<style> .graph { position: relative; width: 400px;\n"; border: 1px solid darkslateblue; padding: 2px; } .graph .bar { display: block; position: relative; background: hotpink; text-align: center; color: black; height: 1em; line-height: 1em; } .graph .bar span { position: absolute; left: 1em; } </style><html>
<div class="graph">
<strong class="bar" style="width: 100px>
50%</strong>
</div>
</html>
後はHTMLの100pxと50%の部分を適時書き換えればok。
ちなみに表示させると、こんな感じ
31% |
1% |
取りあえずはシンプルにグラフ化できたので、満足。



最近のコメント