<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Carpe Diem</title>
	<atom:link href="http://www.sssg.org/blogs/naoya/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sssg.org/blogs/naoya</link>
	<description>Who knows hacker is?</description>
	<lastBuildDate>Thu, 04 Feb 2010 15:12:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>sudos</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1683</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1683#comments</comments>
		<pubDate>Wed, 03 Feb 2010 14:44:12 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[sudo]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1683</guid>
		<description><![CDATA[本番サーバ上で、sudo コマンド経由でスーパーユーザ権限で実行することはよくあります。
sudo コマンドはなくてはならないコマンドですが、同時に危険なコマンドでもあります。
今まで、ずっとデフォルトの sudo の設 [...]]]></description>
			<content:encoded><![CDATA[<p>本番サーバ上で、sudo コマンド経由でスーパーユーザ権限で実行することはよくあります。</p>
<p>sudo コマンドはなくてはならないコマンドですが、同時に危険なコマンドでもあります。</p>
<p>今まで、ずっとデフォルトの sudo の設定で使っていたのですが、改めて設定を見直してみました。</p>
<p>sudo の<a href="http://www.gratisoft.us/sudo/">公式ページ</a>をみてみると、頻繁にバージョンアップされているのがよく分かります。/etc/sudoers の設定方法も詳しいドキュメントがあっていい感じです。</p>
<p>次の2点ほど設定を見直しました。</p>
<ul>
<li>デフォルトのパスワードのキャッシュ時間を 0 にする</li>
<li>パスワードプロンプトにホスト名を表示する</li>
</ul>
<p>まず、最初の設定はデフォルトだと 5 分間、パスワードがキャッシュされます。そうすると、連続で sudo コマンドを実行するとき、パスワードを聞かれないためオペミスを起こしてしまう可能性が高まります。そこで、キャッシュ時間を 0 にすることにより、必ず毎回パスワードを聞くように設定します。この設定は、visudo コマンドを使って、次の行を追加します。</p>
<blockquote><p>Defaults timestamp_timeout = 0</p></blockquote>
<p>次にパスワードを聞かれるときのプロンプトにホスト名を表示して、念のためどのホストで sudo を実行しようとしているのか表示します。次の行を追加します。</p>
<blockquote><p>Defaults passprompt = &#8220;%u@%h Password: &#8220;</p></blockquote>
<p>この設定をすると、例えば hoge というユーザ名で、s1 というホスト名の場合、次のようなパスワードプロンプトになります。</p>
<blockquote><p>hoge@s1 Password:</p></blockquote>
<p>デフォルトのパスワードプロンプトに比べると、かなり分かりやすい表示になりました。</p>
<p>最新版の sudo バージョン 1.7.1 以降からは、次のような構文で別の設定ファイルも読み込めるようになっています。</p>
<p>これを使えば、ホストごとに異なった設定も管理しやすくなります。ただし、CentOS の場合、バージョン 1.6.8 なので対応していません。すこしはまってしまいました。。。</p>
<blockquote><p><tt>#includedir /etc/sudoers.d/hoge<br />
</tt></p></blockquote>
<p>最新版の sudo に入れ替えようと思いましたが、今のところそれほど困っていないので最新版は使っていません。</p>
<p>普段何気なく使っている sudo。もちろん、なるべく本番サーバ上では使わないのが賢明ですが、メンテナンスのときなど使う機会があるので、なるべくオペミスのリスクを減らしたいものです。</p>
<p>さらに、僕は sudo を<a href="http://www.sssg.org/blogs/naoya/archives/1443">コマンド補完履歴</a>に追加しないようにしています。</p>
<p># 2/5 追記</p>
<p>ちなみに、sudo のパスワードキャッシュをクリアするときは sudo -k あるいは -K オプションで行います。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1683/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>サーバの消費電力 -NEC サーバ編-</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1678</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1678#comments</comments>
		<pubDate>Wed, 27 Jan 2010 11:17:29 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1678</guid>
		<description><![CDATA[いつも、DELL サーバばかりのエントリばかりだったので、今回は久しぶりに違う内容をエントリします。
NEC サーバの 1U サーバの NEC Express 5800 シリーズの 2 種類の消費電力を測定する機会があっ [...]]]></description>
			<content:encoded><![CDATA[<p>いつも、DELL サーバばかりのエントリばかりだったので、今回は久しぶりに違う内容をエントリします。</p>
<p>NEC サーバの 1U サーバの <a href="http://www.nec.co.jp/products/pcserver/rack/lineup.shtml">NEC Express 5800 シリーズ</a>の 2 種類の消費電力を測定する機会があったので、計測結果を紹介します。</p>
<p>計測方法は、<a href="http://www.sssg.org/blogs/naoya/archives/1576">前回</a>の DELL サーバのときと同じクランプメーターで測定しました。</p>
<blockquote><p><img class="alignnone" title="NEC Express 5800" src="http://www.nec.co.jp/products/pcserver/rack/images/rack_pic_10.jpg" alt="" width="108" height="81" /></p></blockquote>
<blockquote><p><a href="http://www.nec.co.jp/products/pcserver/rack/r120a1/index.shtml"><strong>NEC Express 5800/R120a-1</strong></a></p>
<ul>
<li>CPU: Intel Xeon X5570 2.93GHz x 2</li>
<li>Memory: 32GB</li>
<li>HDD: Seagate Savvio ST973452SSS SAS 60GB x 6 (ハードウェア RAID 0)</li>
<li>Power: 冗長電源付き(2系統に電源が入っている場合、方側の電源を抜くともう片側に2倍の電力がかかる)</li>
<li>消費電力 idle: 0.86A</li>
<li>消費電力 max: 1.74A</li>
</ul>
<p><strong>NEC Express 5800/120Rh-1</strong></p>
<ul>
<li>CPU: Intel Xeon E5420 x 1</li>
<li>Memory: 8GB</li>
<li>HDD: Western Digital SATA 160GB x 1</li>
<li>Power: 冗長電源なし</li>
<li>消費電力 idle: 1.76A</li>
<li>消費電力 max: 2.10A</li>
</ul>
</blockquote>
<p>Xeon E5420 は、<a href="http://www.intel.co.jp/p/ja_JP/products/server/processor/xeon5000/specifications">Intel のホームページ</a>を見ると 80w ですが、かなり消費電力が高いのが、特徴的でした。</p>
<p>サーバ本体の価格、消費電力、どちらをとるのか、サーバの用途によって決めていくのが重要だと思う今日この頃です。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1678/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DELL スイッチでサービスタグを確認する方法</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1676</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1676#comments</comments>
		<pubDate>Tue, 26 Jan 2010 14:46:46 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[dell]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1676</guid>
		<description><![CDATA[前回に引き続き、今回は DELL スイッチでサービスタグを確認する方法です。DELL スイッチのサービスタグは、背面にあるため一度ラックにマウントしてしまうと、サービスタグを確認するのがかなりめんどうです。
DELL ス [...]]]></description>
			<content:encoded><![CDATA[<p>前回に引き続き、今回は DELL スイッチでサービスタグを確認する方法です。DELL スイッチのサービスタグは、背面にあるため一度ラックにマウントしてしまうと、サービスタグを確認するのがかなりめんどうです。</p>
<p>DELL スイッチには、いくつか種類がありますが、PowerConnect 54XX より上位のモデルは、<a href="http://supportapj.dell.com/support/edocs/network/54xx/ja/ug/config.htm">telnet 接続してスイッチの設定をする機能</a>があるので、telnet 接続することでサービスタグを確認することができます。</p>
<p>例えば、switch1.example.com というスイッチがあった場合には、次のように設定します。</p>
<blockquote><p>$ telnet switch1.example.com</p>
<p>User name: admin</p>
<p>Passowrd: スイッチの管理パスワード</p>
<p>switch1.example.com# show system</p>
<p>System Description:                                        PowerConnect 5448<br />
System Up Time (days,hour:min:sec):       237,08:32:02<br />
System Contact:<br />
System Name:                                                 switch1.example.com<br />
System Location:<br />
System MAC Address:                                  XX:XX:XX:XX:XX:XX<br />
System Object ID:                                         1.3.6.1.4.1.674.10895.1234<br />
Type:                                                               Ethernet Switch<br />
Asset tag:<br />
Service tag:                                                    1234567</p>
<p>Main Power Supply Status:    OK<br />
Fan 1 Status:                             OK<br />
Fan 2 Status:                             OK<br />
Fan 3 Status:                             OK</p>
<p>Unit            Temperature (Celsius)            Status<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
1                        52                       OK</p></blockquote>
<p>上の出力にある Service  tag: という欄で、DELL スイッチのサービスタグを確認することができます。あわせて、スイッチの電源状態、ファンの状態、などもチェックすることができるので、とても便利です。時間があいたときにでも、スイッチの状態を確認する Nagios プラグインでも書いてみようかと思います。</p>
<p>なお、もっとも安価な <a href="http://www1.jp.dell.com/jp/ja/business/networking/switch-powerconnect-28xx/ct.aspx?refid=switch-powerconnect-28xx&amp;s=bsd&amp;cs=jpbsd1">PowerConnect 28xx シリーズ</a>には、その機能がないので注意してください。ただし、ウェブの管理画面があるので、そこから確認することができます。</p>
<p>ちなみに、DELL スイッチにはエクスプレスコードはありません。サービスタグのみで、問い合わせすることが可能です。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1676/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DELL サーバー Tips</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1668</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1668#comments</comments>
		<pubDate>Sat, 23 Jan 2010 02:13:24 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[dell]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1668</guid>
		<description><![CDATA[今日は、DELL サーバーの Tips を一つ紹介したいと思います。DELL サーバには、サポートに問い合わせるときのために、筐体ごとにサービスタグとエクスプレスコードという ID が割り当てられています。
この ID  [...]]]></description>
			<content:encoded><![CDATA[<p>今日は、DELL サーバーの Tips を一つ紹介したいと思います。DELL サーバには、サポートに問い合わせるときのために、筐体ごとに<a href="http://supportapj.dell.com/support/topics/topic.aspx/jp/shared/support/jp/identifyyoursystem?c=jp&amp;cs=RC1078554&amp;l=ja&amp;s=gen">サービスタグ</a>と<a href="http://supportapj.dell.com/support/topics/topic.aspx/jp/shared/support/jp/identifyyoursystem?c=jp&amp;cs=RC1078554&amp;l=ja&amp;s=gen#ExpressServiceCode">エクスプレスコード</a>という ID が割り当てられています。</p>
<p>この ID は、1u サーバだと筐体の正面にシールで張り付けされています。R410 などのちょっとよい 1U サーバの場合、正面の LCD にもスクロールされて標準されています。</p>
<blockquote><p>RX1Xの場合: <a href="http://www.dell-faq.com/detail.asp?baID=1&amp;FAQID=198241">www.dell-faq.com -Q&amp;A検索- FAQ詳細</a></p>
<p><img class="aligncenter" title="DELL Server LCD" src="http://www.dell-faq.com/image/198241Resized_710_closeup_final.jpg" alt="" width="450" height="350" /></p></blockquote>
<p>何らかの問い合わせがあるとき、このサービスタグとエクスプレスコードを確認する必要がありますが、いちいち筐体の前に行って確認するのはめんどうです。</p>
<p>DELL から、このサービスタグとエクスプレスコードを確認するための RHEL 用のコマンドが配布されているので、これを利用すると便利です。</p>
<p>まず、<a href="http://linux.dell.com/libsmbios/main/yum.html">DELL 非公式の yum リポジトリ</a>を追加します。</p>
<blockquote><p>$ wget -q -O &#8211; http://linux.dell.com/repo/community/bootstrap.cgi | sudo bash</p></blockquote>
<p><a href="http://linux.dell.com/repo/community/bootstrap.cgi">bootstrap.cgi</a> は、ソースコードをみて分かるとおり、CentOS もしっかりサポートされています。上のコマンドを実行すると、DELL 非公式の yum リポジトリが追加されますので、あとはプログラムをインストールします。</p>
<blockquote><p>$ sudo yum install libsmbios-bin</p></blockquote>
<p>そうすると、<a href="http://linux.dell.com/libsmbios/main/getSystemId.html">/usr/sbin/getSystemId</a> というコマンドを python で書かれたコマンドラインツールがインストールされます。次のように、このコマンドを使うと簡単にサービスタグとエクスプレスコードを確認することができます。</p>
<blockquote><p>$ sudo /usr/sbin/getSystemId</p>
<p>Libsmbios version:        2.2.17<br />
Product Name:               PowerEdge R300<br />
Vendor:                            Dell Inc.<br />
BIOS Version:                 1.2.0<br />
System ID:                       0&#215;0123<br />
Service Tag:                     1234567<br />
Express Service Code:   1234567890<br />
Asset Tag:<br />
Property Ownership Tag:</p></blockquote>
<p>&#8211;help すると詳しいコマンドの使い方が分かりますが、例えばサービスタグだけ取得したいときは、次のように実行します。</p>
<blockquote><p>$ sudo /usr/sbin/getSystemId &#8211;service-tag</p></blockquote>
<p>これを応用すれば、サービスタグとエクスプレスコード用のカスタム facter も書けますし、資産管理のときにもまとめて集められるので、とても便利です。</p>
<p>僕の場合は、管理している本番サーバ上で getSystemId を使ってすべてのサービスタグとエクスプレスコードを集めて、社内 wiki に一覧としてまとめてあります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1668/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>それでも私が CentOS を使いつづける理由また、Why I still use CentOS? 的な。</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1666</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1666#comments</comments>
		<pubDate>Wed, 20 Jan 2010 15:06:41 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[centos]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1666</guid>
		<description><![CDATA[元ネタ: 漢(オトコ)のコンピュータ道: それでも私が MySQL を使いつづける理由または、Why I still use MySQL? 的な。
同じくノリが楽しそうだったので CentOS で便乗してみました。
Fa [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>元ネタ: <a href="http://nippondanji.blogspot.com/2010/01/mysql-why-i-still-use-mysql.html">漢(オトコ)のコンピュータ道: それでも私が MySQL を使いつづける理由または、Why I still use MySQL? 的な。</a></p></blockquote>
<p>同じくノリが楽しそうだったので CentOS で便乗してみました。</p>
<p><strong>Fast Enough</strong></p>
<blockquote><p>正直なところ、特に速いと思ったことはあまりない。</p></blockquote>
<p><strong> Stable</strong></p>
<blockquote><p>商用版をベースにしているため、安定している。ちゃんと対応しているプログラムが多い。</p>
<p>バージョンアップが枯れ過ぎているので、かなり安定している。</p></blockquote>
<p><strong>Easy to install</strong></p>
<blockquote><p>Live CD ですぐに試せたり、インストール CD を使えば、すぐに分かりやすいグラフィカルなインストーラでインストールすることができる。インストール CD をダウンロードするのがめんどうだという人向けにネットワークインストール用のインストールイメージも用意されている。</p>
<p>Gnome/KDE や仮想環境 (KVM) やクラスタリング環境がすぐにセットアップできるのが便利。</p>
<p>さらにインストール後に、root ユーザのホームディレクトリに生成される kickstart ファイルを使えば、同じ設定で何度もインストールすることが可能なところも魅力である。</p></blockquote>
<p><strong>CentOS have enough users.</strong></p>
<blockquote><p>RHEL のユーザを含めば、恐らく Linux ディストリビューションのユーザ規模では最大規模になると思う。そのため、日本語の書籍やインターネット上の情報が豊富である。</p></blockquote>
<p><strong>まとめ</strong></p>
<blockquote><p>以上に述べた点に比べると、<a href="http://slashdot.jp/linux/article.pl?sid=09/07/31/0419240">プロジェクトが崩壊の危機にあった</a>とか、Linux Kernel のバージョンが 2.6.18 云々とかは些事にすぎない。</p></blockquote>
<div class="amazlet-box" style="margin-bottom: 0px;">
<div class="amazlet-image" style="float: left;"><a name="amazletlink" href="http://www.amazon.co.jp/exec/obidos/ASIN/4839933367/du00-22/ref=nosim/" target="_blank"><img style="border: none;" src="http://ecx.images-amazon.com/images/I/51jRUqFHmzL._SL160_.jpg" alt="改訂第二版 CentOSサーバ構築バイブル" /></a></div>
<div class="amazlet-info" style="float: left; margin-left: 15px; line-height: 120%;">
<div class="amazlet-name" style="margin-bottom: 10px; line-height: 120%;"><a name="amazletlink" href="http://www.amazon.co.jp/exec/obidos/ASIN/4839933367/du00-22/ref=nosim/" target="_blank">改訂第二版 CentOSサーバ構築バイブル</a></p>
<div class="amazlet-powered-date" style="font-size: 7pt; margin-top: 5px; font-family: verdana; line-height: 120%;">posted with <a title="改訂第二版 CentOSサーバ構築バイブル" href="http://www.amazlet.com/browse/ASIN/4839933367/du00-22/ref=nosim/" target="_blank">amazlet</a> at 10.01.20</div>
</div>
<div class="amazlet-detail">平 初 伊藤 幸夫 上鍵 忠志 中澤 直也 面 和毅 館林 綾ノ介 高安 洋輝 宇野 素史 坂井 恵<br />
毎日コミュニケーションズ<br />
売り上げランキング: 55121</div>
<div class="amazlet-link" style="margin-top: 5px;"><a name="amazletlink" href="http://www.amazon.co.jp/exec/obidos/ASIN/4839933367/du00-22/ref=nosim/" target="_blank">Amazon.co.jp で詳細を見る</a></div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1666/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>美しいデータセンター</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1661</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1661#comments</comments>
		<pubDate>Fri, 15 Jan 2010 16:08:24 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[datacenter]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1661</guid>
		<description><![CDATA[ふと海外のデータセンターに関する情報を調査していたとき、Beautiful Web Hosting Datacenter Images &#124; UnixNewbie.org という記事に、各データセンターの美しい様子が紹介さ [...]]]></description>
			<content:encoded><![CDATA[<p>ふと海外のデータセンターに関する情報を調査していたとき、<a href="http://www.unixnewbie.org/beautiful-web-hosting-datacenter-images/">Beautiful Web Hosting Datacenter Images | UnixNewbie.org </a>という記事に、各データセンターの美しい様子が紹介されていました。</p>
<p>せっかくなので、その写真の一部を紹介します。大きな写真は、元記事から見てください。</p>
<p>まずは、日立のグリーンデータセンター。これは、実物ではなく構想上の写真のみです。</p>
<p><img class="aligncenter" title="Hitach Green DC 1" src="http://unixnewbie.org/images/datacenter/small/1.png" alt="" width="195" height="138" /><img class="aligncenter" title="Hitach DC 2" src="http://unixnewbie.org/images/datacenter/small/5.png" alt="" width="195" height="149" /></p>
<p>次に Facebook のデータセンター。これは貴重な写真だと思います。ネットワークのケーブリングまわりも要チェックです。サーバ一台あたりに、2本から3本くらいのケーブルが接続されているのが分かりますね。おそらく冗長化目的というより、ネットワークを分離しているような気がします。</p>
<p><img class="aligncenter" title="Facebook DC1" src="http://unixnewbie.org/images/datacenter/small/7.png" alt="" width="195" height="115" /><img class="aligncenter" title="Facebook DC2" src="http://unixnewbie.org/images/datacenter/small/9.png" alt="" width="195" height="115" /></p>
<p>そして、昨年大きな話題になった Google。Google サーバのケーブルは、各サーバに一本ずつです。シンプルな構成で、かなり割り切った構想のようです。</p>
<p><img class="aligncenter" title="Google DC1" src="http://unixnewbie.org/images/datacenter/small/google2.png" alt="" width="195" height="115" /><img class="aligncenter" title="Google DC2" src="http://unixnewbie.org/images/datacenter/small/google5.png" alt="" width="195" height="115" /></p>
<p>そして、Microsoft のデータセンター。</p>
<p><img class="aligncenter" title="Microsoft DC1" src="http://unixnewbie.org/images/datacenter/small/microsoft3.png" alt="" width="195" height="133" /></p>
<p>Planet  データセンター。DELL サーバだらけです。よくこれで1ラックに詰め込むができますね。ラックの上部にスイッチを配置しているのが新鮮です。</p>
<p><img class="aligncenter" title="Planet DC1" src="http://unixnewbie.org/images/datacenter/small/theplanet6.png" alt="" width="195" height="149" /></p>
<p>美しいネットワークのケーブリング。</p>
<p><img class="aligncenter" title="Network Cable 1" src="http://unixnewbie.org/images/datacenter/small/beautiful5.png" alt="" width="195" height="150" />次のケーブリングは、僕の方式とかなり近いです。</p>
<p><img class="aligncenter" title="Network Cable 2" src="http://unixnewbie.org/images/datacenter/small/beautiful21.png" alt="" width="145" height="211" />次のようなスパゲッティな状態も、別の意味で美しいです。</p>
<p><img class="aligncenter" title="Network Cable 3" src="http://unixnewbie.org/images/datacenter/small/beautiful12.png" alt="" width="195" height="150" /></p>
<p>一度、Facebook か Google か Amazon の巨大データセンターを見てみたいものですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1661/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hadoop で syslog 経由でログを出力する方法</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1659</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1659#comments</comments>
		<pubDate>Wed, 13 Jan 2010 13:11:29 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[hadoop]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1659</guid>
		<description><![CDATA[Hadoop を使いはじめたのですが、Hadoop で出力されるログを syslog 経由で出力するように設定してみました。最初は、log4j.properties だけ書き換えればよいかと思ったのですが、これだけでは  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="&lt;a href=&quot;http://hadoop.apache.org/&quot;&gt;Welcome to Apache Hadoop!&lt;/a&gt;">Hadoop</a> を使いはじめたのですが、Hadoop で出力されるログを syslog 経由で出力するように設定してみました。最初は、log4j.properties だけ書き換えればよいかと思ったのですが、これだけでは syslog 経由でログを出力できませんでした。</p>
<p>Hadoop は、<a href="http://archive.cloudera.com/docs/cdh.html">CDH のバージョン 0.18.3</a> を使っています。</p>
<p>まず、/usr/lib/hadoop/bin/hadoop-daemon.sh で、log4j の logger 環境変数を使えるように次のように変更します。次のパッチでは、念のためローカルのログファイル名も変更できるようにしてあります。</p>
<blockquote><p>/usr/lib/hadoop/bin/hadoop-daemon.sh<br />
28a29,30&gt; #   HADOOP_LOGFILE  The log file name. Default is hadoop-$HADOOP_IDENT_STRING-$command-$HOSTNAME.log<br />
&gt; #   HADOOP_ROOT_LOGGER   The root appender. Default is INFO,console<br />
84a87,94<br />
&gt; # log configuration<br />
&gt; if [ "$HADOOP_LOGFILE" = "" ]; then<br />
&gt;   export HADOOP_LOGFILE=hadoop-$HADOOP_IDENT_STRING-$command-$HOSTNAME.log<br />
&gt; fi<br />
&gt; if [ "$HADOOP_ROOT_LOGGER" = "" ]; then<br />
&gt;   export HADOOP_ROOT_LOGGER=&#8221;INFO,DRFA&#8221;<br />
&gt; fi<br />
&gt;<br />
86,87d95&lt; export HADOOP_LOGFILE=hadoop-$HADOOP_IDENT_STRING-$command-$HOSTNAME.log<br />
&lt; export HADOOP_ROOT_LOGGER=&#8221;INFO,DRFA&#8221;</p></blockquote>
<p>次に、/etc/hadoop/conf/hadooop-env.sh に、次のように追加します。</p>
<blockquote><p>export HADOOP_ROOT_LOGGER=&#8221;INFO,SYSLOG,DRFA&#8221;</p></blockquote>
<p>最後に、/etc/hadoop/conf/log4j.properties に syslog で出力するための log4j の appender を追加します。</p>
<blockquote><p>#<br />
# syslog<br />
#<br />
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender<br />
log4j.appender.SYSLOG.facility=local0<br />
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.SYSLOG.layout.ConversionPattern=%p %c{2}: %m%n<br />
log4j.appender.SYSLOG.SyslogHost=127.0.0.1<br />
log4j.appender.SYSLOG.threshold=INFO<br />
log4j.appender.SYSLOG.Header=true<br />
log4j.appender.SYSLOG.FacilityPrinting=true</p></blockquote>
<p>あとは、Hadoop を再起動すれば、127.0.0.1 のサーバに 514 番ポート、UDP、local0 ファシリティ、にて Hadoop のログが転送されます。どうやら、TCP にすることができないみたいです。</p>
<p>hadoop-daemon.sh の方は、本家でバージョン 0.21 で<a href="http://issues.apache.org/jira/browse/HADOOP-5787">対応予定</a>のようです。</p>
<p>参考資料</p>
<ul>
<li><a href="http://wiki.apache.org/hadoop/HowToConfigure">HowToConfigure &#8211; Hadoop Wiki</a></li>
<li><a href="http://mail-archives.apache.org/mod_mbox/hadoop-common-user/200908.mbox/%3C480D7E03-6E9F-4917-BE31-A82D2A42D9C8@cse.unl.edu%3E">Re: syslog-ng and hadoop</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1659/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>syslog-ng と rsyslog</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1653</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1653#comments</comments>
		<pubDate>Fri, 08 Jan 2010 12:44:58 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[syslog]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1653</guid>
		<description><![CDATA[そろそろ本格的に、CentOS な本番サーバを syslog-ng あるいは rsyslog に切替えようと、実際に試してみました。切替えたい目的は、必要なログは集中管理したいためです。今回は、本番環境でも使う Apac [...]]]></description>
			<content:encoded><![CDATA[<p>そろそろ本格的に、CentOS な本番サーバを <a href="http://www.balabit.com/network-security/syslog-ng/">syslog-ng</a> あるいは <a href="http://www.rsyslog.com/">rsyslog</a> に切替えようと、実際に試してみました。切替えたい目的は、必要なログは集中管理したいためです。今回は、本番環境でも使う Apache のアクセスログを他のサーバに転送するための設定方法だけ紹介します。</p>
<p>まずは、syslog-ng。</p>
<p>syslog-ng の<a href="http://www.balabit.com/network-security/syslog-ng/">本家サイト</a>をみると、次のような3種類のバージョンがあります。</p>
<ul>
<li><a href="http://www.balabit.com/network-security/syslog-ng/opensource-logging-system/">オープンソース版</a>: フリー、syslog-ng のオープンソースブランチ</li>
<li><a href="http://www.balabit.com/network-security/syslog-ng/central-syslog-server/">プレミアム版</a>: いくつかの追加機能をオリジナルのオープンソース版 syslog-ng からフォークした商用版</li>
<li><a href="http://www.balabit.com/network-security/syslog-ng/log-server-appliance/">ストアボックス版</a>: ログのライフサイクル管理の中央ログサーバアプライアンス</li>
</ul>
<p>次に CentOS では、バージョン 2.1.4 が EPEL のリポジトリから提供されています。本家サイトでは、次のバージョンが stable として提供されています。</p>
<ul>
<li>3.0.5 &#8211; 3.0.1</li>
<li>2.1.4 &#8211; 2.1.3</li>
<li>2.0.10</li>
</ul>
<p>EPEL で提供されているのは、2.1 系の最新版ということになります。最新版のバージョン 3 系の changelog は、<a href="http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/3.0.5/changelog-en.txt">ここ</a>で確認できます。おもな変更は、次の内容になります。</p>
<ul>
<li>IETF によって策定された新しい syslog プロトコルの標準に対応した、具体的な仕様は<a href="http://www.ietf.org/internet-drafts/draft-ietf-syslog-protocol-23.txt">ここ</a>と<a href="http://www.ietf.org/internet-drafts/draft-ietf-syslog-transport-tls-11.txt">ここ</a>を参照してください</li>
<li>Log ステートメントに他の複雑なログのパスを組み込むことができるようになった</li>
<li>元ファイルの文字コードを設定することが可能になった(内部的には、syslog-ng はすべてのメッセージを UTF-8 として記憶している)</li>
<li>syslog-ng のアプリケーションは、すべてのログメッセージに対してユニークなメッセージ識別子を付与できるようになった</li>
<li>syslog-ng のアプリケーションは、テンプレートや正規表現を使って構造化されたメッセージを読み込んだり、処理できたり、書き直すことができるようになった(例えば、Apache のウェブサーバログ)。フィールドサイズを変更することとデリミッターで区切られているフィールドの両方のメッセージをサポートした</li>
</ul>
<p>それほど大きな変更点はないようなので、EPEL で提供されているものを十分だと思われます。EPEL が利用できるなら、インストールは次のコマンドでできます。</p>
<blockquote><p>$ sudo yum install syslog-ng</p></blockquote>
<p>インストールすると、制御スクリプトが /etc/syslog-ng、設定ファイルが /etc/syslog-ng/syslog-ng.conf にインストールされます。</p>
<p>実際に使用する前に、syslog-ng のおもな特徴をまとめておきます。</p>
<ul>
<li>既存の syslog の設定ファイルと互換性がない(デフォルトでインストールされている設定ファイルがデフォルトの syslog の設定と同じになっています)</li>
<li>facility などで細かく出力するログの内容を設定することができる</li>
<li>出力するログファイル名に、日付などを設定することができる(これによりログローテート入らずになります)</li>
<li>UDP/TCP によって、任意のサーバへログ転送することができる(デフォルトのポートは、514)</li>
<li>facility、priority、ホスト名、アプリケーション名、などで自分のプログラムを起動することができる</li>
</ul>
<p>syslog-ng と rsyslog は、従来の syslog を置き換えるものなので、事前に syslog を必ず止めて起動しないようにしておきます。(さようなら syslog、今までありがとう syslog&#8230;)</p>
<blockquote><p>$ sudo /etc/init.d/syslog stop</p>
<p>$ sudo chkconfig syslog off</p></blockquote>
<p>今回は、Apache のアクセスログを syslog-ng と rsyslog でシスログ転送する方法をそれぞれ紹介します。</p>
<p>Apache のアクセスログは、パイプで logger コマンドを指定すると syslog へ出力することができます。</p>
<blockquote><p>CustomLog &#8220;|/usr/bin/logger -i -p local4.info -t httpd&#8221; combined</p></blockquote>
<p>syslog-ng の設定は、次の内容を /etc/syslog-ng/syslog-ng.conf に追加します。</p>
<blockquote><p>filter f_httpd {<br />
facility(local4) and level(info);<br />
};</p>
<p>destination d_httpd {<br />
file(&#8220;/var/log/syslog_httpd_access_log&#8221;);<br />
udp(&#8220;192.168.1.2&#8243;);<br />
};</p>
<p>log { source(s_sys); filter(f_httpd); destination(d_httpd); };</p></blockquote>
<p>上のように設定しておくと、/var/log/syslog_httpd_access_log にアクセスログが出力されて、かつ 192.168.1.2 のサーバにログを UDP で転送するという設定になります。</p>
<p>192.168.1.2 の syslog-ng の設定は、s_sys source のコメントをはずします。なお、UDP/TCP の 514 ポートが iptables でブロックされていないか確認しておきましょう。tcp にしたい場合には、udp を tcp に置き換えます。</p>
<blockquote><p>udp(ip(0.0.0.0) port(514));</p></blockquote>
<p>syslog-ng を起動する前に、設定ファイルに記述ミスがないかどうか調べてみます。</p>
<blockquote><p>$ sudo /etc/init.d/syslog-ng checkconfig</p>
<p>Checking Configuration:                                    [  OK  ]</p></blockquote>
<p>問題がなければ起動してみます。</p>
<blockquote><p>$ sudo /etc/init.d/syslog-ng start</p>
<p>Starting syslog-ng:                                        [  OK  ]</p></blockquote>
<p>これで、httpd へのアクセスログがローカルのディスクに出力されて、かつ 192.168.1.1 のサーバにも同じ内容が転送されてアクセスログとして出力されます。</p>
<p>syslog-ng の設定項目は、膨大なので<a href="http://www.balabit.com/support/documentation/?product=syslog-ng">公式ドキュメント</a>(PDF 形式)を参考にしたほうがよいと思います。</p>
<p>次に <a href="http://www.rsyslog.com/">rsyslog。</a></p>
<p>rsyslog は、CentOS の base リポジトリで、バージョン 2.0.6 が提供されています。rsyslog にも、いくつかのバージョンが stable として<a href="http://www.rsyslog.com/doc-status.html">提供</a>されています。<strong> </strong></p>
<ul>
<li><strong>v5 stable:</strong> 5.2.0 [2009-11-02] -  <a href="http://www.rsyslog.com/Article421.phtml">変更履歴</a> &#8211; <a href="http://www.rsyslog.com/Downloads-req-viewdownloaddetails-lid-184.phtml">ダウンロード</a></li>
<li><strong>v4 stable:</strong> 4.4.2 [2009-10-09] &#8211; <a href="http://www.rsyslog.com/Article409.phtml">変更履歴</a> &#8211; <a href="http://www.rsyslog.com/Downloads-req-viewdownloaddetails-lid-179.phtml">ダウンロード</a></li>
<li><strong>v3 stable:</strong> 3.22.1 [2009-07-02] &#8211; <a href="http://www.rsyslog.com/Article381.phtml">変更履歴</a> &#8211; <a href="http://www.rsyslog.com/Downloads-req-viewdownloaddetails-lid-163.phtml">ダウンロード</a></li>
<li>v2 stable: 2.0.7 [2009-04-14] &#8211; <a href="http://www.rsyslog.com/Article362.phtml">change log</a> &#8211; <a href="http://www.rsyslog.com/Downloads-req-viewdownloaddetails-lid-154.phtml">ダウンロード</a></li>
</ul>
<p>四系統もバージョンがあり、かなり複雑な印象をうけます。v2 と v3 では、互換性がないようで専用の互換モードが<a href="http://www.rsyslog.com/doc-v3compatibility.html">用意</a>されています。それぞれのバージョンでも互換モードが用意されています。v2 は、すでにサポートされていないので、v3 stable 以降を使うといいと思います。</p>
<p>ちなみに、Fedora では Fedora 8 から、syslog のかわりに rsyslog を<a href="http://www.rsyslog.com/Article144.phtml">採用</a>しています。最新版の Fedora 12 では、rsyslog のバージョンは 4.4.1 でした。</p>
<p>なので、v4 stable のバージョン 4.4.2 を使うのがよさそうです。このバージョンは、RPM では提供されていないので、Fedora プロジェクトのものを使って RPM を作成するといいと思います。Fedora プロジェクトのもので RPM を作成すると、sysklogd パッケージと /etc/logrotate.d/syslog がコンフリクトしてしまいますが、従来の /etc/logrotate.d/syslog の内容と同じもので rsyslog の RPM を作成すればコンフリクトを解消することができます。設定ファイル内のスペースとタグも区別するので、まったく同じ内容になるように作成してください(僕はここですこしはまりました&#8230;)。</p>
<p>rsyslog をインストールすると、制御スクリプトが /etc/init.d/rsyslog、設定ファイルが /etc/rsyslog.conf、にインストールされます。rsyslog.conf をみて分かるとおり、従来の syslog の設定ファイルとほぼ同じ内容になっています。</p>
<p>rsyslog のおもな特徴は、次のとおりです。これらの機能は、syslog-ng では提供されていない機能だと思われます。特に圧縮転送はうれしい機能の一つです。<a href="http://www.rsyslog.com/doc-property_replacer.html">マクロ</a>は、syslog-ng と同じようなものが提供されています。その他の詳しい機能は、<a href="http://www.rsyslog.com/doc-features.html">本家サイト</a>で確認してください。</p>
<ul>
<li>MySQLやPostgreSQLをモジュールなどで拡張することなく、ネイティブでサポート</li>
<li>libdbiを使用すれば、Firebird／Interbase／MS SQL／SQLLite／Oracleなどに対応可能</li>
<li>圧縮転送が可能</li>
<li>stunnelを使ったシスログのセキュアな転送が可能</li>
<li>シスログのディスク書き込みで、I/Oの処理が間に合わない場合など、スプールを使用することができる。特にバックエンドにデータベースを使用している場合に有効に機能する</li>
</ul>
<p>Apache のアクセスログを出力している側の rsyslog の設定は、次の内容を追加します。</p>
<blockquote><p>local4.info @@192.168.1.2</p></blockquote>
<p>たったこれだけです。@@ というのは、TCP でログを転送するという意味になります。UDP で転送したい場合は、@ と指定します。</p>
<p>syslog-ng と rsyslog、どちらも試してみましたが、どちらもほぼ同じ機能が提供されています。設定ファイルの書き方が、まったく違うので、どちらかを常用するべきか決めたほうがいいと思います。</p>
<p>僕の場合、CentOS であること、Fedora が rsyslog を標準採用したということで、RedHat もそろそろ標準採用しそうか感じがあるので、rsyslog を本番環境へ本格的に投入してみることしました。</p>
<p>rsyslog を本番環境へ投入するにあたりかなりはまったので、この内容は別にエントリする予定です。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1653/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>年始めのご挨拶</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1651</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1651#comments</comments>
		<pubDate>Sun, 03 Jan 2010 12:41:52 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1651</guid>
		<description><![CDATA[いよいよ、2010 年が始まりました。今年も、特にインフラまわりのアウトプットを、このブログで行いたいと思います。
個人的な 2010 年のおおよその目標は元旦に決めましたが、今年はいろいろと自分の環境を変えていく年にな [...]]]></description>
			<content:encoded><![CDATA[<p>いよいよ、2010 年が始まりました。今年も、特にインフラまわりのアウトプットを、このブログで行いたいと思います。</p>
<p>個人的な 2010 年のおおよその目標は元旦に決めましたが、今年はいろいろと自分の環境を変えていく年になりそうです。</p>
<p>ということで、今年 2010 年も Carpe Diem をよろしくお願い致します。</p>
<p>&#8212;</p>
<p>Naoya Nakazawa</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1651/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art of モバゲー Capacity Planning</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1648</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1648#comments</comments>
		<pubDate>Thu, 31 Dec 2009 12:52:52 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1648</guid>
		<description><![CDATA[さて、2009 年も残すところ、あとわずかとなりましたが、今日はモバゲー版のキャパシティプランニングを考えてみましょう。モバゲー版は、まだ実際にはサードパーティ製のアプリが公開されていない状況だとは思いますが、開発サイト [...]]]></description>
			<content:encoded><![CDATA[<p>さて、2009 年も残すところ、あとわずかとなりましたが、今日はモバゲー版のキャパシティプランニングを考えてみましょう。モバゲー版は、まだ実際にはサードパーティ製のアプリが公開されていない状況だとは思いますが、<a href="http://developer.dena.jp/mbga/">開発サイト</a>が公開されています。モバゲー版も、mixi モバイルアプリ版と同様に、パートナー企業のみが開発できるようになっています。</p>
<p>まず、モバゲーの規模を知るために、 <a href="http://www.c-direct.ne.jp/public/japanese/uj/pdf/10110213/20091105179161.pdf">月次推移のご報告（平成21年10月度）</a>を見てみましょう。この資料から、2009 年 10 月時点での PV は、次のようになっています。</p>
<ul>
<li>会員数: 1527 万人</li>
<li>月間 PV: 約 238 億 PV</li>
<li>単純平均して、日間にすると約 8 億 pV、秒間にすると約 9,259 PVになります</li>
</ul>
<p>次に、モバゲーの成長速度を計るため、<a href="http://www.c-direct.ne.jp/public/japanese/uj/pdf/10110213/20090903176869.pdf">月次推移のご報告（平成21年8月度）</a>を見てみましょう。この資料から、2009 年 8 月時点での PV は、次のようになっています。</p>
<ul>
<li>会員数: 1220 万人</li>
<li>月間 PV: 約 198 億 PV</li>
<li>単純平均して、日間にすると約 6.6 億 PV、秒間にすると約 7,638 PVになります</li>
</ul>
<p>そうすると、2009 年 10 月から三ヶ月前経過した 2010 年 1 月には、最低でも次の数字になっていると推測されます。</p>
<ul>
<li>会員数: 1800 万人</li>
<li>月間 PV: 約 280 億 PV</li>
<li>単純平均して、日間にすると約 9.3億 PV、秒間にすると約 10,802 pv になります</li>
</ul>
<p>さすがは、モバゲーというだけあって、mixi のモバイル版よりはかなり規模が大きいです。</p>
<p>モバゲーの場合も夜の時間帯に約 3 倍のリクエストがあるとなると、モバゲー本体で秒間あたり約 3 万 PV になります。</p>
<p>モバゲーアプリはまだ公開されていないので、モバゲーの会員数のうちいったいどのくらいのユーザがモバゲーアプリが使うかは分かりませんが、すべての会員がアプリを使うことは当り前ですがありません。</p>
<p>おそらく、約 2 割のユーザが使って、アクセスが集中する時間帯で約 3 倍になると仮定すると、おおよそ次のくらいの規模になりそうです。</p>
<ul>
<li>会員数: 約 350 万人</li>
<li>月間 PV: 約 60 億 PV</li>
<li>日間 PV: 約 2 億 PV</li>
<li>秒間最大 PV: 約 6,000 PV</li>
</ul>
<p>モバゲーも mixi 版と同様にかなりの規模になることが分かりました。</p>
<p>いよいよ今年から、日本でも OpenSocial 対応を表明していたサイトが続々と実際にそれぞれのプラットフォームを公開してきました。OpenSocial 対応のアプリを開発しているのは、前でもエントリしたとおりいわゆるベンチャー企業が多いので、これだけの大きなトラフィックをいかに低コストでかつ確実にさばけるかがアプリの成功の鍵を握っていると思います。</p>
<p>個人的には、このような大きなトラフィックをさばくということに、とても大きな関心と興味があるので、来年はさらにもうすこし踏み込んでいかにして低コストでかつ確実にさばくか考えていきたいと思います。</p>
<p>それでは、よい年をおむかえください!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1648/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art of Mixi-mobile-appli Capacity Planning</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1645</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1645#comments</comments>
		<pubDate>Sat, 26 Dec 2009 15:04:40 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[mixi]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1645</guid>
		<description><![CDATA[2009年も残すところあと僅かになりました。今年のネット業界にはたくさんのことが起きましたが、国内でもっともインパクトがあったのは日本最大の SNS サイト mixi がついに OpenSocial 対応になったことだと [...]]]></description>
			<content:encoded><![CDATA[<p>2009年も残すところあと僅かになりました。今年のネット業界にはたくさんのことが起きましたが、国内でもっともインパクトがあったのは日本最大の SNS サイト <a href="http://mixi.jp">mixi</a> がついに <a href="http://developer.mixi.co.jp/appli">OpenSocial 対応</a>になったことだと思います。</p>
<p>今日現在、PC 版とモバイル版の2種類が提供されており、<a href="http://mixi.co.jp/press/2009/0824/1882">PC 版</a>は企業と個人、<a href="http://mixi.co.jp/press/2009/1027/2137">モバイル版</a>は企業のパートナー契約を結んだ会社のみ開発して公開できるようになっています。</p>
<p>さて、mixi のモバイル版が公開された直後は、アクセス殺到にて軒並みモバイル版のアプリケーションを提供しているパートナー企業のサーバに大きな負荷がかかって、<a href="http://www.itmedia.co.jp/news/articles/0910/29/news045.html">ほとんどの mixi のモバイルアプリが使えない状況になった</a>のは記憶に新しいです。3日で約60万人ユーザも集める人気アプリも数多く登場した様子です。</p>
<p>今日は、もし仮に僕が 2010年1月1日に mixi モバイル版アプリを提供することになったことを想定して、インフラ面からどのくらいのアクセスをさばくことができれば問題がないかどうか調べてみました。</p>
<p>まず、そのために mixi の規模感を知るために、mixi から提供されている <a href="http://eir.eol.co.jp/EIR/View.aspx?template=announcement&amp;sid=3768&amp;code=2121">2009年度第2四半期 決算説明資料</a> を参考にしてみると、次の数字が分かります。</p>
<ul>
<li>ユーザ数: 1792 万人</li>
<li>モバイル版月間 PV: 114.4 億 PV</li>
</ul>
<p>とても大規模な環境です。</p>
<p>そして、先月のニュースで「<a href="http://www.itmedia.co.jp/news/articles/0911/26/news038.html">mixi利用時間急増、Yahoo！に次ぐ2位に　mixiアプリ効果 &#8211; ITmedia News</a>」というものがありました。このニュースによれば、利用時間が2倍になって、ユニークユーザ数がそれほど変わっていないことが分かります。</p>
<p>mixi のユーザ数、モバイル版の PV の伸び率を調べるために、<a href="http://eir.eol.co.jp/EIR/View.aspx?template=announcement&amp;sid=3732&amp;code=2121">2009年度第1四半期 決算説明資料</a>をみてみると、次の数字が分かります。</p>
<ul>
<li>ユーザ数: 1741 万人</li>
<li>モバイル版月間 PV: 109.9 億 PV</li>
</ul>
<p>この数字から、四半期あたりの伸び率が次のように分かります。</p>
<ul>
<li>ユーザ数: +約50 万人</li>
<li>モバイル版月間 PV: +約5 億 PV</li>
</ul>
<p>これらの情報から、2010 年 1 月の mixi モバイル版本体は次のような規模感になります。さきほどのニュースからユーザ数はそのまま比例して増えていく、月間 PV は2倍で増えていくことを想定しています。</p>
<ul>
<li>ユーザ数: 約 1817 万人</li>
<li>モバイル版月間 PV:  約 120 億 PV</li>
</ul>
<p>mixi モバイルアプリなので、mixi モバイル版本体より月間 PV は増えないはずです(当り前ですが&#8230;)。</p>
<p>モバイル版月間 PV を、日/秒あたりの PV にすると、次のようになります。</p>
<ul>
<li>モバイル版日間 PV: 約 4 億 PV</li>
<li>モバイル版秒間 PV: 約 4,629 PV</li>
</ul>
<p>mixi のユーザが全員モバイル版アプリを利用することにはなりません。現在、モバイル版アプリで一番ユーザ数の多いアプリは<a href="http://app.wchr.jp/cgi-bin/mixi.cgi?mode=appli&amp;id=9513">まちつく！mixi版 (2,258,452)</a>で約 230 万人くらいになっています。そうすると、モバイル版アプリの利用者は、現時点で多くても約 1/9 くらいになります。</p>
<p>これらの情報から、mixi モバイル版アプリの場合、急激に人気になったことを想定すると、次のくらいの規模感になります。</p>
<ul>
<li>モバイル版日間 PV: 約 4,500 万 PV</li>
<li>モバイル版秒間 PV: 約 520 PV</li>
</ul>
<p>上の秒間は平均的な値です。mixi などのウェブアプリケーションは、必ずもっとも利用される時間帯があるはずです。おそらく、22時から24時あたりでないかと勝手に想像して、なんとなく直感で通常の3倍のリクエストが来ると想定すると、次のような規模感になります。</p>
<ul>
<li>モバイル版日間 PV: 約 4,500 万 PV</li>
<li>モバイル版秒間 PV: 約  1,500 PV</li>
</ul>
<p>この数字が、もっとも人気になった場合の数字になりそうです。mixi モバイル版アプリは、いわゆる人数の少ないベンチャー企業が開発しているのがほとんどなので、最初から上の規模感をさばける環境を準備するにはけっこうなコストがかかりそうです。とはいっても、上の数字はもっとも人気になった場合の数字なので、必ずしも最初から上の規模感をさばけるインフラを準備しておく必要はないはずですが、最高で上のぐらいの規模感になりそうだということがおおよ想像できます。もちろん、実際に公開してみないことには人気が出るのか出ないのか、どのくらいのリクエストが来るのかは分かりませんが、こうして mixi から提供されている情報やニュースなどでおおよその規模感を把握することができるので、とりあえずなんとなくすこしのインフラを準備して公開するよりはよっぽどましだと思います。</p>
<p>次は、同じようにモバゲーも調べてみたいと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1645/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自作サーバカンファレンスを振り返って</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1612</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1612#comments</comments>
		<pubDate>Tue, 22 Dec 2009 03:12:14 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[jisaku01]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1612</guid>
		<description><![CDATA[先月、自作サーバカンファレンスが開催されたので遊びにいってきました。自作サーバカンファレンスのレポートは、はてブで確認するといいと思います。また、動画も公開されているようなので、興味のある人はチェックするとよいと思います [...]]]></description>
			<content:encoded><![CDATA[<p>先月、<a href="http://atnd.org/events/2052">自作サーバカンファレンス</a>が開催されたので遊びにいってきました。自作サーバカンファレンスのレポートは、<a href="http://b.hatena.ne.jp/t/jisaku09">はてブで確認する</a>といいと思います。また、<a href="http://www.ustream.tv/rakuten_tech">動画も公開されている</a>ようなので、興味のある人はチェックするとよいと思います。</p>
<p>自分のサービスで、自作サーバを使うメリットとデメリットを考えてみました。</p>
<p>まずは、メリットは、<a href="http://d.hatena.ne.jp/stanaka/20091126/1259234976">id:stanaka さんのオープンニングキーノート</a>で述べられていますが、この点について考えてみます。</p>
<ul>
<li>自分のサービスにあった自分好みの自作サーバとしてカスタマイズできる</li>
<blockquote>
<li>この点についてはまさにそのとおりで、自作サーバをするうえでの最大のメリットであると言えるでしょう</li>
<li>たしかにベンダー製サーバは、BTO である程度、搭載部品を選択できても、無駄な部品が搭載されていることは確かなことです</li>
</blockquote>
<li>SSD を搭載して大胆な構成がとれる</li>
<blockquote>
<li>例えば最近 DELL でも SSD を搭載できるモデル（<a href="http://www1.jp.dell.com/jp/ja/business/servers/poweredge-r510/pd.aspx?refid=poweredge-r510&amp;cs=jpbsd1&amp;s=bsd">PowerEdge R510</a>）が登場してきているため、SSD だけでは自作サーバを使うメリットはなくなってきている状況だと思います</li>
</blockquote>
<li>複数の NIC、冗長電源、IPMI （一部のサーバには必要）は不要</li>
<blockquote>
<li>たしかにほとんどのサーバには複数の NIC は不要なケースが多いです</li>
<li>僕は DELL サーバをメインで使っていますが、たしかに NIC 4 つとか搭載されていても使っていませんし</li>
<li>冗長電源は、DELL の場合はカスタマイズでなしにすることができます</li>
<li>IPMI は個人的にはないと困る機能です、もしサーバに何らかのトラブルが発生してデータセンター現地にいって該当のサーバにディスプレイをつないで作業する工数と IPMI 経由で作業する工数を比べると、はるかに後者の工数のほうが少ないはずです</li>
</blockquote>
<li>コスト安</li>
<blockquote>
<li>はてなさんのウェブサーバスペックで、サーバ1台あたりの単価は8万円程度</li>
<li>それ以外に発生するコストとしては、サーバの部品調達と組み上げコストが発生します</li>
<li>さらに台数が増えることで管理コストが増大します、台数が増えてもある程度管理コストを増やさない仕組みが必要そうです</li>
</blockquote>
</ul>
<p>次に、デメリットを考えてみましょう。</p>
<ul>
<li>1台あたりのスペックが低い</li>
<blockquote>
<li>はてなさんのサーバスペックは、CPU Core2Duo 4core、8GB RAM(ECCなし)、ハードディスク x 1、のスペックで 1U ハーフ、消費電力は 1.1A くらいになっています</li>
<li>1U あたりで考えると、この2倍のスペックになりますが、この2倍のスペックになってやっと現在のベンダー製サーバと低標準スペックになりますし、消費電力は 2.2A になることを考えると若干消費電力が大きくなるといえます</li>
<li>自作サーバの場合は、ラックあたりに多くの自作サーバを詰め込む傾向になってきます</li>
</blockquote>
<li>自分達でトラブルを解決する必要がある</li>
<blockquote>
<li>ハードウェアの相性トラブルなどを自分達で解決できなければなりません</li>
<li>例えば DELL なら、無料電話サポートでエンジニアを派遣して解決してもらうこともできますし、部品(CPU やマザーボードなど)が壊れた場合は通常で3年間は無料で交換してくれます(部品は、都内だと5時間くらいで配達してくれます)</li>
</blockquote>
</ul>
<p>メリットとデメリットがあるので、あとはどちらを選択するのかが大事だと思う。</p>
<p>個人的には、自作サーバを導入するなら、次の環境が必須だと思った。</p>
<ul>
<li>インフラチームなる、サーバだけ見ている人たちがいる</li>
<li>自作サーバでのサービス運営を容認してくれる企業文化</li>
</ul>
<p>ということで、今の僕の環境は一人でアプリケーション開発とインフラを見ているので、インフラチームがないという点でとても不可能だと思った。</p>
<p>最後に、個人的に自作サーバを入れるところは、やっぱりストレージサーバかなと思う。ストレージサーバは、容量を増やすことでいっきに価格も変わってくるし、管理ツールはベンダー独自のものを使わなければならないという状況が多い様子だから。</p>
<p>いずれにしても、自作サーバだけではやっぱり無理な部分もあって、自作サーバとベンダー製サーバあるいはクラウド、要所要所でもっとも適したものを使っていくというが大事だと思う。</p>
<p>例えば、はてなさんはかなりベンダー製サーバとのコストも気にしている様子だったので、自作サーバだけに特化せずに大きな視点で物事を見ることも、とても大切だと思う。</p>
<p>僕は、ベンダー製サーバを選定して運用している経験しか今のところないので、これからも情報共有できるととても幸せだと思う。</p>
<p>かなり遅くなりましたが、個人的な自作サーバカンファレンスを振り返っての感想でした。サーバって、本当に奥が深いですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1612/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a More Efficient Ruby Interpreter</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1640</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1640#comments</comments>
		<pubDate>Mon, 21 Dec 2009 13:32:56 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1640</guid>
		<description><![CDATA[Ruby Enterprise Edition の中について、Google TechTalk で公開されています。

約36分ほどと、Google TechTalk の中では短い部類に入りますので、興味のある人はチェック [...]]]></description>
			<content:encoded><![CDATA[<p>Ruby Enterprise Edition の中について、Google TechTalk で公開されています。</p>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/ghLCtCwAKqQ&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ghLCtCwAKqQ&#038;fs=1" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>約36分ほどと、Google TechTalk の中では短い部類に入りますので、興味のある人はチェックしてみるとよいでしょう。</p>
<p># wordpress 2.9 では、YouTube などの動画サイトの URL を張り付けるだけで動画をブログに貼ることができるので、とても便利ですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1640/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>facter 一覧</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1636</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1636#comments</comments>
		<pubDate>Sun, 20 Dec 2009 15:25:15 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[facter]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1636</guid>
		<description><![CDATA[facter バージョン 1.5.7(現時点での最新版)で、ソースコードレベルから一覧をまとめてみます。
architecture: ハードウェアの種類です。hardwaremodel の値を利用して、ハードウェアの種類 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://reductivelabs.com/products/facter/">facter</a> バージョン 1.5.7(現時点での最新版)で、ソースコードレベルから一覧をまとめてみます。</p>
<blockquote><p>architecture: ハードウェアの種類です。hardwaremodel の値を利用して、ハードウェアの種類を取得します(i386 or x86_64 or amd64)</p>
<p>Cfkey: /usr/local/etc/cfkey.pub の値です(おそらく、CfEngine  のときに使われていた値だと思われます)</p>
<p>domain: ドメイン名です。hostname の値から取得しています。</p>
<p>ec2: EC2 のシンボル名(ID) です。</p>
<p>facterversion: Facter のバージョンです。</p>
<p>fqdn: FQDN(ホスト名.ドメイン名)です。</p>
<p>hardwareisa: プロセッサーの種類です。uname -p の出力です。</p>
<p>hardwaremodel: ハードウェアの種類です。uname -m の出力です。</p>
<p>hostname: ホスト名です。hostname コマンドの出力です。</p>
<p>id: id です。whoami コマンドの出力です。interfaces: NIC の種類です。eth0,eth1 のように取得できます。</p>
<p>ipaddress: ip アドレスです。ifconfig コマンドの出力から 127. で始まる以外の最初の IP アドレスを取得します。その他の IP アドレスは、「ipaddress_NIC」で取得できます。</p>
<p>iphostnumber: OSX のみ有効な値で、MAC アドレスを取得しているようですが具体的な値は不明です。</p>
<p>kernelmajversion: カーネルのメジャーバージョンです。例えば、「2.6」のような値になります。</p>
<p>kernel: カーネルの種類です。uname -s の出力です。</p>
<p>kernelrelease: カーネルのバージョン+リリース番号です。uname -r の出力です。</p>
<p>kernelversion: カーネルのバージョンです。kernelrelease の &#8211; の前の値を取得しています。</p>
<p>lsbmajdistrelease: ディストリビューションのメジャーバージョンです。</p>
<p>lsb: LSB(Linux Standard Base) の値です。</p>
<p>macaddress: MAC アドレスです。</p>
<p>macosx: Mac OS X のシステムプロファイラから取得できる値です。具体的な値は不明です。</p>
<p>manufacture: ハードウェアの製造業者です。dmidecode コマンドから Manufacturer: の値を取得しています。</p>
<p>memoryfree: メモリと空き容量です。</p>
<p>memorysize: メモリのサイズです。</p>
<p>netmask: サブネットマスク値です。各 NIC ごとのサブネットマスク値は「netmask_NIC」で取得できます。</p>
<p>network: ネットワークアドレスです。各 NIC ごとのネットワークアドレスは「network_NIC」で取得できます。</p>
<p>operatingsystem: オペレーティングシステムの種類です。/etc にオペレーティングシステムのリリース情報から判断しています。</p>
<p>operatingsystemrelease: オペレーティングシステムのバージョンです。</p>
<p>path: 環境変数 PATH の値です。</p>
<p>physicalprocessorcount: 物理的な CPU の数です。/proc/cpuinfo から算出しています。</p>
<p>processor: プロセッサの種類です。具体的な値は不明です。</p>
<p>productname: 機種名です。</p>
<p>ps: ps コマンドです。Linux だと、ps -ef となっておかしい値になります。</p>
<p>puppetversion: インストールされている Puppet  クライアントのバージョンです。</p>
<p>rubysitedir: site_ruby の場所です。</p>
<p>rubyversion: ruby のバージョンです。</p>
<p>selinux: SELinux の状態です。無効なときは、false になります。</p>
<p>sshdsakey/sshrsakey: SSH のホスト鍵です。</p>
<p>swapfree: スワップの空き容量です。</p>
<p>swapfize: スワップのサイズです。</p>
<p>timezone: システムのタイムゾーンです。</p>
<p>uniqueid: 一意な ID です。hostid コマンドの出力です。</p>
<p>uptime: システムの起動時間です。/proc/uptime の内容です。</p>
<p>uptime_days: 起動日数です。</p>
<p>uptime_hours: 起動時間数です。</p>
<p>uptime_seconds: 起動秒数です。</p>
<p>virtual: 仮想環境の種類です。仮想環境ではないときは「false」になります。Xen、OpenVZ、VMware に対応しています。</p></blockquote>
<p>こうしてみると、facter ではかなりの値を取得できるようになっています。</p>
<p>facter 変数だと、puppet 以外にもシェルスクリプトや ruby プログラムから簡単に参照できるので重宝しそうです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1636/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>techlifecookpad -puppet- フィードバック編</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1633</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1633#comments</comments>
		<pubDate>Wed, 16 Dec 2009 14:28:15 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1633</guid>
		<description><![CDATA[先日、techlifecookpad -puppet- のフィードバック編です、とはいっても一点だけです。
資料の中で、次のようなカスタム facter を定義していましたが、なんと facter 1.5.7 には ma [...]]]></description>
			<content:encoded><![CDATA[<p>先日、<a href="http://www.sssg.org/blogs/naoya/archives/1615">techlifecookpad -puppet-</a> のフィードバック編です、とはいっても一点だけです。</p>
<p>資料の中で、次のようなカスタム facter を定義していましたが、なんと facter 1.5.7 には manufacture 変数が用意されていました。</p>
<blockquote><p>if $bios_vendor == &#8220;dXXX Inc.&#8221; {</p>
<p>include dell</p>
<p>}</p></blockquote>
<p>用意されている manufacture を使うと、次のようにまったく同じにできます。</p>
<blockquote><p>if $manufacture == &#8220;dXXX Inc.&#8221; {</p>
<p>include dell</p>
<p>}</p></blockquote>
<p>facter の該当のソースコードを読むと、僕が作ったカスタム facter と <a href="http://linux.die.net/man/8/dmidecode">dmidecode(8)</a> コマンドを使っていたので処理的にはまったく同じです。</p>
<p>ただし、仮想環境上の場合、manufacture 変数すら表示されないので要注意しましょう。</p>
<p>とはいっても上のコマンドはまったく問題なくとおりますが、facter コマンドで facter 変数一覧の中では表示されないので気がつかない可能性もあるという意味です。</p>
<p>デフォルトに組み込まれていることは知らなかったのが恥ずかしい限りなので、次回は facter 一覧をまとめてみます。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1633/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>koan を使ってコマンド一発で Xen DomU をインストールする</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1358</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1358#comments</comments>
		<pubDate>Mon, 14 Dec 2009 12:13:29 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[koan]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1358</guid>
		<description><![CDATA[koan を使って、コマンド一発で Xen DomU をインストールする方法を紹介します。
1. cobbler のサーバで DomU として使う system を作成する
$ sudo cobbler system a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://fedorahosted.org/cobbler/">koan</a> を使って、コマンド一発で Xen DomU をインストールする方法を紹介します。</p>
<p>1. cobbler のサーバで DomU として使う system を作成する</p>
<blockquote><p>$ sudo cobbler system add &#8211;name=&lt;仮想マシン名&gt; &#8211;profile=&lt;プロファイル名&gt; &#8211;virt-type=xenpv &#8211;virt-cpus=1 &#8211;virt-ram=2048 &#8211;virt-file-size=200 &#8211;virt-path=/var/lib/xen/images/&lt;仮想マシン名&gt;.img &#8211;virt-bridge=xenbr0</p></blockquote>
<p>上の例では、準仮想化ドメインとして CPU 数 1、搭載メモリ容量 2048MB、ハードディスク容量 200GB、仮想ブリッジを xenbr0 とした仮想マシンを構築するという意味になる。</p>
<p>2. Dom0 上に koan をインストールする</p>
<blockquote><p>$ sudo yum instal koan</p></blockquote>
<p>3. koan コマンドを使ってコマンド一発で仮想マシンをインストールする</p>
<blockquote><p>$ sudo koan &#8211;server= &#8211;system=&lt;仮想マシン名&gt; &#8211;virt &#8211;nogfx &#8211;virt-path=/var/lib/xen/images/&lt;仮想マシン名&gt;.img</p></blockquote>
<p>なぜか system に virt-path が設定されている状態でも koan コマンドに virt-path を指定しないとエラーでインストールできなかった。</p>
<p>4. DomU をインストール後、DomU が自動的にシャットダウンしてしまうので、DomU を起動する</p>
<blockquote><p>$ sudo virsh start &lt;仮想マシン名&gt;</p></blockquote>
<p>koan コマンドのパラメータは、次のとおり。</p>
<blockquote><p>koan &#8211;server=hostname [--list=type] [--virt|--replace-self|--display]<br />
[--profile=name] [--system=name] [--image=name] [--add-reinstall-entry]<br />
[--virt-name=name] [--virt-path=path] [--virt-type=type] [--nogfx]<br />
[--static-interface=name] [--kexec]</p></blockquote>
<blockquote><p>&#8211;virt-name    作成する仮想マシンの名前(省略した場合はプロファイル名が使われる)<br />
&#8211;virt-type    作成する仮想マシンの種類(xenpv or xenfv or qemu or vmware)<br />
&#8211;virt-ram     メモリ容量(MB 単位)<br />
&#8211;virt-bridge  ブリッジデバイス名<br />
&#8211;virt-path    仮想マシンファイルを保存する場所(パーティション、ディレクトリ、LVM ボリュームの設定が可能)<br />
&#8211;no-gfx       VNC グラフィックスを使用しない(Xen のみ)</p></blockquote>
<p>koan 超便利です。</p>
<p># 先日の techlife@cookpad の内容は、これを応用した Xen DomU の自動インストールの仕組みです</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1358/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nagios NRPE プラグインを作成する方法</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1624</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1624#comments</comments>
		<pubDate>Tue, 08 Dec 2009 14:23:36 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>
		<category><![CDATA[nagios]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1624</guid>
		<description><![CDATA[Nagios で、独自に任意の方法で自分のサービスを監視したい場合、NRPE プラグインを作成すると便利です。
僕は、基本的にシェルスクリプトでがんばって作成しています。次のようなシェルスクリプトの雛型を準備しています。 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nagios.org/">Nagios</a> で、独自に任意の方法で自分のサービスを監視したい場合、<a href="http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf">NRPE</a> プラグインを作成すると便利です。</p>
<p>僕は、基本的にシェルスクリプトでがんばって作成しています。次のようなシェルスクリプトの雛型を準備しています。</p>
<blockquote><p>#!/bin/sh</p>
<p>STATE_OK=0<br />
STATE_WARNING=1<br />
STATE_CRITICAL=2<br />
STATE_UNKNOWN=3<br />
STATE_DEPENDENT=4</p>
<p>echo &#8220;Status is OK&#8221;</p>
<p>exit $STATE_OK</p></blockquote>
<p>exit する前に echo すれば、その情報を Nagios の管理画面の Status Information で確認することができます。</p>
<p>この雛型シェルスクリプトを使って、DELL 製サーバのハードウェア RAID の確認とその BBU の状態を監視しているスクリプトを作成しました。</p>
<ul>
<li><a href="http://github.com/n0ts/nagios/blob/master/check_dell_storage_battery">check_dell_storage_battery</a></li>
<li><a href="http://github.com/n0ts/nagios/blob/master/check_dell_storage_pdisk">check_dell_storage_pdisk</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1624/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puppet によるインフラ管理入門</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1620</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1620#comments</comments>
		<pubDate>Sun, 06 Dec 2009 17:40:26 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1620</guid>
		<description><![CDATA[先日のクックパッド LT で公開したのですが、前回の Velocity で行われた Puppet 作者の Luke さんによる Puppet ワークショップの日本語版を許可いただいて翻訳しました。
実はかなり前(Velo [...]]]></description>
			<content:encoded><![CDATA[<p>先日のクックパッド LT で公開したのですが、前回の Velocity で行われた Puppet 作者の Luke さんによる Puppet ワークショップの日本語版を許可いただいて翻訳しました。</p>
<p>実はかなり前(Velocity が終わった直後)に翻訳したものなのですが、すっかり公開するのも忘れていたので、LT にあわせて公開しました。</p>
<blockquote><p><a href="http://www.sssg.org/~naoya/puppet/project.html">Puppet によるインフラ管理入門</a></p></blockquote>
<p>原本は、次のワークショップです。</p>
<blockquote><p><a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7693">Introduction to Managed Infrastructure with Puppet: Velocity 2009 &#8211; O&#8217;Reilly Conferences, June 22 &#8211; 24, 2009, San Jose, CA</a></p></blockquote>
<p>このワークショップでは、Puppet を実際に触りながら Puppet  の理解を深めていくという内容のワークショップです。</p>
<p>とても Puppet 入門に適している内容だと思いますので、ぜひ会社の中などで Puppet 入門勉強会の資料として使ってもらえばうれしいです!</p>
<p>僕も自分の会社で Puppet 入門勉強会を開催して、そこで資料として使いました。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1620/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>monit で logrotate する</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1617</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1617#comments</comments>
		<pubDate>Fri, 04 Dec 2009 08:50:01 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1617</guid>
		<description><![CDATA[monit はとても便利でかなせないツールになっている今日この頃ですが、monit にはデフォルトで logrotate するスクリプトがついていません。
monit の logfile を設定すると、monit でチェ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mmonit.com/monit/">monit</a> はとても便利でかなせないツールになっている今日この頃ですが、<a href="http://mmonit.com/monit/">monit</a> にはデフォルトで logrotate するスクリプトがついていません。</p>
<p>monit の logfile を設定すると、monit でチェックしている対象のプロセスを再起動したときなどにログに情報がたくさん出力されているので、logrotate しておいたほうがいいでしょう。</p>
<p>monit の logfile を /var/log/monit に設定した場合は、次のような内容で /etc/logrotate.d/monit を作成します。</p>
<blockquote><p>/var/log/monit {<br />
missingok<br />
notifempty<br />
size 100k<br />
create 0644 root root<br />
postrotate<br />
/bin/kill -HUP `cat /var/run/monit.pid 2&gt;/dev/null` 2&gt; /dev/null || true<br />
endscript<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1617/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>techlifecookpad -puppet-</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1615</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1615#comments</comments>
		<pubDate>Thu, 03 Dec 2009 16:01:54 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1615</guid>
		<description><![CDATA[本日開催された techlife ライトニングトーク at クックパッド puppet 編の資料をアップロードしました。
今回は、実際に puppet を本番サーバへ導入するにあたって、puppet + cobbler  [...]]]></description>
			<content:encoded><![CDATA[<p>本日開催された <a href="http://techlife.cookpad.com/2009/10/24/techlife_introduction/">techlife ライトニングトーク at クックパッド puppet 編</a>の資料をアップロードしました。</p>
<p>今回は、実際に puppet を本番サーバへ導入するにあたって、puppet + cobbler で Xen DomU の初期設定まで自動化しているのですが、その内容について話しました。puppet は便利なのですが、まだまだ自分のインフラでいけていないところばかりなので、引き続き改善し続けていきたいと思います。</p>
<p>動画もそのうち公開されているようですので気になる人は<a href="http://techlife.cookpad.com/">クックパッド開発者ブログ</a>や <a href="http://twitter.com/techlifecookpad">@techlifecook</a> を参考にするとよいでしょう。</p>
<p>また、<a href="http://trac.mizzy.org/public/wiki/TecLifeLTPuppet">mizzy さんの資料</a>もアップロードされていますので、チェックしておきましょう。mizzy さんの発表にもあった exec 脳には、自分も sysctl.conf の変更をまったく同じふうにしていたので file リソースを使うように変更しておきたいと思います。</p>
<div id="__ss_2642138" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="puppet @techlifecookpad" href="http://www.slideshare.net/n0ts/puppet-techlifecookpad">puppet @techlifecookpad</a></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px; text-align: center;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/n0ts">Naoya Nakazawa</a>.</div>
</div>
<p style="text-align: center;"><object style="margin: 0px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=tlltpuppetcobblerbynots-091203095715-phpapp01&amp;stripped_title=puppet-techlifecookpad" /><param name="allowfullscreen" value="true" /><embed style="margin: 0px;" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=tlltpuppetcobblerbynots-091203095715-phpapp01&amp;stripped_title=puppet-techlifecookpad" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p># 追記:</p>
<p>puppet の情報を日本語に翻訳したい文章があるので、<a href="http://trac.mizzy.org/puppet">パペウィキ</a> の編集アカウントがほしい！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1615/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Velocity Online Conference Fall 2009</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1610</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1610#comments</comments>
		<pubDate>Sat, 28 Nov 2009 02:40:31 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1610</guid>
		<description><![CDATA[来月、Velocity のオンラインカンファレンス Fall 2009 が開催されるようです。O&#8217;Reilly では、たくさんのオンラインカンファレンスがあるみたいです。オンラインカンファレンスとは、インター [...]]]></description>
			<content:encoded><![CDATA[<p>来月、<a href="http://conferences.oreilly.com/velocityonline">Velocity のオンラインカンファレンス Fall 2009</a> が開催されるようです。O&#8217;Reilly では、たくさんの<a href="http://conferences.oreillynet.com/">オンラインカンファレンス</a>があるみたいです。オンラインカンファレンスとは、インターネット上でのカンファレンスでその場でディスカッションなどができるようです。</p>
<p>この Velocity のオンラインカンファレンスですが、今年は次の内容で開催されるということで、さっそく申し込んでみました。</p>
<ul>
<li>パフォーマンスの影響度：ウェブのスピードをオンラインビジネスにどのような影響があるのか(<a href="http://en.oreilly.com/velocityfall09/public/schedule/detail/11220">Performance Impact: How Web Speed Affects Online Business KPIs + Q&amp;A</a>)</li>
<li>SPDY の紹介(<a href="http://en.oreilly.com/velocityfall09/public/schedule/detail/11477">Introduction to SPDY</a>)</li>
<li>延期された JavaScript の評価を通して高速なロード時間にする(<a href="http://en.oreilly.com/velocityfall09/public/schedule/detail/11260">Faster Load Times Through Deferred JavaScript Evaluation</a>)</li>
<li>デフォルトで Rails を高速にする(<a href="http://en.oreilly.com/velocityfall09/public/schedule/detail/11221">Making Rails Even Faster by Default</a>)</li>
<li>ロードバランシングと Varnish を使ったリバースプロキシ(<a href="http://en.oreilly.com/velocityfall09/public/schedule/detail/11219">Load Balancing &amp; Reverse Proxies with Varnish &amp; More + Q&amp;A</a>)</li>
<li>ブラウザスコープ: よいブラウザにプロファリングする方法(<a href="http://en.oreilly.com/velocityfall09/public/schedule/detail/11453">Browserscope: Profiling the Way to a Better Browser</a>)</li>
<li>10,000フィートからの CouchDB(<a href="http://en.oreilly.com/velocityfall09/public/schedule/detail/11308">CouchDB from 10,000 ft + Q&amp;A</a>)</li>
<li>オペレーションの座談会(<a href="http://en.oreilly.com/velocityfall09/public/schedule/detail/11218">Operations Roundtable</a>)</li>
</ul>
<p>日時は、US-PST（太平洋標準時）で 12/8（火）9:00am &#8211; 12:40am なので、日本時間にすると 12/9（水）午前 2:00 &#8211; 5:40 になります。かなり深夜から早朝にかけて行われることになります。</p>
<p>料金は、$149 なのですが、通常で $25 の割引があります。また、過去の Velocity の参加者は $50 の割引があります。僕は、過去の Velocity 参加者なので、メールして特別なクーポンコードを発行してもらいました。さらに今回の Velocity Online Conference Fall 2009 の参加者には、次回の Velocity の 25% 割引という得点もあるので次回 Velocity に参加する人は参加するとよいと思います。</p>
<p>今回のオンラインカンファレンスの中では、Rails、Varnish、座談会の話がもっとも興味あります。</p>
<p>今から、とても楽しみです！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1610/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MacBook Pro で外付けディスプレイのみを使う方法</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1608</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1608#comments</comments>
		<pubDate>Thu, 26 Nov 2009 15:06:32 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1608</guid>
		<description><![CDATA[MacBook Pro を愛用しているのですが、MacBook Pro で外付けディスプレイのみを使う方法が、どうしても分からなかったのですが、ついにその方法を発見したので紹介します。OSX は、現時点での最新版です。
 [...]]]></description>
			<content:encoded><![CDATA[<p>MacBook Pro を愛用しているのですが、MacBook Pro で外付けディスプレイのみを使う方法が、どうしても分からなかったのですが、ついにその方法を発見したので紹介します。OSX は、現時点での最新版です。</p>
<p>まずは、準備するところから。</p>
<ol>
<li><a href="http://semaja2.net/insomniaxinfo">InsomniaX 1.3.5</a> をインストールして起動しておく</li>
<li>MacBook Pro の Mini Display Port と外付けディスプレイを接続する</li>
<li>ディスプレイの表示モードをミラーにする</li>
</ol>
<p>これで準備完了です。</p>
<ol>
<li>MacBook Pro の Mini Display Port から外付けディスプレイをはずす</li>
<li>InsomniaX を有効にする</li>
<li>MacBook Pro の LCD を閉じる（このときは、MacBook Pro 本体の LCD は点灯している）</li>
<li>MacBook Pro に Mini Display Port &lt;-&gt; VGA 変換ケーブルを接続する</li>
</ol>
<p>ポイントは、3 と 4 の順番です。この順番を逆にしてしまうと、MacBook Pro 本体の LCD が点灯してしまい、本体側の解像度になってしまうので注意してください。</p>
<p>ちなみに作業を終了するときの手順は、次のとおりです。</p>
<ol>
<li>MacBook Pro の Mini Display Port と外付けディスプレイの接続をはずす</li>
<li>InnosomniaX を無効にする</li>
<li>InnosomniaX のメニューあるいは、MacBook Pro 本体の LCD を閉じてシステムのスリープ状態にする</li>
</ol>
<p>MacBook のころは順番に関係なくできていたのですが、MacBook Pro になってからできなくなってしまったのかなぁと思ったのですができる方法が見つかってよかったです。</p>
<p>これでデスクの大きなディスプレイのみで MacBook Pro を使うことができます。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1608/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Repoview の紹介</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1605</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1605#comments</comments>
		<pubDate>Mon, 23 Nov 2009 21:28:33 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1605</guid>
		<description><![CDATA[先日紹介した EPEL では、パッケージ一覧ページが提供されていました。このパッケージ一覧ページは、repoview というプログラムで作成されたものです。
repoview というプログラムも EPEL と同様にはじめ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sssg.org/blogs/naoya/archives/1602">先日</a>紹介した EPEL では、<a href="http://download.fedora.redhat.com/pub/epel/5/x86_64/repoview/">パッケージ一覧ページ</a>が提供されていました。このパッケージ一覧ページは、<a href="https://fedorahosted.org/repoview/">repoview</a> というプログラムで作成されたものです。</p>
<p><a href="https://fedorahosted.org/repoview/">repoview</a> というプログラムも EPEL と同様にはじめて知ったので、さっそく使っていました。</p>
<p>まず、repoview のインストールは、EPEL からパッケージが提供されているので、簡単にインストールすることができます。</p>
<blockquote><p>$ sudo yum install repoview</p></blockquote>
<p>repoview をインストールすると、/usr/bin/repoview コマンドがインストールされます。repoview コマンドを使って、yum リポジトリにあるパッケージ一覧を取得してパッケージ一覧ページすることができます。</p>
<p>repoview コマンドの使い方は、次のとおりです。</p>
<blockquote><p>$ repoview &#8211;help</p>
<p>使い方: repoview [オプション] リポジトリディレクトリ</p>
<p>オプション：<br />
&#8211;version    プログラムバージョンを表示して終了します<br />
-h, &#8211;help    ヘルプメッセージを表示して終了します<br />
-i IGNORE, &#8211;ignore-package=IGNORE    &#8220;foo-0-1.0-1&#8243;のように無視したいパッケージ名を指定します<br />
-x XARCH, &#8211;exclude-arch=XARCH    &#8220;-x src -x ia64&#8243;のように無視したいアーキテクチャーを指定します<br />
-k TEMPLATEDIR, &#8211;template-dir=TEMPLATEDIR    repoviewディレクトリのテンプレートディレクトリを指定します（デフォルトは、/usr/share/repoview/templates です）<br />
-o OUTDIR, &#8211;output-dir=OUTDIR    repoviewページを生成したときのサブディレクトリ名です（デフォルトは、&#8221;repoview&#8221; です）<br />
-s STATEDIR, &#8211;state-dir=STATEDIR    このディレクトリに生成する状態トラッキングデータベースを入れるディレクトリ名です（デフォルトは、出力先ディレクトリに出力します）<br />
-t TITLE, &#8211;title=TITLE    リポジトリの説明用のタイトルを指定します（デフォルトは、&#8221;Repoview&#8221; です）<br />
-u URL, &#8211;url=URL     RSS Feed を生成するときの URL を指定します、例えば &#8220;http://fedoraproject.org/extras/4/i386&#8243; と指定します、指定しない場合は RSS の生成がスキップされます<br />
-f, &#8211;force     repmod のチェックサムが変更されていなくても、強制的に再生成します<br />
-q, &#8211;quiet    致命的なエラーを除いて、何も出力しないようにします<br />
-c COMPS, &#8211;comps=COMPS    comps.xml ファイルを使うときに指定します（デフォルトは、オフです）</p></blockquote>
<p>例えば、cobbler で管理しているリポジトリの場合は、次のように使います。</p>
<blockquote><p>$ sudo repoview -t &#8220;yum.example.com &#8211; x86_64&#8243; -u &#8220;http://exmaple.com/cobbler/repo_mirror/hoge-x86_64/repoview/&#8221; /var/www/cobbler/repo_mirror/hoge-x86_64</p></blockquote>
<p>なお、reposync してしまうと repo_mirror ディレクトリがリセットされてしまうので、createrepo したあとは、再度 repoview を実行する必要があります。</p>
<p>独自にローカル yum リポジトリをたてている場合、repoview を使うと提供しているパッケージ一覧がチェックでき、いつどんなパッケージを追加したのか、後から分かるのでとても便利です。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1605/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>はじめての EPEL</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1602</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1602#comments</comments>
		<pubDate>Mon, 23 Nov 2009 01:31:49 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1602</guid>
		<description><![CDATA[RHEL, Centos 向けに EPEL というボランティアベースの拡張パッケージが提供されているリポジトリがあることを知りました。
EPEL とは、次のようなリポジトリです（About EPEL から意訳）。
エンタ [...]]]></description>
			<content:encoded><![CDATA[<p>RHEL, Centos 向けに <a href="http://fedoraproject.org/wiki/EPEL">EPEL</a> というボランティアベースの拡張パッケージが提供されているリポジトリがあることを知りました。</p>
<p><a href="http://fedoraproject.org/wiki/EPEL">EPEL</a> とは、次のようなリポジトリです（About EPEL から意訳）。</p>
<blockquote><p>エンタープライズ Linux 用の拡張パッケージ（略して EPEL）は、Fedora プロジェクトからのボランティアベースの貢献によって作成された <a title="Red Hat Enterprise Linux" href="http://fedoraproject.org/wiki/Red_Hat_Enterprise_Linux">Red Hat Enterprise</a> (RHEL) 向けの高品質な追加パッケージのリポジトリで、CentOS あるいはその他同等の Linux 互換になっています。Fedora は RHEL の上流であり、EPEL 向けの追加パッケージは Fedora リポジトリを起源にしており RHEL 向けに提供されています。</p></blockquote>
<p>ということで、高品質な追加パッケージが提供されている便利なリポジトリです。</p>
<p>以前、<a href="http://rpmrepo.org/RPMforge">rpmforge</a> というサードパーティ製のリポジトリを使っていたことがあったのですが、一部のパッケージでトラブルが発生して以来使っていませんが、EPEL は高品質そうなので、さっそく CentOS に導入してみました。</p>
<p>まず、EPEL の RPM をダウンロードします。</p>
<blockquote><p>$ wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm</p>
<p>$ sudo rpm -i epel-release-5-3.noarch.rpm</p></blockquote>
<p>EPEL パッケージをインストールすると、/etc/yum.repos.d/epel.repo がインストールされて EPEL の yum リポジトリを使うことができます。</p>
<p>例えば、ganglia パッケージを取得してみると、次のようになります。</p>
<blockquote><p>$ sudo yum info ganglia</p>
<p>Available Packages<br />
Name       : ganglia<br />
Arch       : i386<br />
Version    : 3.0.7<br />
Release    : 1.el5<br />
Size       : 91 k<br />
Repo       : epel<br />
Summary    : Ganglia Distributed Monitoring System<br />
URL        : http://ganglia.sourceforge.net/<br />
License    : BSD<br />
Description: Ganglia is a scalable, real-time monitoring and execution environment<br />
: with all execution requests and statistics expressed in an open<br />
: well-defined XML format.</p>
<p>Name       : ganglia<br />
Arch       : x86_64<br />
Version    : 3.0.7<br />
Release    : 1.el5<br />
Size       : 91 k<br />
Repo       : epel<br />
Summary    : Ganglia Distributed Monitoring System<br />
URL        : http://ganglia.sourceforge.net/<br />
License    : BSD<br />
Description: Ganglia is a scalable, real-time monitoring and execution environment<br />
: with all execution requests and statistics expressed in an open<br />
: well-defined XML format.</p></blockquote>
<p>EPEL で提供されているパッケージ一覧は、x86_64 の場合は<a href="http://download.fedora.redhat.com/pub/epel/5/x86_64/repoview/">ここ</a>から確認することができます。提供パッケージ一覧をざっと見たところ、nagios、monit、ganglia、memcached、munin、など公式では提供されていないたくさんのパッケージが提供されています。いずれも品質重視のためか、バージョンが若干古いですが、自分でパッケージを作成する手間を考えると、とても便利な yum リポジトリといえるでしょう。</p>
<p>今後は、EPEL は本番環境でもミラーして使っていきたいと思いますが、何かの事情で新しいバージョンを必要になったときには EPEL から SRPM を取得して改良する方針にしていこうかなと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1602/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>hbstudy #5 に行ってきた</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1598</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1598#comments</comments>
		<pubDate>Thu, 19 Nov 2009 08:16:00 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1598</guid>
		<description><![CDATA[株式会社ハートビーツが開催している hbstudy #5 に行ってきました。hbstudy はインフラエンジニア向けの勉強会です。
今回は、次のタイトルで発表がありました。

PostgreSQL安定運用のコツ2009  [...]]]></description>
			<content:encoded><![CDATA[<p>株式会社ハートビーツが開催している <a href="http://heartbeats.jp/hbstudy/2009/11/hbstudy5.html">hbstudy #5</a> に行ってきました。<a href="http://heartbeats.jp/hbstudy/">hbstudy</a> はインフラエンジニア向けの勉強会です。</p>
<p>今回は、次のタイトルで発表がありました。</p>
<ul>
<li>PostgreSQL安定運用のコツ2009 <a href="http://facebook.com/snaga">永安悟さん</a></li>
<li>DBサーバーのパフォーマンスチューニング 松信嘉範さん (<a href="http://opendatabaselife.blogspot.com/">Open database life</a>)</li>
</ul>
<p>個人的には、業務ではほとんど MySQL を使っていますが、すこしだけ業務 PostgreSQL を使ったことがあります。</p>
<p>PostgreSQL の話は、かなりボリュームのある内容を1時間という限られた時間の中で発表してくださいました。PostgreSQL のアーキテクチャーの話、Vacuum、PostgresQL の設定をする上のポイントなど、かなり実践投入向きな説明で勉強になりました。PostgreSQL を使う機会があったら、改めてポイントを確認したいと思います。</p>
<p>次の MySQL の話は、松信さんの話ということで、かなり期待していましたが、期待以上の話でした。</p>
<p>以下、メモになります。</p>
<ul>
<li>いかにしてデータベース内のデータサイズにしていくかが重要</li>
<li>カラムの型は、最低限のものにする</li>
<li>Blog/Text は、無駄になることが多い</li>
<li>InnoDB は、ブロック単位の I/O になって、ブロックにはレコードがそれぞれ含まれている</li>
<li>違うテーブルは、必ず別のブロックになる</li>
<li>Falcon は、TEXT 型の列を別領域に保存する</li>
<li>PBXT は、一定以上の長さの列を別領域に保存する</li>
<li>Explain の Using Index があると、Index が使われていることになる</li>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/news-5-1-41.html">MySQL 5.1.41 </a>に含まれている InnoDB plugin 1.0.5 には、<a href="http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_old_blocks_time">innodb_old_blocks_time </a>というパラメータが追加されているが、これは InnoDB の old という領域に保存していく時間をミリ秒単位で指定することができる（SET GLOBAL innodb_old_blocks_time = 1000; で設定することができる)</li>
<li>Linux のチューニングのポイントは、次のとおり</li>
<blockquote>
<li>/proc/sys/vm/swappiness = 0;</li>
<li>0 ならファイルシステムキャッシュ優先、100 なら A 優先（デフォルトだと 60）</li>
<li>ext3: InnoDB なら writeback でもあり (double buffer)、dir_index, noatime(realtime)</li>
<li>xfs: 実績が少ないとのこと</li>
<li>ext2: あえて ext2 を使う、ジャーナリングが無いための高速（<a href="http://d.hatena.ne.jp/kazuhooku/">kazuho さん</a>は、ext2 を使っているとのこと）</li>
<li><a href="http://btrfs.wiki.kernel.org/index.php/Main_Page">btrfs</a>(zfs): コピーオンライト</li>
<li>cat /proc/net/dev, mtstat = dstat</li>
</blockquote>
<li>SSD もライトキャッシュが必要だが、RAID コントローラーが SSD に最適化されていないといけないの要注</li>
<li>PCI-E 型の SSD にも、高価だが注目するとよい</li>
<li>HDD を使っているときは、あえて full table scan するという選択肢もある</li>
<li>メモリが何よりも最速</li>
</ul>
<p>ということで、自分の過去のデータベース設計に後悔したことは言うまでもありませんが、データベースのチューニングまわりは参考になる話ばかりでした。</p>
<p>MySQL を使っている以上、InnoDB ストレージエンジンの構造は理解しておくべきだと思いました。</p>
<p>hbstudy #6 の当日の資料は、それぞれ公開されています。</p>
<ul>
<li><a href="http://www.slideshare.net/uptimejp/postgresql2009-hbstudy5">PostgreSQL安定運用のコツ2009</a></li>
<li><a href="http://www.mysql.gr.jp/frame/modules/bwiki/index.php?matsunobu">DBサーバーのパフォーマンスチューニング</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1598/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rpmbuild を便利するスクリプト</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1588</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1588#comments</comments>
		<pubDate>Tue, 17 Nov 2009 15:58:46 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1588</guid>
		<description><![CDATA[rpmbuild を使って、RPM をビルドしようとするとき、BuildRequires の設定がある場合にパッケージがインストールされないというメッセージを見る機会が増えてきた。
開毎回必要なパッケージを、メッセージを [...]]]></description>
			<content:encoded><![CDATA[<p>rpmbuild を使って、RPM をビルドしようとするとき、BuildRequires の設定がある場合にパッケージがインストールされないというメッセージを見る機会が増えてきた。</p>
<p>開毎回必要なパッケージを、メッセージを確認してから手動でインストールするのがかなりめんどうになってきたので、簡単な rpmbuild のラッパースクリプト <a href="http://github.com/n0ts/scripts/blob/master/auto-rpmbuild.sh">auto-rpmbuild.sh</a> を書いてみた。</p>
<p>このスクリプトでは、おもに次のような機能を提供します。</p>
<ul>
<li>指定された SPEC ファイルが存在しない場合は、.rpmmaros の topdir/SPECS を自動的に参照する</li>
<li>rpmbuild &#8211;nobuild で RPM のビルドをテストしてエラーだった場合のメッセージが、「** is needed by **」の場合は、必要なパッケージ sudo yum install でインストールする</li>
</ul>
<p>auto-rpmbuild.sh の使い方は、rpmbuild とまったく同じで、次のように使います。</p>
<blockquote><p>$ auto-rpmbuild.sh -ba ~/rpmbuild/SPECS/hoge.spec</p></blockquote>
<p>もしくは、SPEC ファイルのフルパスを指定するのがめんどくさいという場合は、次のように実行します。</p>
<blockquote><p>$ auto-rpmbuild.sh -ba hoge.spec</p></blockquote>
<p>実は、このラッパースクリプトを作成する前に、既存のツールでできないかどうか調査したところできない様子だったので、ラッパースクリプトを作成しました。</p>
<p><a href="http://et.redhat.com/~rjones/auto-buildrequires/">auto-buildrequires</a> という、まさに * それ * っぽいものを見つけたのですが、これは RPM をビルドしたあとに BuildRequires に指定するべきパッケージ一覧を列挙するツールのようだったので、今回の要件にあいませんでした。</p>
<p>個人的には、あまり野良スクリプトを増やしたくないので、もし既存のツールでできるようであれば、ぜひコメントで教えてください！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1588/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>logwatch を無効にする</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1586</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1586#comments</comments>
		<pubDate>Fri, 13 Nov 2009 11:54:16 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1586</guid>
		<description><![CDATA[CentOS でサーバ運用をしていて、サーバ台数がだんだんと増えてくると、logwatch のメールをまったく見なくなります。logwatch には、その日のサーバの状態が書かれてていてチェックすることでサーバの状態を把 [...]]]></description>
			<content:encoded><![CDATA[<p>CentOS でサーバ運用をしていて、サーバ台数がだんだんと増えてくると、logwatch のメールをまったく見なくなります。logwatch には、その日のサーバの状態が書かれてていてチェックすることでサーバの状態を把握することができます。しかし、サーバ台数が増えてくると、毎日すべてのサーバの logwatch のメールを見ていると時間がかかってきてしまいます。基本的に、すべて Nagios で監視しているので logwatch のメールを送信しないように logwatch を無効にしてみました。</p>
<p>CentOS の logwatch を無効にするには、/etc/cron.daily/0logwatch を削除するだけです。</p>
<p>puppet だと、次のように記述します。</p>
<blockquote><p>file { &#8220;/etc/cron.daily/0logwatch&#8221;:<br />
ensure =&gt; absent,<br />
}</p></blockquote>
<p>これで、logwatch を毎朝実行しなくなるので、logwatch のメールが受信しなくてすむようになりました。</p>
<p>一人でサーバ運用していると、こういった日々の小さな改善が大事になってくると、しみじみと思いました。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1586/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>サーバの消費電力を測定する</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1576</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1576#comments</comments>
		<pubDate>Wed, 11 Nov 2009 11:22:13 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1576</guid>
		<description><![CDATA[インフラエンジニアたるもの、自前でサーバを調達して運用している場合は、自分が使っているサーバの消費電力を測定することはとても重要です。サーバの消費電力が分からないと、ラックにあと何台のサーバを収めるか把握できません。
サ [...]]]></description>
			<content:encoded><![CDATA[<p>インフラエンジニアたるもの、自前でサーバを調達して運用している場合は、自分が使っているサーバの消費電力を測定することはとても重要です。サーバの消費電力が分からないと、ラックにあと何台のサーバを収めるか把握できません。</p>
<p>サーバの消費電力を計測するには、<a href="http://www.google.co.jp/search?hl=ja&amp;q=%E3%82%AF%E3%83%A9%E3%83%B3%E3%83%97%E3%83%A1%E3%83%BC%E3%82%BF&amp;lr=lang_ja&amp;aq=f&amp;oq=">クランプメータ</a>という機械が必要です。</p>
<p>今回は、小型クランプメータの<a href="http://sanwa-meter.ocnk.net/product/13">三和電気計器の DCL10</a> を購入してみました。これにした理由は、そこそこの精度で、価格も安いからです。あと、あわせてラ<a href="http://sanwa-meter.ocnk.net/product/97">インセパレーター</a>もあわせて購入しました。ラインセパレーターを使うと、感度倍率を1倍あるいは10倍にして測定することができます。</p>
<p>もちろん、インフラエンジニアたるもの自分で持っていたいということで、自費で購入しました。</p>
<p><a href="http://www.sssg.org/blogs/naoya/wp-content/uploads/2009/11/server_power.jpg" rel="lightbox"><img class="aligncenter size-medium wp-image-1577" title="server_power" src="http://www.sssg.org/blogs/naoya/wp-content/uploads/2009/11/server_power-300x199.jpg" alt="server_power" width="300" height="199" /></a></p>
<p>さっそく、このクランプメータとラインセパレーターを使って、業務で使用している DELL のサーバの消費電力を測定してみました。</p>
<p>測定方法は、次のとおりに行いました。</p>
<ul>
<li>サーバの電源ケーブルとコンセントの間に、上のラインセパレーターを挟んで測定する</li>
<li>CentOS 5.x x86_64 をインストールした状態で、アイドル時と <a href="http://weather.ou.edu/~apw/projects/stress/">stress</a> を使って高負荷時（ロードアベレージが CPU コア数と同じくらいなったあたり）で感度倍率 10 倍のところで測定した</li>
</ul>
<p>DELL サーバの消費電力は、次のとおりです。</p>
<blockquote><p><a href="http://www1.jp.dell.com/jp/ja/enterprise/servers/pedge_r200/pd.aspx?refid=pedge_r200&amp;cs=jppad1&amp;s=pad">DELL PowerEdge R200</a></p>
<ul>
<li>CPU: Xeon X3210 x 1</li>
<li>RAM: 8GB</li>
<li>Disk: SATA 160GB x 1</li>
<li>idle: 1.08A</li>
<li>max: 1.53A</li>
</ul>
<p><a href="http://www.jp.dell.com/jp/ja/business/servers/pedge_r300/pd.aspx?refid=pedge_r300&amp;cs=jpbsd1&amp;s=bsd">DELL PowerEdge R300</a></p>
<ul>
<li>CPU: Xeon L5410 x 1</li>
<li>RAM: 8GB</li>
<li>Disk: SAS 300GB x 1</li>
<li>idle: 0.99A</li>
<li>max: 1.30A</li>
</ul>
<p>DELL PowerEdge 1950 III（販売終了モデル）</p>
<ul>
<li> CPU: Xeon L5410 x 2</li>
<li>RAM: 8GB</li>
<li>Disk: SATA 1TB x 1</li>
<li>idle: 1.60A</li>
<li>max: 2.36A</li>
</ul>
<p>DELL PowerEdge SC1435（販売終了モデル）</p>
<ul>
<li>CPU: Opteron 2376 x 2</li>
<li>RAM: 8GB</li>
<li>Disk: SATA 1TB x 1</li>
<li>idle: 1.46A</li>
<li>max: 2.27A</li>
</ul>
<p><a href="http://www1.jp.dell.com/jp/ja/enterprise/servers/server-poweredge-r610/pd.aspx?refid=server-poweredge-r610&amp;cs=jppad1&amp;s=pad">DELL PowerEdge R610</a></p>
<ul>
<li>CPU: Xen L5530 x 2</li>
<li>RAM: 16GB</li>
<li>Disk: SATA 500GB x 2 (HW RAID 10)</li>
<li>idle: 1.32A</li>
<li>max: 2.06A</li>
</ul>
</blockquote>
<p>所感は、次のとおり。</p>
<ul>
<li>Xen 5500  番台の低電圧版（L がついているもの）は、かなり消費電力が少ない</li>
<li>Xen 3200 番台（今は 3300 番台）は、消費電力が大きいが、Xeon 5400 番台低電圧版もそれほど大きく変わらない</li>
</ul>
<p>来週には、R410 を試しに導入してみる予定ですが、R610 の CPU と同じなのでほぼ変わらないはずです。</p>
<p>サーバの消費電力をちゃんと測定して、よりよいサーバ運用をめざしたいものですね。</p>
<p># 2009.11.12 追記</p>
<ul>
<li>ディスク情報を追記しておきました</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1576/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CentOS 5 の初期設定</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1571</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1571#comments</comments>
		<pubDate>Wed, 04 Nov 2009 17:37:47 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1571</guid>
		<description><![CDATA[CentOS 5.x をインストールしたあと、いろいろと初期設定を行っています。今は、サーバ用途の場合 kickstart の %post セクションでいろいろな初期設定をまとめて行って自動化しています。kickstar [...]]]></description>
			<content:encoded><![CDATA[<p>CentOS 5.x をインストールしたあと、いろいろと初期設定を行っています。今は、サーバ用途の場合 kickstart の %post セクションでいろいろな初期設定をまとめて行って自動化しています。kickstart は、別の機会に公開するとして、今回は %post セクションで行っている初期設定を順番に紹介します。紹介する順序は、順不同です。</p>
<ul>
<li>NOZEROCONF を設定する</li>
</ul>
<blockquote><p>余計なネットワーク経路を作らないために、/etc/sysconfig/network に次の設定を追加します。APIPA という仕組みを使う場合は必要です。</p></blockquote>
<blockquote><p>NOZEROCONF=yes</p></blockquote>
<ul>
<li>IPv6 を無効にする</li>
</ul>
<blockquote><p>IPv6 を使っていないので、/etc/modprobe.conf に次の設定を追加します。</p>
<p>alias net-pf-10 off<br />
alias ipv6 off</p></blockquote>
<ul>
<li>ifdown-eth にバッチをあてる</li>
</ul>
<blockquote><p>bonding を使っている場合、ifdown-eth がおかしいので、次のようなパッチをあてます。bonding を使っていない場合は、特にパッチをあてる必要もないです。</p></blockquote>
<blockquote><p>/usr/bin/patch /etc/sysconfig/network-scripts/ifdown-eth &lt;&lt; EOF<br />
60c60,62<br />
&lt;<br />
&#8212;<br />
&gt;     for target in \\$(cat /sys/class/net/\\${DEVICE}/bonding/arp_ip_target) ; do<br />
&gt;         echo &#8220;-\\${target}&#8221; &gt; /sys/class/net/\\${DEVICE}/bonding/arp_ip_target<br />
&gt;     done<br />
EOF</p></blockquote>
<ul>
<li>SSH デーモンの設定でパスワード認証を無効にして、公開鍵認証のみに設定変更する</li>
</ul>
<blockquote><p>/etc/ssh/sshd_config に、次のようなパッチをあてます。</p>
<p>/usr/bin/patch /etc/ssh/sshd_config &lt;&lt; EOF<br />
58c58<br />
&lt; #PasswordAuthentication yes<br />
&#8212;<br />
&gt; PasswordAuthentication no<br />
60d59<br />
&lt; PasswordAuthentication yes<br />
73,75c72<br />
&lt; #GSSAPIAuthentication no<br />
&lt; GSSAPIAuthentication yes<br />
&lt; #GSSAPICleanupCredentials yes<br />
&#8212;<br />
&gt; GSSAPIAuthentication no<br />
EOF</p>
<p>さらに、次の設定を追加します。<br />
#<br />
# local configuration<br />
#<br />
PermitRootLogin without-password<br />
PubkeyAuthentication yes<br />
PasswordAuthentication no<br />
PermitEmptyPasswords no</p></blockquote>
<ul>
<li>不要なサービスを無効にする</li>
</ul>
<blockquote><p>サーバ用途として、使用しないサービスを無効にします。次のような簡易スクリプトを書いておくと便利です。サービスのリストは、自分の環境で置き換えるとよいでしょう。</p>
<p>#!/bin/sh<br />
function get_cmd() {<br />
echo &#8216;acpid auditdi autofs avahi-daemon bluetooth cups firstboot gpm hidd ip6tables mcstrans mdmonitor netfs nfslock pcscd restorecond rpcgssd rpcidmapd sendmail xfs yum-updatesd&#8217;<br />
}<br />
for cmd in `get_cmd`; do<br />
/sbin/chkconfig $cmd off<br />
/etc/init.d/$cmd stop<br />
done</p></blockquote>
<ul>
<li>OOM Killer を無効にする</li>
</ul>
<blockquote><p>Linux には、メモリ不足になってしまったときプロセスを任意で強制終了させる OOM Killer という仕組みがありますが、これを無効にしてプロセスがメモリ不足で落ちるようにします。どちからというと、そのほうがお行儀がよいです。</p>
<p>/etc/sysctl.conf に、次の設定を追加します。</p>
<p># disable OOM Killer<br />
vm.overcommit_ratio = 99<br />
vm.overcommit_memory = 2</p></blockquote>
<ul>
<li>iptables を有効にして設定する</li>
</ul>
<blockquote><p>Linux のファイアーウォールである iptables を有効にして、設定します。</p>
<p>iptables の設定は、通常はコマンドで行うものらしいのですが、オプションがまったく覚えることができないので、/etc/sysconfig/iptables  を 600 で作成して、次の内容で作成します。</p>
<p>*filter<br />
:INPUT DROP [0:0]<br />
:FORWARD ACCEPT [0:0]<br />
:OUTPUT ACCEPT [504:56964]<br />
-A INPUT -m state &#8211;state RELATED,ESTABLISHED -j ACCEPT<br />
-A INPUT -i lo -j ACCEPT<br />
-A INPUT -p icmp -j ACCEPT<br />
-A INPUT -i eth0 -j ACCEPT<br />
-A INPUT -p tcp -m tcp &#8211;dport 22 -j ACCEPT<br />
-A INPUT -p tcp -m tcp &#8211;dport 25 -j ACCEPT<br />
-A INPUT -p tcp -m tcp &#8211;dport 80 -j ACCEPT</p>
<p>上の設定では、内側からの接続はすべて通して、外側からの接続は SSH、SMTP、HTTP ポートだけ許可するという内容になります。</p>
<p>サーバの用途に応じて、開放するポートを設定します。bonding を組んでいる場合は、eth0 ではなく bond0 になります。</p></blockquote>
<ul>
<li>Ctrl + Alt + Del による再起動を無効にする</li>
</ul>
<blockquote><p>サーバの操作中に誤って Ctrl + Alt + Del キーを押して、サーバを再起動させないように /etc/inittab に次のようなパッチをあてます。</p>
<p>/usr/bin/patch /etc/inittab &lt;&lt; EOF<br />
31c31,33<br />
&lt; ca::ctrlaltdel:/sbin/shutdown -t3 -r now<br />
&#8212;<br />
&gt; # Trap CTRL-ALT-DELETE<br />
&gt; #ca::ctrlaltdel:/sbin/shutdown -t3 -r now<br />
&gt; ca::ctrlaltdel:/usr/bin/logger &#8216;CTRL-ALT-DELETE trap is disabled&#8217;<br />
EOF</p>
<p>この設定をしておくと、Ctrl + Alt + Del を押したときにログに残ります。</p></blockquote>
<ul>
<li>デフォルトの yum リポジトリを削除する</li>
</ul>
<blockquote><p>ローカルで yum リポジトリをミラーしている場合、デフォルトの yum リポジトリは不要なので設定を削除します。</p>
<p>/bin/rm /etc/yum.repos.d/CentOS-Base.repo<br />
/bin/rm /etc/yum.repos.d/CentOS-Media.repo</p></blockquote>
<ul>
<li>管理ユーザを作成する</li>
</ul>
<blockquote><p>さきほどの SSH の設定で root による SSH 接続ができなくなるので、専用の管理ユーザを作成して SSH 経由でログインできるようにします。</p>
<p>/usr/sbin/useradd -g hoge -s /bin/zsh hoge<br />
/bin/mkdir ~hoge/.ssh<br />
/bin/chmod 700 ~hoge/.ssh<br />
/bin/cat  &lt;&lt; EOF &gt; ~hoge/.ssh/id_rsa<br />
SSH の秘密鍵<br />
EOF<br />
/bin/chmod 600 ~hoge/.ssh/id_rsa<br />
/bin/cat  &lt;&lt; EOF &gt;~hoge/.ssh/id_rsa.pub<br />
SSH の公開鍵<br />
EOF<br />
/bin/cat &lt;&lt; EOF &gt; ~hoge/.ssh/authorized_keys2<br />
SSH 接続を許可したいサーバの SSH 公開鍵<br />
EOF<br />
/bin/chmod 600 ~hoge/.ssh/authorized_keys2<br />
/bin/cat &lt;&lt; EOF &gt; ~hoge/.ssh/config<br />
Host *<br />
Compression yes<br />
StrictHostKeyChecking no<br />
UserKnownHostsFile /dev/null<br />
EOF</p></blockquote>
<ul>
<li>su を無効にする</li>
</ul>
<blockquote><p>/etc/pam.d/su に、次のようなパッチをあてます。</p>
<p>/usr/bin/patch /etc/pam.d/su &lt;&lt; EOF<br />
6c6<br />
&lt; #auth         required        pam_wheel.so use_uid<br />
&#8212;<br />
&gt; auth          required        pam_wheel.so use_uid<br />
EOF</p></blockquote>
<ul>
<li>sudo を可能にする</li>
</ul>
<blockquote><p>/etc/sudersを、次の内容で書き換えます。CentOS のデフォルトの suders の設定内容がすこしきつく、若干扱いにくいので次の内容だけにしておきます。</p>
<p>%hoge  ALL=(ALL)       ALL</p></blockquote>
<ul>
<li>シリアルリダイレクトを有効にする</li>
</ul>
<blockquote><p>IPMI を SOL 経由で Linux のコンソール画面をみることができるようにシリアルリダイレクトを有効にします。</p>
<p>詳しい設定内容は、<a href="http://www.sssg.org/blogs/naoya/archives/1228">こちら</a>を参照してください。</p></blockquote>
<p>あとは、ウェブサーバ、メールサーバ、データベースサーバ、などサーバの用途に応じた設定を個別で行います。</p>
<p>これには、Puppet を使うとかなり便利なので、実際にどんなふうに使っているかは、別の機会に紹介したいと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1571/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>facter を拡張する方法</title>
		<link>http://www.sssg.org/blogs/naoya/archives/1564</link>
		<comments>http://www.sssg.org/blogs/naoya/archives/1564#comments</comments>
		<pubDate>Tue, 03 Nov 2009 09:25:55 +0000</pubDate>
		<dc:creator>naoya</dc:creator>
				<category><![CDATA[day]]></category>

		<guid isPermaLink="false">http://www.sssg.org/blogs/naoya/?p=1564</guid>
		<description><![CDATA[puppet に付属している facter は、とても便利ですがデフォルトで提供されているもの以外にも自分独自に facter を簡単に拡張することができます。
facter を拡張して、&#8221;hardware_ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://reductivelabs.com/products/puppet/">puppet</a> に付属している facter は、とても便利ですがデフォルトで提供されているもの以外にも自分独自に facter を簡単に拡張することができます。</p>
<p><a href="http://reductivelabs.com/products/facter/">facter</a> を拡張して、&#8221;hardware_platform&#8221; という変数を拡張して作る方法を公開しておきます。<br />
なお、Puppet バージョン 0.24.7 を想定しています。0.25 系は方法が違うので注意してください。</p>
<p>まず、次のような &lt;MODULEPATH&gt;/modules/plugins/facter に &#8220;hardware_platform.rb&#8221; を作成します。なお、必ず作成する ruby のファイル名と facter の変数名は同じでないといけません。</p>
<blockquote><p># hardware_platform.rb<br />
Facter.add(&#8220;hardware_platform&#8221;) do<br />
setcode do<br />
%x{/bin/uname -i}.chomp<br />
end<br />
end</p></blockquote>
<p>とは、puppet の設定ファイルがあるディレクトリ、デフォルトは /etc/puppet だけれど、次のコマンドで確認できます。</p>
<blockquote><p>$ sudo /etc/init.d/puppetmaster genconfig | grep modulepath<br />
modulepath = /etc/puppet/modules:/usr/share/puppet/modules</p></blockquote>
<p>ちなみにカスタム facter を置く場所はどこでも大丈夫です。<br />
作成したカスタム facter を ruby 側でロードできるように環境編集 RUBYLIB を設定します。</p>
<blockquote><p>$ export RUBYLIB=&lt;MODULEPATH&gt;/module/plugins</p></blockquote>
<p>RUBYLIB は、ruby の検索パスなので facter まで設定しないように注意します。<br />
この状態で、次のコマンドを実行すればカスタム facter の動作を確認することができます。</p>
<blockquote><p>$ facter hardware_platform<br />
x86_64</p></blockquote>
<p>まずは、この状態でカスタム facter を作りこんでいきます。</p>
<p>次に作成したカスタム facter を Puppet クライアントへ配布するには、Puppet クライアントの設定が必要になります。<br />
具体的には、puppet.conf の main セクションに次の設定を追加して puppet クライアントを再起動します。</p>
<blockquote><p>pluginsync = true<br />
factpath = $vardir/lib/facter</p></blockquote>
<p>あとは、Puppet サーバと同期すれば自動的に Puppet サーバからカスタム facter を転送されてきます。転送されてきたカスタム facter は、factdest パラメータにコピーされて自動的にロードされます。デフォルトは、/var/lib/puppet/lib/facter です。</p>
<p>Puppet クライアントで、カスタム facter の動作をテストしたいときは、次のコマンドを実行します。</p>
<blockquote><p>$ sudo facter -p hardware_platform<br />
x86_64</p></blockquote>
<p>最後に拡張した Facter は、次のように ruby プログラムから簡単に使うことができます。</p>
<blockquote><p>require &#8216;facter&#8217;<br />
puts Facter[:hardware_platform].value</p></blockquote>
<p>0.25 系での方法は、別の機会に紹介したいと思います。</p>
<p>参考資料</p>
<ul>
<li> <a href="http://gihyo.jp/admin/serial/01/puppet/0014">オープンソースなシステム自動管理ツール Puppet 第14回 Facterの拡張</a></li>
<li><a href="http://projects.reductivelabs.com/projects/facter">facter</a></li>
<li><a href="http://reductivelabs.com/trac/puppet/wiki/AddingFacts">facter を拡張する方法</a></li>
<li><a href="http://reductivelabs.com/trac/puppet/wiki/PluginsInModules">Plugins in Modules</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sssg.org/blogs/naoya/archives/1564/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
