さくらからメールが届いた。
2012年7月1日 AM9:00頃よりご利用のVPSサーバにおいてCPU負荷が上昇する
不具合が発生しております。
7月1日 AM8:59:60にうるう秒調整があり、VPSのCPU負荷上昇がほぼ
同時であったことから、うるう秒調整が原因の可能性がございます。
どれどれ、と munin を見たらビンゴ。
ログインしてみると、MySQLがたしかに高負荷になってる。
CPU負荷が高くなっていましたら、以下の対策をお試し
くださいますようお願い申し上げます。
【対策方法】
・rootユーザにて以下のコマンドを実行し、日付の再設定を行う。
date `date +'%m%d%H%M%C%y.%S'`
この対応でCPU負荷がちゃんと下がったよ。
さくらからアナウンスも出てた
「うるう秒」挿入実施に伴うサービスへの影響について
http://www.sakura.ad.jp/news/sakurainfo/newsentry.php?id=655
http://d.hatena.ne.jp/tokuhirom/20120614/1339644848
プロセスが死んでも自動的に立ち上がって欲しいときには、
inittab に入れたり daemontools を使ったりするけど、
Ubuntu だと、古典的な init デーモンの代わりに upstart が
init として走る。
見た感じ、たしかに inittab に書くより素直かも。
調べてみたら、わりと簡単に apache に SPDY を喋らせることができる。
まずは、mod_spdy を以下のサイトから拾ってくる。
https://developers.google.com/speed/spdy/mod_spdy/
wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_amd64.deb
dpkg でインストール
sudo dpkg -i mod-spdy-beta_current_amd64.deb
設定ファイルもちゃんと以下に入る。
ls /etc/apache2/mods-enabled/spdy.*
mod_spdy の有効化。
sudo a2enmod spdy
apache の再起動。
sudo service apache2 restart
SPDY はSSL接続の上で動くので、SSL接続できるようにしなきゃ駄目。
ひとまずオレオレ証明書で良いか。
mod_ssl の有効化
sudo a2enmod ssl
オレオレ証明書の作成。
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/www.pochi.cc.pem
SSL接続用のバーチャルホスト設定の作成
cd /etc/apache2/site-enabled
sudo cp 001-www.pochi.cc 006-www.pochi.cc-ssl
sudo vi 006-www.pochi.cc-ssl
以下のように修正。
- <VirtualHost *:80>
+ <VirtualHost *:443>
+ SSLEngine On
+ SSLCertificateFile /etc/apache2/ssl/www.pochi.cc.pem
apacheの再起動。
sudo service apache2 restart
さて確認。
chromeを立ち上げて、URLに以下を入力して、SPDYのステータスを表示させながら、
chrome://net-internals/#spdy
別のタブで、HTTPSでアクセス。
https://www.pochi.cc/~sasaki/chalow/
たしかに体感速いかも。
リソース監視もしなきゃね。
方針:
手軽に apt でインストールする。
BASIC認証をかける。
まずは apt でさくっとインストール。
プラグインも一緒に。
aptitude install munin munin-plugins-extra
プラグインを追加。
/usr/share/munin/plugins の下にどっさりプラグインがあるので適当に追加。
cd /etc/munin/plugins
sudo ln -s /usr/share/munin/plugins/[追加したいプラグイン] .
BASIC認証用ファイル作成
sudo htpasswd -c /etc/munin/passwd <ユーザー名>
apache 用の設定を修正
sudo vi /etc/munin/apache.conf
以下をコメントアウト
# Order allow,deny
# Allow from localhost 127.0.0.0/8 ::1
以下を追加
AuthUserFile /etc/munin/passwd
AuthName "Munin"
AuthType Basic
require valid-user
apache と munin-node を再起動。
/etc/init.d/munin-node restart
/etc/init.d/apache2 restart
ホスト名とドメインが、localhost のままだけど、
特に困らないので、とりあえずこのままで。
必要なら、以下を修正して、munin-node を再起動する。
/etc/munin/munin.conf
/etc/munin/munin-node.conf
munin のほうは、cron で更新されるので、待ってればOK。
待ちたくなければ、munin ユーザになって、cron で実行する
コマンドを手で実行すればOK。
インターネット上のサーバに求められる要件は以下のようなもの。
- 適切なDNS登録
- 時刻合わせ
- 適切なメール配送設定
- セキュリティ対策
- 適切なリソース監視
- バックアップ
メール配送設定のため postfix を設定する。
方針:
手軽に apt でインストールする。
サーバからメールを出した際に適切なドメインが付与されるようにする。
そのドメイン宛のメールは自前で受信できるようにする。
メールボックスはMaildir形式にする。
まずはインストール。apt でさくっと。
sudo apt-get install postfix
インストール時に聞かれることは後でも設定できるけど、
ここで設定しちゃうほうが楽。
Postfix Configuration では以下を選択。
自前でメールのやりとりをするようにする。
Internet Site
System mail name では以下を入力
kuro.pochi.cc
以上でインストールは完了。
設定ファイルは、/etc/postfix 以下にできており、
このままでも、特に問題はないようになっている。
起動も完了している。
素敵。
外部から、インターネット接続するために、ufw で、smtp ポートも開放。
sudo ufw allow Postfix
確認用に、mailx をインストール。
sudo apt-get install bsd-mailx
mailx コマンドで、メールを送信。
mailx 適当な@アドレス
無事にメール送信完了。
ただ、さくらの VPS の使い始めだと、OPS25B設定のため、
外向きにメールが送れないので注意。
正式に契約すれば、
5分ぐらい悩んだ。
Q:「さくらのVPS」のお試し期間中に制限はありますか?
http://sakura.cb-faq.com/faq/public/app/servlet/qadoc?QID=001401-3
- OP25B設定 メール送信用のポート番号となる外向きの
25番ポートを閉じた設定でのご提供です。
正式に申しこんで、1時間ほどで、無事に25番が開放。
メール送信がちゃんとできることを確認。
次はメールが受信できることの確認。
DNS に以下のレコードを登録。
kuro.pochi.cc. IN MX 10 kuro.pochi.cc.
先程外に送ったメールに返信。
サーバ上で mail コマンドで受信を確認。
Maildir の設定は、postconf コマンドで投入。
sudo postconf -e "home_mailbox = Maildir/"
sudo postconf -e "mailbox_command ="
念のため /etc/postfix/main.cf に書きこまれていることを確認。
再度外部から送信テスト。
~/Maildir/new/ 以下にメールが配送されたことを確認。
基本設定は以上。
ちなみに、こういう設定をするにあたって、ググった情報は、
あまりあてにならないことが多い。
なので、この情報も参考程度に思ってね。
一番正しい情報は、ソースコードなんだけど読むのは無茶。
その代わり、かなり信頼できる情報は、配布元からの情報で、
今回のような場合は、以下のファイルをまず読むのが正解。
/usr/share/doc/postfix/README.Debian
これを読んで、ふむふむ、と思った後に、Debian の Wiki
なんかを見て、さらに勉強すると吉。
Maildir の設定は Debian のWikiに書いてある情報で行なっている。
Postfix - Debian Wiki
http://wiki.debian.org/Postfix#Maildir
5/8 にこのサーバにIPv6アドレスを付けてみたが(-->[2012-05-08-8])、
実際にIPv6アドレスからアクセスがあるか調べてみた。
5/9から5/14までのログを調査。
まずは、アクセスログをマージして、そこからアドレス部分だけを
ファイルに抽出。
cut -d ' ' -f 1 accesslog.20120509-20120514 > addresslist.20120509-20120514
これを元にアクセス元のユニークIPアドレス数を数えてみた。
cat addresslist.20120509-20120514| sort -n | uniq -c | wc -l
2133
IPv4、IPv6 合計のユニークアドレス数は、2133。
grep ":" addresslist.20120509-20120514| sort -n | uniq -c | wc -l
58
IPv6 アドレスのユニークアドレス数は、58。
まとめると以下。
ユニークIPv6アドレス : 58 (全体の 2.7 %)
ユニークIPv4アドレス : 2075 (全体の 97.3 %)
意外と IPv6 からのアクセスはあるみたいね。
どこの国からアクセスがあるかも調べてみた。
whois 情報から country 情報を抽出。
sort addresslist-v6.20120509-20120514 | uniq | sort > uniqaddresslist-v6.20120509-20120514
for i in `cat uniqaddresslist-v6.20120509-20120514` ; do whois $i | grep -i country | tail -1 >> uniqcountrylist-v6.20120509-20120514 ; done
sort uniqcountrylist-v6.20120509-20120514 | uniq -c | sort -n
結果は以下のような感じ。
日本からのアクセスがやっぱり多い。
日本語のコンテンツしかないからね。
1 Country: CA
1 country: GB
1 country: SE
2 country: CN
8 Country: US
44 country: JP
IPv6を喋れるサーバは今では簡単に持てるようになった。
DTIのVPSなんかだと標準でIPv6アドレスが付いてくる。↓
この日記のサーバはさくらのVPSを使っててIPv6対応済み。
さくらのVPSでIPv6を使うには以下のようにする。
Ubuntu 10.04 LTS から Ubuntu 12.04 LTS へのアップグレード --> [2012-05-07-3]
Ubuntu 12.04 環境で IPv6 アドレスを使う方法 --> [2012-05-08-8]
ところが、クライアント環境のほうでは、IPv6アドレスが
配られてない環境はまだまだ多いと思うんだ。
せめてウェブだけでも、IPv6でアクセスしたいのが人情。
ということで、IPv6のアドレスを持ったサーバ上に、
squidを使ったプロキシサーバを作ってみた。
用意するもの:
IPv6とIPv4アドレスを持っている Ubuntu 12.04 のサーバ
方針:
手軽に apt で入る Squid3 を使う。
オープンプロキシになりにくいようにポート番号は変える。
オープンプロキシになりにくいようにユーザ認証する。
ufwでは使うポートのみ開ける。
1. squid の設定
---
apt でインストール。
sudo apt-get install squid
認証用ファイル作成。
sudo htpasswd -c /etc/squid3/passwd <proxyユーザ>
設定ファイルをバックアップ
sudo cp -p /etc/squid3/squid.conf /etc/squid3/squid.conf.dist
設定ファイルを修正
sudo vi /etc/squid3/squid.conf
ポート番号を変更
http_port <変更したポート番号>
末尾にベーシック認証用の設定を追加。
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl proxyuser proxy_auth REQUIRED
http_access allow proxyuser
以下の全部拒否の設定を行末に移動。
# And finally deny all other access to this proxy
http_access deny all
Squidを再起動。
sudo /etc/init.d/squid3 restart
2. ufw の設定
---
ポート番号を変更したsquid用の設定ファイル作成。
開けるポートは1つにする。
cd /etc/ufw/applications.d
sudo cp -p squid3 squid3-another
sudo vi squid3-another
cat /etc/ufw/applications.d/squid3-another
[Squid another]
title=Squid proxy cache another
description=Internet object cache (WWW proxy cache)
ports=<変更したポート番号>/tcp
ufw でアクセス許可。
sudo ufw allow 'Squid another'
確認。
sudo ufw status
3. 使ってみる
---
適当なブラウザで、プロキシ設定。
以下を眺めてにっこりする。
The KAME project ~ IPv6でアクセスすると亀が動く
http://www.kame.net/
IPv6@2ch掲示板 ~ IPv6でアクセスするとひろゆきが踊る
http://ipv6.2ch.net/
The NeGi project 2011 ~ IPv6でアクセスすると初音ミクがネギを振る
http://negi.ipv6labs.jp/
4. 雑感
---
Squid3 は、特になにもしなくても IPv6 が使えて便利。
設定ファイルを見ると、IPv6用の設定もあれこれできるようになってる。
以下の項目とか便利そう。
# dns_v4_fallback on
# dns_v4_first off
ってことで、ウェブアクセスのIPv6化も、
今の時代はそんなに難しくないでござるよ。
もっとIPv6に親しんで、World IPv6 Launch に参加しましょ。
今は日本企業少なすぎ。--> [2012-05-12-2]
さくらでは 6rd を提供してるので IPv6 アドレスをさくっと付けられる。
さくらの6rd(トライアル)
http://research.sakura.ad.jp/6rd-trial/
Ubuntu 12.04 の場合も Ubuntu 10.10 の設定と同じようにできる。
6rd設定方法(Ubuntu10.10編)
http://research.sakura.ad.jp/6rd-trial/6rd-trial-ubuntu1010/
まずアドレスの計算。
% printf "2001:e41:%02x%02x:%02x%02x::1\n" 49 212 151 165
2001:e41:31d4:97a5::1
6rdインターフェイスの作成。
設定ファイルに追記。
sudo vi /etc/network/interfaces
以下を追加
↓↓↓
# 6rd
auto tun6rd
iface tun6rd inet6 v4tunnel
address 2001:e41:31d4:97a5::1
netmask 32
local 49.212.151.165
endpoint any
gateway ::61.211.224.125
ttl 64
up ip tunnel 6rd dev tun6rd 6rd-prefix 2001:e41::/32
up ip link set mtu 1280 dev tun6rd
サーバ再起動。
% sudo reboot
インターフェイスが付いてることを確認
% ifconfig tun6rd
tun6rd Link encap:IPv6-in-IPv4
inet6 addr: ::49.212.151.165/128 Scope:Compat
inet6 addr: 2001:e41:31d4:97a5::1/32 Scope:Global
UP RUNNING NOARP MTU:1280 Metric:1
RX packets:49 errors:0 dropped:0 overruns:0 frame:0
TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:18640 (18.6 KB) TX bytes:5132 (5.1 KB)
ping6 とか打ってみる。
% ping6 ipv6-test.net
PING ipv6-test.net(2607:f128:42:73::2) 56 data bytes
64 bytes from 2607:f128:42:73::2: icmp_seq=1 ttl=52 time=206 ms
64 bytes from 2607:f128:42:73::2: icmp_seq=2 ttl=52 time=206 ms
AAAA も付けてみる。
DNSのコントロールパネルから追加。
dig で確認。
% dig -t AAAA www.pochi.cc
...
www.pochi.cc. 3600 IN AAAA 2001:e41:31d4:97a5::1
IPv6でアクセスしてみるよ。
% w3m -6 http://www.pochi.cc/~sasaki/chalow/
IPv6でアクセスできるなら、World IPv6 Launch に参加しとくのがマナーよね。
World IPv6 Launch の日本語の説明
http://test-ipv6.jp/ipv6launch.html
ここから辿って、Website Operators 向けのとこ↓からJOIN。
http://www.worldipv6launch.org/form/?q=1
入力項目は以下にしといた
Name --> 個人名でいいのかな?まあフルネーム書いたった。
Country --> Japan
E-mail --> いつも使ってるの
URL --> http://www.pochi.cc/
IPv6 information page --> 空で
Submit するとメールが届くのでそのメールに書かれたURLをクリックするして登録完了。
World IPv6 Launch のロゴもはっておこー♪。
さくらのVPSのアフェリエイトタグも貼っておこー♪。
何もしなくてもIPv6が付く、DTIのVPSのアフェリエイトタグもついでに。