<?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>icez network &#187; IP Network</title>
	<atom:link href="http://www.icez.net/blog/topics/network/feed" rel="self" type="application/rss+xml" />
	<link>http://www.icez.net/blog</link>
	<description>Technical Blog by icez network</description>
	<lastBuildDate>Mon, 30 Jan 2012 17:31:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>0126 &#124; ติดตั้ง Zabbix Server บน CentOS</title>
		<link>http://www.icez.net/blog/1392/zabbix-server-installation-centos</link>
		<comments>http://www.icez.net/blog/1392/zabbix-server-installation-centos#comments</comments>
		<pubDate>Tue, 06 Dec 2011 08:22:06 +0000</pubDate>
		<dc:creator>icez</dc:creator>
				<category><![CDATA[IP Network]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[zabbix]]></category>

		<guid isPermaLink="false">http://www.icez.net/blog/?p=1392</guid>
		<description><![CDATA[ก่อนอื่น เตรียม repository ให้พร้อม + MySQL Server 1 ฐานข้อมูลครับ เนื่องจาก zabbix ไม่ได้เป็น repository หลักของ centos จึงทำให้ต้องมีการติดตั้ง repository เพิ่มเติมเล็กน้อย ****** วิธีนี้ไม่รับประกันว่าสามารถลงคู่กับเครื่องที่มี DirectAdmin ได้ ****** 1) EPEL centos 5 : rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm centos 6 : rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm 2) Atomic wget -qO - http://www.atomicorp.com/installers/atomic &#124; sh พร้อมแล้วก็ติดตั้งกันได้เลยครับ CentOS 64-bit: yum -y install zabbix-server-mysql.x86_64 zabbix-web-mysql.x86_64 CentOS 32-bit: [...]]]></description>
			<content:encoded><![CDATA[<p>ก่อนอื่น เตรียม repository ให้พร้อม + MySQL Server 1 ฐานข้อมูลครับ<br />
เนื่องจาก zabbix ไม่ได้เป็น repository หลักของ centos<br />
จึงทำให้ต้องมีการติดตั้ง repository เพิ่มเติมเล็กน้อย</p>
<p>****** วิธีนี้ไม่รับประกันว่าสามารถลงคู่กับเครื่องที่มี DirectAdmin ได้ ******</p>
<h3>1) EPEL</h3>
<p>centos 5 :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rpm <span style="color: #660033;">-Uvh</span> http:<span style="color: #000000; font-weight: bold;">//</span>download.fedora.redhat.com<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>epel<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">5</span><span style="color: #000000; font-weight: bold;">/</span>i386<span style="color: #000000; font-weight: bold;">/</span>epel-release-<span style="color: #000000;">5</span>-<span style="color: #000000;">4</span>.noarch.rpm</pre></div></div>

<p>centos 6 :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rpm <span style="color: #660033;">-Uvh</span> http:<span style="color: #000000; font-weight: bold;">//</span>download.fedora.redhat.com<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>epel<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">6</span><span style="color: #000000; font-weight: bold;">/</span>x86_64<span style="color: #000000; font-weight: bold;">/</span>epel-release-<span style="color: #000000;">6</span>-<span style="color: #000000;">5</span>.noarch.rpm</pre></div></div>

<h3>2) Atomic</h3>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-qO</span> - http:<span style="color: #000000; font-weight: bold;">//</span>www.atomicorp.com<span style="color: #000000; font-weight: bold;">/</span>installers<span style="color: #000000; font-weight: bold;">/</span>atomic <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sh</span></pre></div></div>

<p><span id="more-1392"></span></p>
<hr />
<p>พร้อมแล้วก็ติดตั้งกันได้เลยครับ<br />
CentOS 64-bit:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">yum <span style="color: #660033;">-y</span> <span style="color: #c20cb9; font-weight: bold;">install</span> zabbix-server-mysql.x86_64 zabbix-web-mysql.x86_64</pre></div></div>

<p>CentOS 32-bit:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">yum <span style="color: #660033;">-y</span> <span style="color: #c20cb9; font-weight: bold;">install</span> zabbix-server-mysql zabbix-web-mysql</pre></div></div>

<p>เปิดไฟล์ /etc/zabbix/zabbix_server.conf ขึ้นมา<br />
แก้ไข option เกี่ยวกับการเชื่อมต่อ database ประมาณนี้</p>
<pre>DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zbx@localhost
</pre>
<p>แล้วก็ import database</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>doc<span style="color: #000000; font-weight: bold;">/</span>zabbix-server-mysql-<span style="color: #000000; font-weight: bold;">*/</span>create<span style="color: #000000; font-weight: bold;">/</span>schema<span style="color: #000000; font-weight: bold;">/</span>mysql.sql <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>doc<span style="color: #000000; font-weight: bold;">/</span>zabbix-server-mysql-<span style="color: #000000; font-weight: bold;">*/</span>create<span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/*</span>.sql <span style="color: #000000; font-weight: bold;">|</span> mysql <span style="color: #660033;">-u</span> zabbix <span style="color: #660033;">-p</span> zabbix</pre></div></div>

<p>แล้วเข้าเว็บได้เลยฮะ http://IP/zabbix/ มันจะเด้งเข้าหน้าติดตั้งให้เลย<br />
ก็ทำไปตามขั้นตอน ปรับตั้งค่า php.ini แล้วก็ระบุ user/pass เข้าฐานข้อมูลครับ<br />
เสร็จแล้วให้ login ด้วย user admin / pass zabbix</p>
<p>* สำหรับ directadmin สั่ง ln -s /usr/share/zabbix /var/www/html/ เพิ่มอีกคำสั่งครับ</p>
<p>ตอนต่อไป (ที่ไม่รู้ว่าจะมาเมื่อไหร่) พบกับการตั้งค่า zabbix เบื้องต้นครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.icez.net/blog/1392/zabbix-server-installation-centos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>0119 &#124; World IPv6 Day</title>
		<link>http://www.icez.net/blog/1151/world-ipv6-day</link>
		<comments>http://www.icez.net/blog/1151/world-ipv6-day#comments</comments>
		<pubDate>Tue, 07 Jun 2011 07:49:03 +0000</pubDate>
		<dc:creator>icez</dc:creator>
				<category><![CDATA[IP Network]]></category>

		<guid isPermaLink="false">http://www.icez.net/blog/?p=1151</guid>
		<description><![CDATA[ใกล้เข้ามาแล้วนะครับกับวันที่เว็บไซต์ใหญ่ๆ ทั่วโลกจะร่วมกันจัดการทดสอบการใช้งาน IPv6 ครั้งใหญ่ที่สุดของโลก โดยมีแกนนำคือ Google, Facebook, Yahoo, Akamai และ Limelight ดูรายชื่อเว็บได้ที่ http://worldipv6day.org/participant-websites/ เอาคร่าวๆ ก็&#8230; เว็บไซต์ชั้นนำของโลกหลักๆ ก็เข้าร่วมกันหมด ไล่มาตั้งแต่ห้าแกนนำ + Youtube ตามมาติดๆ ด้วย Cisco เจ้าพ่ออุปกรณ์เครือข่ายของโลก Microsoft Bing ก็ด้วย โดยการทดสอบก็คือ เว็บไซต์ทุกเว็บที่เข้าร่วม จะทำการเปิดให้เข้าถึง www.DOMAIN.com ของตัวเองผ่าน IPv6 ได้ด้วย (จากเดิมที่เปิดเฉพาะ IPv4) รอบนี้ @pawoot สั่งตรงมาเอง tarad.com ก็เลยเข้าร่วมแบบวุ่นวายกันพอสมควร (ฮา) จริงๆ แล้วเคยทดสอบมาได้พักนึงแล้วครับ ipv6 เนี่ย upic.me ก็มี http://v6.upic.me/ (แต่มันเข้าได้มั่งไม่ได้มั่ง อย่าไปพยายามเลย T_T) ทีนี้ จากที่ทำมาก็เจอปัญหาพอสมควร บวกกับเรื่องที่น่าห่วงอีกหลายๆ [...]]]></description>
			<content:encoded><![CDATA[<p>ใกล้เข้ามาแล้วนะครับกับวันที่เว็บไซต์ใหญ่ๆ ทั่วโลกจะร่วมกันจัดการทดสอบการใช้งาน IPv6 ครั้งใหญ่ที่สุดของโลก<br />
โดยมีแกนนำคือ Google, Facebook, Yahoo, Akamai และ Limelight<br />
ดูรายชื่อเว็บได้ที่ http://worldipv6day.org/participant-websites/<br />
เอาคร่าวๆ ก็&#8230; เว็บไซต์ชั้นนำของโลกหลักๆ ก็เข้าร่วมกันหมด ไล่มาตั้งแต่ห้าแกนนำ + Youtube<br />
ตามมาติดๆ ด้วย Cisco เจ้าพ่ออุปกรณ์เครือข่ายของโลก Microsoft Bing ก็ด้วย</p>
<p>โดยการทดสอบก็คือ เว็บไซต์ทุกเว็บที่เข้าร่วม จะทำการเปิดให้เข้าถึง<br />
www.DOMAIN.com ของตัวเองผ่าน IPv6 ได้ด้วย (จากเดิมที่เปิดเฉพาะ IPv4)<br />
รอบนี้ @<a href="http://twitter.com/pawoot" rel="nofollow" target="_blank" title="View pawoot's Twitter Profile">pawoot</a> สั่งตรงมาเอง tarad.com ก็เลยเข้าร่วมแบบวุ่นวายกันพอสมควร (ฮา)</p>
<p>จริงๆ แล้วเคยทดสอบมาได้พักนึงแล้วครับ ipv6 เนี่ย<br />
upic.me ก็มี http://v6.upic.me/ (แต่มันเข้าได้มั่งไม่ได้มั่ง อย่าไปพยายามเลย T_T)</p>
<p>ทีนี้ จากที่ทำมาก็เจอปัญหาพอสมควร บวกกับเรื่องที่น่าห่วงอีกหลายๆ อย่างที่คนดูแล network ไม่ควรมองข้ามเลย</p>
<p><span id="more-1151"></span></p>
<ul>
<li><strong>firewall</strong> ipv6 ไม่ได้ออกแบบมาให้มี private address (ถึงมันจะมี link-local address มาก็เหอะ) หมายความว่า เครื่องคอมพิวเตอร์ทุกเครื่องที่มี ipv6 สามารถคุยกันได้โดยตรงทั้งสองทาง ไม่ต้อง forward port ให้วุ่นวาย &#8230; หมายความว่า มันเปิดโอกาสให้ hacker เล่นงานได้สะดวกโยธินขึ้นเยอะ เพราะงั้น สิ่งสำคัญที่สุดของ ipv6 คือ firewall ครับ เปิดรอไว้ได้เลย ip6tables บน linux</li>
<li><strong>software compatibility</strong> ฝั่ง server ไม่ค่อยน่าห่วงเท่าไหร่ แต่ระดับ application ที่เอามาลง บาง app จะมีการเก็บหมายเลข IP ไว้ในฐานข้อมูล ซึ่งประกาศความกว้างรองรับไว้แค่ ipv4 (15 ตัวอักษร หรือเป็น integer 32bit) ซึ่งถ้าเกิดเข้าเว็บผ่าน ipv6 ก็จะทำให้การเก็บ log ไม่สมบูรณ์ ip ถูกตัดทอนหายไปไม่ครบหลักได้</li>
<li><strong>dual stack or native</strong>จริงๆ อันนี้ตัดสินใจไม่ยากครับ ช่วงนี้ก็ dual stack แหลก ไม่งั้นเกิดไปอยู่ในโลกของ ipv4 เดี๋ยวจะซวย connect ไปหา ipv6 ไม่ได้แล้วจะแย่ (ถึงมันมีตัวช่วยพวก tunnel ให้ก็เหอะ)</li>
<li><strong>transparent proxy</strong> ipv6 ไม่มี NAT แล้วนะครับ !!!! บน linux ipv6 ทำ nat ไม่ได้เลยไม่ว่ารูปแบบใดๆ ก็ตาม (ip6tables -t nat ขึ้น invalid table เลย) ทำให้หมดสิทธิ์ใช้งาน transparent proxy ที่ต้องการใช้ feature redirect port ไปเลยทีเดียว&#8230; แต่มีทางแก้ครับ squid version ใหม่รองรับการทำ transparent proxy แบบ TPROXY แล้ว (แต่ยังไม่สมบูรณ์) ยังไม่ได้ทดสอบ</li>
<li><strong>ip address assignment policy</strong> ipv6 มัน assign ทีนึงให้มาเป็น block ใหญ่ๆ แบบ /64 ขึ้นไป&#8230; การ assign ip address ก็เลยค่อนข้างวุ่นวาย โดยเฉพาะถ้าจะทำ static ip ให้ server &#8230; ตอนนี้ยังไม่มีอะไรในหัวเลยครับ แต่หลักๆ คือห้ามขี้โกงใช้ map ipv4 เป็น ipv6 ตรงๆ โดยเด็ดขาด</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.icez.net/blog/1151/world-ipv6-day/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>0109 &#124; Cloud Web Hosting</title>
		<link>http://www.icez.net/blog/804/cloud-web-hosting</link>
		<comments>http://www.icez.net/blog/804/cloud-web-hosting#comments</comments>
		<pubDate>Fri, 27 Aug 2010 17:59:25 +0000</pubDate>
		<dc:creator>icez</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[IP Network]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[carp]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[glusterfs]]></category>
		<category><![CDATA[high availability]]></category>

		<guid isPermaLink="false">http://www.icez.net/blog/?p=804</guid>
		<description><![CDATA[บทความต่อไปนี้เป็นเพียงการทดสอบทฤษฎี หรือ Proof of Concept เท่านั้น ยังทดสอบใช้งานจริงไม่ผ่านด้วยสาเหตุทั้งปวง เป้าหมายคือสร้างโฮสติ้งที่ล่มยากๆ และรองรับงานได้ปริมาณมากครับ (โลภมากเนาะมึงนี่) ฝั่ง web server ตรงนี้เป็น cluster ย่อมๆ เลย network ใช้ Virtual IP แต่ทำงานแบบ Dual Mode คือทุกเครื่องจะมีทั้ง Active VIP และ Standby VIP โดยที่ Active VIP ของเครื่อง 1 จะเป็น Standby VIP ของเครื่อง 2 อย่างนี้ไปเรื่อยๆ แล้วใช้ glusterfs ทำ replicate เก็บข้อมูล สามารถยัด node เพิ่มได้เรื่อยๆ ถ้าต้องการพื้นที่เพิ่ม ปัญหาอย่างเดียวที่เจอตอนนี้คือ database ครับ &#8230; มัน&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>บทความต่อไปนี้เป็นเพียงการทดสอบทฤษฎี หรือ Proof of Concept เท่านั้น ยังทดสอบใช้งานจริงไม่ผ่านด้วยสาเหตุทั้งปวง<br />
เป้าหมายคือสร้าง<a target="_blank" href="http://www.thzhost.com/"><b>โฮสติ้ง</b></a>ที่ล่มยากๆ และรองรับงานได้ปริมาณมากครับ<br />
(โลภมากเนาะมึงนี่)</p>
<p>ฝั่ง web server ตรงนี้เป็น cluster ย่อมๆ เลย network ใช้ Virtual IP แต่ทำงานแบบ Dual Mode คือทุกเครื่องจะมีทั้ง Active VIP และ Standby VIP<br />
โดยที่ Active VIP ของเครื่อง 1 จะเป็น Standby VIP ของเครื่อง 2 อย่างนี้ไปเรื่อยๆ<br />
แล้วใช้ glusterfs ทำ replicate เก็บข้อมูล สามารถยัด node เพิ่มได้เรื่อยๆ ถ้าต้องการพื้นที่เพิ่ม</p>
<p>ปัญหาอย่างเดียวที่เจอตอนนี้คือ database ครับ &#8230; มัน&#8230; ทำงานพร้อมกันแบบ active-active ไม่ได้ T_T<br />
ไม่สามารถใช้ master-master replication ได้ด้วยสาเหตุบางประการ เวลา master ล่ม จะ promote slave ขึ้นมาเป็น master แทนทันที<br />
สามารถสลับเครื่องไปมาตลอด แต่ใช้ ip เดียว วิ่งผ่าน Virtual IP อันนึงครับ<br />
อันนี้เขียน script ช่วยสลับเครื่องเพิ่มเติมไว้ด้วย ยังไม่รู้ว่าใช้งานจริงแล้วจะเน่าอนาถขนาดไหน</p>
<p>สรุป software ที่ใช้ (ในชุดทดสอบ)</p>
<p>- Linux CentOS 5.5 x86_64<br />
- Apache 2.2 / PHP 5.2 / MySQL 5.0<br />
- UCARP (Redundant Network Protocol)<br />
- GlusterFS 3.0.5 (Distributed Storage Engine)<br />
- Plesk 9.5 (Web Hosting Control Panel) ==> Concept ยังไม่ได้ทดสอบใช้งานจริง</p>
<p>จำนวนเครื่องในระบบขั้นต่ำ 4 เครื่อง แบ่งเป็น<br />
- Web Server + Storage 2<br />
- Database 2</p>
<p>ถ้าให้ดีขึ้นก็จับแยก storage ออกมาหน่อยจะดีมาก ด้านล่างเป็น diagram คร่าวๆ ครับ</p>
<p><span id="more-804"></span></p>
<p align="center">
 <a href="http://upic.me/show/16003745" target="_blank"><img border="0" src="http://upic.me/ts/i/pn/img_20100828_003209.jpg"></a><br />
 <a href="http://upic.me/show/16003748" target="_blank"><img border="0" src="http://upic.me/ts/i/4g/img_20100828_003349.jpg"></a><br />
 <a href="http://upic.me/show/16003753" target="_blank"><img border="0" src="http://upic.me/ts/i/90/img_20100828_003813.jpg"></a><br />
 <a href="http://upic.me/show/16003757" target="_blank"><img border="0" src="http://upic.me/ts/i/x4/img_20100828_004140.jpg"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.icez.net/blog/804/cloud-web-hosting/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>0108 &#124; GlusterFS High Availability Testbed</title>
		<link>http://www.icez.net/blog/802/glusterfs-high-availability-testbed</link>
		<comments>http://www.icez.net/blog/802/glusterfs-high-availability-testbed#comments</comments>
		<pubDate>Thu, 26 Aug 2010 20:49:51 +0000</pubDate>
		<dc:creator>icez</dc:creator>
				<category><![CDATA[IP Network]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[glusterfs]]></category>
		<category><![CDATA[high availability]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://www.icez.net/blog/?p=802</guid>
		<description><![CDATA[ยังไม่ขออธิบายอะไรก่อนนะครับ ไว้เขียนแยกอีกที (จะได้เขียนมั้ยเนี่ย) กดดูแบบ hd &#038; full screen นะครับ ไม่งั้นอ่านไม่ออกแน่ๆ (มือสั่นอย่างรุนแรง)]]></description>
			<content:encoded><![CDATA[<p>ยังไม่ขออธิบายอะไรก่อนนะครับ ไว้เขียนแยกอีกที (จะได้เขียนมั้ยเนี่ย)</p>
<p>กดดูแบบ hd &#038; full screen นะครับ ไม่งั้นอ่านไม่ออกแน่ๆ (มือสั่นอย่างรุนแรง)</p>
<p><object width="720" height="420"><param name="movie" value="http://www.youtube.com/v/gU6b5hKa0aA?fs=1&amp;hl=en_US&amp;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/gU6b5hKa0aA?fs=1&amp;hl=en_US&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="720" height="420"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.icez.net/blog/802/glusterfs-high-availability-testbed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>0107 &#124; upic.me traffic by country</title>
		<link>http://www.icez.net/blog/798/upic-me-traffic-by-country</link>
		<comments>http://www.icez.net/blog/798/upic-me-traffic-by-country#comments</comments>
		<pubDate>Thu, 26 Aug 2010 20:10:32 +0000</pubDate>
		<dc:creator>icez</dc:creator>
				<category><![CDATA[IP Network]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[upicme]]></category>

		<guid isPermaLink="false">http://www.icez.net/blog/?p=798</guid>
		<description><![CDATA[ปล่อยให้มันเก็บสถิติมาวันนึงเต็มๆ ตอนนี้ได้ผลออกมาแล้วครับ ข้อมูลจาก node th-inter ตัวที่ 1 &#8220;ตัวเดียว&#8221; ครับ ประมาณ 1/2 ของการใช้งานจากต่างประเทศ ยกเว้นประเทศสิงคโปร์ และอเมริกา ที่ส่วนใหญ่จะไปเข้า local node ก่อนอื่น&#8230; กราฟสวยๆ ดูดีเนาะ 555+ การใช้งานส่วนใหญ่มาจากฝั่งเอเชียนี่เองครับ จีน ไต้หวัน ญี่ปุ่น เกาหลี ฮ่องกง เวียดนาม ติด top 10 กันถ้วนหน้าเลยกับเว็บ upic.me (แหม่&#8230; ดีใจ 555) ส่วน US ที่ติดมาสืบเนื่องจาก node us มันก็มาดึงข้อมูลจาก node นี้ไปอีกทีแหละครับ ฮาๆ มาดูข้อมูลดิบกันบ้าง จำนวนการเรียกใช้งานทั้งหมด 3,742,108 ครั้ง ในเวลา 22 ชั่วโมงโดยประมาณ แยกเป็นประเทศได้ตามนี้ (หน่วยเป็น byte [...]]]></description>
			<content:encoded><![CDATA[<p>ปล่อยให้มันเก็บสถิติมาวันนึงเต็มๆ<br />
ตอนนี้ได้ผลออกมาแล้วครับ</p>
<p>ข้อมูลจาก node th-inter ตัวที่ 1 &#8220;ตัวเดียว&#8221; ครับ ประมาณ 1/2 ของการใช้งานจากต่างประเทศ<br />
ยกเว้นประเทศสิงคโปร์ และอเมริกา ที่ส่วนใหญ่จะไปเข้า local node</p>
<p>ก่อนอื่น&#8230; กราฟสวยๆ</p>
<p align="center"><a href="http://upic.me/show/15986815" target="_blank"><img border="0" src="http://upic.me/i/69/87q7c.png"></a></p>
<p>ดูดีเนาะ 555+<br />
การใช้งานส่วนใหญ่มาจากฝั่งเอเชียนี่เองครับ จีน ไต้หวัน ญี่ปุ่น เกาหลี ฮ่องกง เวียดนาม<br />
ติด top 10 กันถ้วนหน้าเลยกับเว็บ upic.me (แหม่&#8230; ดีใจ 555)</p>
<p>ส่วน US ที่ติดมาสืบเนื่องจาก node us มันก็มาดึงข้อมูลจาก node นี้ไปอีกทีแหละครับ ฮาๆ</p>
<p><span id="more-798"></span></p>
<p>มาดูข้อมูลดิบกันบ้าง</p>
<p>จำนวนการเรียกใช้งานทั้งหมด 3,742,108 ครั้ง ในเวลา 22 ชั่วโมงโดยประมาณ<br />
แยกเป็นประเทศได้ตามนี้ (หน่วยเป็น byte นะครับ)</p>
<p>China => 202,095,141,780<br />
Taiwan => 30,763,908,755<br />
Japan => 14,640,094,095<br />
Australia => 7,493,311,135<br />
Korea => 7,468,662,887<br />
Hong Kong => 6,542,781,622<br />
Norway => 4,919,033,297<br />
Vietnam => 3,853,647,397<br />
United States => 3,124,140,435<br />
Indonesia => 1,951,024,078<br />
Lao People&#8217;s Democratic Republic => 1,766,248,579<br />
Philippines => 1,704,711,565<br />
Singapore => 1,337,961,045<br />
Sweden => 1,107,215,911<br />
Saudi Arabia => 999,220,699<br />
Egypt => 868,521,618<br />
New Zealand => 723,835,429<br />
Netherlands => 632,524,618<br />
Switzerland => 617,493,578<br />
Spain => 526,749,286<br />
India => 514,174,899<br />
Romania => 441,918,501<br />
Denmark => 426,992,184<br />
Russian Federation => 421,435,931<br />
Satellite Provider => 361,535,996<br />
Brazil => 349,569,983<br />
Macao => 320,394,255<br />
Poland => 309,159,056<br />
Peru => 285,441,537<br />
Mexico => 280,519,642<br />
Belgium => 271,067,356<br />
Finland => 228,320,020<br />
Cambodia => 218,235,864<br />
Israel => 207,022,815<br />
Qatar => 201,281,637<br />
Ireland => 182,970,473<br />
Turkey => 181,759,920<br />
Chile => 173,441,405<br />
Iran => 171,209,368<br />
Portugal => 156,470,473<br />
Mongolia => 151,870,726<br />
Austria => 140,058,698<br />
Argentina => 134,664,927<br />
Hungary => 110,891,007<br />
Bulgaria => 107,699,820<br />
Colombia => 106,465,842<br />
Venezuela => 105,622,605<br />
Morocco => 87,054,948<br />
Kuwait => 66,969,144<br />
Brunei Darussalam => 66,926,526<br />
Greece => 65,023,869<br />
Myanmar => 64,619,894<br />
Latvia => 63,662,660<br />
Germany => 54,857,294<br />
Kazakhstan => 54,557,312<br />
Iceland => 50,645,677<br />
United Kingdom => 50,472,042<br />
Pakistan => 49,128,446<br />
Sri Lanka => 47,442,564<br />
Anonymous Proxy => 44,293,355<br />
South Africa => 40,663,825<br />
Tunisia => 39,690,111<br />
Croatia => 38,689,539<br />
Slovenia => 37,174,011<br />
Costa Rica => 35,742,173<br />
Slovakia => 34,062,566<br />
Oman => 33,970,500<br />
Panama => 30,140,865<br />
Ecuador => 28,924,437<br />
Syrian Arab Republic => 27,284,402<br />
Serbia => 27,167,138<br />
Bhutan => 26,489,490<br />
Sudan => 25,870,512<br />
Jordan => 25,649,128<br />
Mauritius => 25,299,294<br />
Puerto Rico => 24,150,921<br />
Algeria => 21,960,035<br />
Lithuania => 21,290,085<br />
Palestinian Territory => 20,965,637<br />
Bahrain => 20,053,995<br />
Libyan Arab Jamahiriya => 19,502,854<br />
Bolivia => 19,148,809<br />
France => 19,042,514<br />
Estonia => 18,837,829<br />
Dominican Republic => 16,682,118<br />
Yemen => 15,454,628<br />
Iraq => 15,210,516<br />
Paraguay => 15,003,142<br />
Azerbaijan => 14,008,267<br />
Angola => 13,663,817<br />
Bangladesh => 13,235,630<br />
Madagascar => 13,095,413<br />
Guatemala => 12,847,665<br />
Cyprus => 12,464,925<br />
Luxembourg => 11,510,883<br />
Nepal => 11,459,579<br />
Trinidad and Tobago => 11,336,978<br />
Guam => 10,297,892<br />
Malta => 10,271,033<br />
El Salvador => 9,751,282<br />
Maldives => 9,657,324<br />
Faroe Islands => 9,549,256<br />
Nigeria => 9,429,125<br />
N/A => 9,086,745<br />
Northern Mariana Islands => 8,964,550<br />
Cote d&#8217;Ivoire => 8,395,061<br />
Albania => 7,060,391<br />
Georgia => 6,486,080<br />
Uruguay => 5,978,795<br />
Tanzania => 5,792,166<br />
Macedonia => 5,462,526<br />
Jamaica => 5,446,743<br />
Cayman Islands => 5,300,771<br />
Virgin Islands => 5,047,478<br />
Ukraine => 4,682,547<br />
Moldova => 4,588,322<br />
Bosnia and Herzegovina => 4,265,196<br />
Italy => 3,669,517<br />
Greenland => 3,634,035<br />
Congo => 3,537,780<br />
Lebanon => 3,513,405<br />
Chad => 3,050,376<br />
Ghana => 2,974,198<br />
Senegal => 2,702,979<br />
Mozambique => 2,453,999<br />
Nicaragua => 2,411,013<br />
Belarus => 2,358,961<br />
Kenya => 2,189,134<br />
Honduras => 2,178,059<br />
Anguilla => 2,069,787<br />
Gabon => 1,959,629<br />
Guyana => 1,716,600<br />
Kyrgyzstan => 1,650,110<br />
Rwanda => 1,630,538<br />
Satellite Provider => 1,614,305<br />
Mauritania => 1,564,111<br />
Cameroon => 1,562,752<br />
Tajikistan => 1,351,951<br />
French Polynesia => 1,286,239<br />
Bahamas => 1,272,910<br />
Bermuda => 1,168,327<br />
Namibia => 1,122,896<br />
Equatorial Guinea => 968,711<br />
Ethiopia => 964,567<br />
Samoa => 928,088<br />
Czech Republic => 901,837<br />
Uzbekistan => 838,534<br />
Liechtenstein => 780,715<br />
Suriname => 763,885<br />
Satellite Provider => 761,500<br />
New Caledonia => 723,001<br />
Aruba => 689,709<br />
Jersey => 631,052<br />
Djibouti => 611,903<br />
Seychelles => 598,085<br />
Uganda => 577,081<br />
Mali => 551,049<br />
Zimbabwe => 520,859<br />
Burkina Faso => 484,435<br />
Fiji => 481,484<br />
Armenia => 465,542<br />
Aland Islands => 431,218<br />
Botswana => 425,821<br />
Saint Vincent and the Grenadines => 324,732<br />
Asia/Pacific Region => 304,056<br />
Cook Islands => 237,992<br />
Papua New Guinea => 209,561<br />
Barbados => 156,931<br />
Belize => 137,707<br />
Gibraltar => 132,739<br />
Grenada => 110,107<br />
Satellite Provider => 104,744<br />
Reunion => 85,409<br />
Montenegro => 82,144<br />
Saint Kitts and Nevis => 70,953<br />
Antigua and Barbuda => 21,244<br />
Saint Lucia => 12,181<br />
Monaco => 11,461</p>
]]></content:encoded>
			<wfw:commentRss>http://www.icez.net/blog/798/upic-me-traffic-by-country/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>0102 &#124; MRTG monitoring script for nginx</title>
		<link>http://www.icez.net/blog/710/mrtg-monitoring-script-for-nginx</link>
		<comments>http://www.icez.net/blog/710/mrtg-monitoring-script-for-nginx#comments</comments>
		<pubDate>Tue, 06 Jul 2010 04:27:20 +0000</pubDate>
		<dc:creator>icez</dc:creator>
				<category><![CDATA[IP Network]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[mrtg]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.icez.net/blog/?p=710</guid>
		<description><![CDATA[สร้างไฟล์ /root/bin/mrtg-nginx.pl ข้อมูลตามนี้ #!/usr/bin/perl # $Revision: 2 $ # $Date: 2008-09-12 15:11:40 +0300 (Fri, 12 Sep 2008) $ &#160; my %opt = &#40; # http link to nginx stub_status, be sure turn on stub_status in nginx conf nginx_status =&#62; 'http://localhost:80/status', # path for program what may dump web page, normaly lynx -dump # lynx =&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>สร้างไฟล์ /root/bin/mrtg-nginx.pl ข้อมูลตามนี้</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl</span>
<span style="color: #666666; font-style: italic;"># $Revision: 2 $</span>
<span style="color: #666666; font-style: italic;"># $Date: 2008-09-12 15:11:40 +0300 (Fri, 12 Sep 2008) $</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">%opt</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>
<span style="color: #666666; font-style: italic;"># http link to nginx stub_status, be sure turn on stub_status in nginx conf</span>
    nginx_status   <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'http://localhost:80/status'</span><span style="color: #339933;">,</span>
<span style="color: #666666; font-style: italic;"># path for program what may dump web page, normaly lynx -dump</span>
<span style="color: #666666; font-style: italic;">#    lynx            =&gt; 'lynx -dump',</span>
    lynx            <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'wget -q -Y off -O -'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>var<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ARGV</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">if</span> <span style="color: #0000ff;">$ARGV</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>nginx_status<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ARGV</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">if</span> <span style="color: #0000ff;">$ARGV</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">and</span> <span style="color: #0000ff;">$ARGV</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=~/^</span>http<span style="color: #339933;">:</span>\<span style="color: #339933;">/</span>\<span style="color: #339933;">/</span><span style="color: #0000ff;">\w</span><span style="color: #339933;">+/;</span>
<span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>var<span style="color: #009900;">&#125;</span> <span style="color: #339933;">||=</span> <span style="color: #ff0000;">''</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$do</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">`$opt{lynx} $opt{nginx_status}`</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>var<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'req'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$do</span><span style="color: #339933;">=~/^</span>Active connections<span style="color: #339933;">:</span>\<span style="color: #000066;">s</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">\d</span><span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span>\<span style="color: #000066;">s</span><span style="color: #339933;">*</span>$<span style="color: #339933;">/</span>ms <span style="color: #b1b100;">or</span> <span style="color: #000066;">warn</span> <span style="color: #ff0000;">&quot;Error! Can't find data!<span style="color: #000099; font-weight: bold;">\n</span>IN :<span style="color: #000099; font-weight: bold;">\n</span>$do&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>d2<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>d1<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>var<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'con'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$do</span><span style="color: #339933;">=~/^</span>\<span style="color: #000066;">s</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">\d</span><span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span>\<span style="color: #000066;">s</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">\d</span><span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span>\<span style="color: #000066;">s</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">\d</span><span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span>\<span style="color: #000066;">s</span><span style="color: #339933;">*</span>$<span style="color: #339933;">/</span>ms <span style="color: #b1b100;">or</span> <span style="color: #000066;">warn</span> <span style="color: #ff0000;">&quot;Error! Can't find data!<span style="color: #000099; font-weight: bold;">\n</span>IN :<span style="color: #000099; font-weight: bold;">\n</span>$do&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>d2<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>d1<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$3</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">#elsif { $do=~/^Reading:\s+(\d+).*Writing:\s+(\d+).*Waiting:\s+(\d+)/; }</span>
<span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>var<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'ERROR'</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>d2<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$opt</span><span style="color: #009900;">&#123;</span>d1<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">warn</span> <span style="color: #ff0000;">&quot;Error! Please read the help and set (req|con)<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;$opt{d1}<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;$opt{d2}<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">#print &quot;$opt{up}\n&quot; if $opt{up};</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Nginx $opt{var}<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>เสร็จแล้วสั่ง<br />
chmod a+x /root/bin/mrtg-nginx.pl<br />
ให้รันได้</p>
<p>แล้วเอาไอ้นี่ไปใส่ใน nginx.conf ส่วนของ vhost นะครับ</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">location <span style="color: #339933;">/</span>status <span style="color: #009900;">&#123;</span>
    stub_status on<span style="color: #339933;">;</span>
    access_log off<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>แล้วก็&#8230; อันนี้เอาไปใส่ใน mrtg.cfg</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Target<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>newconns<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> `<span style="color: #339933;">/</span>root<span style="color: #339933;">/</span>bin<span style="color: #339933;">/</span>mrtg<span style="color: #339933;">-</span>nginx<span style="color: #339933;">.</span>pl con`
Title<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>newconns<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> NGINX Connections
PageTop<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>newconns<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> <span style="color: #339933;">&lt;</span>H1<span style="color: #339933;">&gt;</span>NGINX Connections<span style="color: #339933;">&lt;/</span>H1<span style="color: #339933;">&gt;</span>
MaxBytes<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>newconns<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> <span style="color: #cc66cc;">10000000000</span>
ShortLegend<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>newconns<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> c<span style="color: #339933;">/</span>s
YLegend<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>newconns<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> Conns <span style="color: #339933;">/</span> sec
LegendI<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>newconns<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> In
LegendO<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>newconns<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span>
Legend1<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>newconns<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">New</span> inbound connections
Legend2<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>newconns<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span>
Options<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>newconns<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> growright<span style="color: #339933;">,</span>nopercent
&nbsp;
Target<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>requests<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> `<span style="color: #339933;">/</span>root<span style="color: #339933;">/</span>bin<span style="color: #339933;">/</span>mrtg<span style="color: #339933;">-</span>nginx<span style="color: #339933;">.</span>pl req`
Title<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>requests<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> NGINX Requests
PageTop<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>requests<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> <span style="color: #339933;">&lt;</span>H1<span style="color: #339933;">&gt;</span>NGINX Requests<span style="color: #339933;">&lt;/</span>H1<span style="color: #339933;">&gt;</span>
MaxBytes<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>requests<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> <span style="color: #cc66cc;">10000000000</span>
ShortLegend<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>requests<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> req
YLegend<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>requests<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> Req
LegendI<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>requests<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> In
LegendO<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>requests<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span>
Legend1<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>requests<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">New</span> inbound connections
Legend2<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>requests<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span>
Options<span style="color: #009900;">&#91;</span>nginx<span style="color: #339933;">.</span>requests<span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> growright<span style="color: #339933;">,</span>nopercent<span style="color: #339933;">,</span>gauge</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.icez.net/blog/710/mrtg-monitoring-script-for-nginx/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>0100 &#124; บริการ Public DNS ช่วยให้เข้าเว็บได้เร็วขึ้นจริงหรือ?</title>
		<link>http://www.icez.net/blog/686/did-public-dns-make-web-browsing-faster</link>
		<comments>http://www.icez.net/blog/686/did-public-dns-make-web-browsing-faster#comments</comments>
		<pubDate>Wed, 16 Jun 2010 13:31:27 +0000</pubDate>
		<dc:creator>icez</dc:creator>
				<category><![CDATA[IP Network]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://www.icez.net/blog/?p=686</guid>
		<description><![CDATA[บทความนี้เรียบเรียงมาจากต้นฉบับตามนี้ครับ http://www.neowin.net/news/public-dns-providers-do-they-actually-improve-your-experience . บริการ Public DNS จำพวก OpenDNS และ Google Public DNS ได้รับความสนใจอย่างมากเนื่องด้วยการโฆษณาว่าสามารถเพิ่มความเร็วในการเข้าชมเว็บไซต์ได้มากขึ้นเพียงแค่เปลี่ยนการตั้งค่า DNS resolver บนเครื่องคอมพิวเตอร์ของคุณเท่านั้น สาเหตุหนึ่งก็เนื่องมาจาก ISP หลายๆ รายไม่ได้ลงทุนในการทำโครงสร้าง DNS ให้ดี ซึ่งทำให้ความเร็วในการตอบสนองช้าโดยเฉพาะช่วงเวลาเร่งด่วน จึงได้มีบริการ Public DNS ที่สร้างเพื่อรองรับปริมาณกาการใช้งาน DNS มหาศาลเหล่านี้&#8230; แต่มันดีขึ้นจริงๆ หรือ? ก่อนอื่น เราต้องเข้าใจก่อนว่า ISP ที่เราใช้บริการอยู่ จะมี DNS resolver ที่ติดตั้งอยู่ภายในเครือข่ายเดียวกับที่เราต่อเน็ตเข้าไป ส่วนการใช้บริการจากภายนอกอย่างเช่น OpenDNS หรือ Google DNS service นั้นจะเป็นการเชื่อมต่อออกภายนอกเครือข่าย ซึ่งทำให้การติดต่อ DNS เหล่านั้นต้องเดินทางไกลขึ้นเพื่อที่จะไปให้ถึง Server (โดยเฉพาะการใช้งานจากประเทศไทย ที่ไม่ว่า Google DNS หรือ [...]]]></description>
			<content:encoded><![CDATA[<p>บทความนี้เรียบเรียงมาจากต้นฉบับตามนี้ครับ<br />
<a href="http://www.neowin.net/news/public-dns-providers-do-they-actually-improve-your-experience">http://www.neowin.net/news/public-dns-providers-do-they-actually-improve-your-experience</a></p>
<p>.</p>
<p>บริการ Public DNS จำพวก <a href="http://www.blognone.com/node/2625">OpenDNS</a> และ <a href="http://www.blognone.com/node/14139/">Google Public DNS</a> ได้รับความสนใจอย่างมากเนื่องด้วยการโฆษณาว่าสามารถเพิ่มความเร็วในการเข้าชมเว็บไซต์ได้มากขึ้นเพียงแค่เปลี่ยนการตั้งค่า DNS resolver บนเครื่องคอมพิวเตอร์ของคุณเท่านั้น สาเหตุหนึ่งก็เนื่องมาจาก ISP หลายๆ รายไม่ได้ลงทุนในการทำโครงสร้าง DNS ให้ดี ซึ่งทำให้ความเร็วในการตอบสนองช้าโดยเฉพาะช่วงเวลาเร่งด่วน จึงได้มีบริการ Public DNS ที่สร้างเพื่อรองรับปริมาณกาการใช้งาน DNS มหาศาลเหล่านี้&#8230; แต่มันดีขึ้นจริงๆ หรือ?</p>
<p>ก่อนอื่น เราต้องเข้าใจก่อนว่า ISP ที่เราใช้บริการอยู่ จะมี DNS resolver ที่ติดตั้งอยู่ภายในเครือข่ายเดียวกับที่เราต่อเน็ตเข้าไป ส่วนการใช้บริการจากภายนอกอย่างเช่น OpenDNS หรือ Google DNS service นั้นจะเป็นการเชื่อมต่อออกภายนอกเครือข่าย ซึ่งทำให้การติดต่อ DNS เหล่านั้นต้องเดินทางไกลขึ้นเพื่อที่จะไปให้ถึง Server (โดยเฉพาะการใช้งานจากประเทศไทย ที่ไม่ว่า Google DNS หรือ OpenDNS ล้วนแล้วแต่อยู่ต่างประเทศทั้งสิ้น : เพิ่มเติมโดยผู้แปล) และอย่าลืมว่า การเดินทางที่ไกลขึ้น เท่ากับว่าต้องใช้เวลามากขึ้นกว่าการรับส่งข้อมูลจะสมบูรณ์</p>
<p>* เพิ่มเติม: การใช้งาน Google DNS ในประเทศไทย จะติดต่อไปยัง server ของ Google ที่สิงคโปร์ ส่วน OpenDNS นั้นต้องติดต่อไปไกลถึงอเมริกาเลยทีเดียว</p>
<p>แล้ว DNS มีผลต่อการเข้าชมเว็บไซต์มากขนาดไหน? คำตอบคือ &#8220;น้อยมาก&#8221; เพราะการเข้าชมเว็บไซต์แต่ละครั้ง ใน &#8220;ครั้งแรก&#8221; ก่อนการเชื่อมต่อ เครื่องคอมพิวเตอร์จะสอบถามข้อมูล IP ของเว็บไซต์ไปยัง DNS resolver ตามที่ได้ระบุไว้ จากนั้นจึง &#8220;เก็บ&#8221; ข้อมูลดังกล่าวไว้ภายในหน่วยความจำตลอดการเข้าใช้งาน หรือจนกว่าข้อมูลจะหมดอายุไปตามที่ได้ระบุใน DNS ของแต่ละ domain เอง (ในค่า TTL) ดังนั้นถึงแม้ว่าการที่เราใช้ DNS resolver ที่เร็วกว่า ก็ไม่ได้หมายความว่าเราจะสามารถโหลดข้อมูลเว็บไซต์ได้เร็วกว่าแต่อย่างใด ในทางปฏิบัติจริงๆ แล้ว มันสามารถช่วยได้เพียงเล็กน้อย &#8230; ซึ่งวัดกันในหน่วย มิลลิวินาที (1/1000 วินาที) ด้วยซ้ำไป</p>
<p>แล้วทีนี้? ปัจจุบันเนื่องจากปริมาณข้อมูลที่ถูกสร้างจากผู้ใช้ (user-generated content) มีมากขึ้นเรื่อยๆ ประกอบกับการขยายตัวของบริการซอฟต์แวร์ (software-as-a-service) ทำให้หลายๆ บริษัทมองมาที่ระบบ CDN (Content Delivery Networks) ที่ช่วยกระจายข้อมูลให้ผู้ใช้งาน โดยหลักการง่ายๆ ก็คือ ระบบ CDN จะกระจายข้อมูลเหมือนๆ กันลงไปที่แต่ละ node ทั่วโลก แล้วเมื่อผู้ใช้ต้องการเรียกใช้งาน ระบบ CDN ก็จะส่งข้อมูลไปให้จาก node ที่อยู่ &#8220;ใกล้ผู้ใช้&#8221; มากที่สุด ทำให้ผู้ใช้สามารถเรียกข้อมูลได้เร็วขึ้นมาก รวมถึงการลดปริมาณการใช้งาน bandwidth ของเจ้าของเว็บไซต์อีกด้วย</p>
<p>แล้ว DNS มาเกี่ยวอะไรด้วย? วิธีตรวจสอบที่อยู่ว่า ผู้ใช้ร้องขอการใช้งานจากส่วนไหนของโลกของ CDN ส่วนใหญ่ จะใช้วิธีตรวจสอบจากที่มาของการสอบถามข้อมูล IP ผ่าน DNS resolver &#8230; ซึ่งการสอบถาม IP นี้ browser จะสอบถามไปยัง DNS resolver ตามที่ตั้งค่าไว้ จากนั้น DNS resolver ดังกล่าวจึงไปร้องขอข้อมูล IP จาก Nameserver ที่รับการใช้งานของ domain นั้นๆ อีกที (เรียกว่า Authoritive NS) แล้ว Nameserver ก็จะตรวจสอบที่มาของการร้องขอข้อมูลนั้น แล้วส่ง IP ที่อยู่พื้นที่ใกล้เคียงที่สุดไปให้</p>
<p>ปัญหามันเกิดขึ้นเมื่อ&#8230; คุณไม่ได้ใช้ DNS resolver ของ ISP ที่อยู่ใกล้เคียงคุณมากที่สุด นั่นจะทำให้คุณได้รับ IP ของ CDN ที่อยู่ใกล้เคียง DNS resolver แทน อย่างเช่นหากคุณใช้บริการอย่าง OpenDNS ไปร้องขอ IP ของเว็บไซต์ &#8230; คุณจะได้รับ IP ของประเทศอเมริกากลับมา ทำให้การใช้งานเป็นไปอย่างล่าช้ามากกว่าเดิมมาก ซึ่งเป็นผลให้คุณเข้าถึงข้อมูลที่อยู่บนบริการ CDN ได้ช้าลงมากๆ ด้วย และอย่าลืมว่า DNS request ใช้ปริมาณข้อมูลเพียงไม่กี่ byte เท่านั้น แต่การรับส่งข้อมูลของบริการ CDN นั้นต่างกันอย่างมหาศาล เนื่องจากข้อมูลส่วนใหญ่ของ CDN จะเป็นรูปภาพและวีดีโอ ซึ่งขนาดใหญ่กว่ากันมากขึ้นอย่างสังเกตได้ชัดเจนมากๆ เลยทีเดียว</p>
<p>ถึงแม้ว่า OpenDNS จะมีบริการเสริมอย่างเช่นการกรองข้อมูล และป้องกันฟิชชิ่ง (phishing) ด้วยก็ตาม แต่ถ้าเป้าหมายหลักของคุณคือการทำให้การเข้าเว็บเร็วขึ้น ดังนั้นควรเลี่ยงบริการ public DNS เหล่านี้ โดยเฉพาะหากเว็บไซต์ที่คุณเข้าใช้บริการบ่อยๆ มีการใช้ CDN ด้วยอย่างเช่น Facebook และ Youtube</p>
<p>.</p>
<p>.</p>
<p>ด้านล่างนี่ผลการทดสอบครับ<br />
ต้นทางทดสอบจาก CAT-IDC กสท.บางรักครับ</p>
<p>Google Public DNS<br />
Answer = 58.27.22.0/24 => Malaysia<br />
Time = 42ms</p>
<blockquote><p>;; QUESTION SECTION:<br />
;static.ak.fbcdn.net.           IN      A</p>
<p>;; ANSWER SECTION:<br />
static.ak.fbcdn.net.    5226    IN      CNAME   static.ak.facebook.com.edgesuite.net.<br />
static.ak.facebook.com.edgesuite.net. 19130 IN CNAME a749.g.akamai.net.<br />
a749.g.akamai.net.      14      IN      A       58.27.22.26<br />
a749.g.akamai.net.      14      IN      A       58.27.22.91<br />
a749.g.akamai.net.      14      IN      A       58.27.22.65<br />
a749.g.akamai.net.      14      IN      A       58.27.22.9<br />
a749.g.akamai.net.      14      IN      A       58.27.22.32<br />
a749.g.akamai.net.      14      IN      A       58.27.22.42</p>
<p>;; Query time: 42 msec<br />
;; SERVER: 8.8.8.8#53(8.8.8.8)<br />
;; WHEN: Wed Jun 16 19:59:15 2010<br />
;; MSG SIZE  rcvd: 208</p></blockquote>
<p>OpenDNS<br />
Answer = 208.50.77.0/24 => USA<br />
Time = 236ms</p>
<blockquote><p>;; QUESTION SECTION:<br />
;static.ak.fbcdn.net.           IN      A</p>
<p>;; ANSWER SECTION:<br />
static.ak.fbcdn.net.    6302    IN      CNAME   static.ak.facebook.com.edgesuite.net.<br />
static.ak.facebook.com.edgesuite.net. 20706 IN CNAME a749.g.akamai.net.<br />
a749.g.akamai.net.      10      IN      A       208.50.77.113<br />
a749.g.akamai.net.      10      IN      A       208.50.77.72<br />
a749.g.akamai.net.      10      IN      A       208.50.77.81<br />
a749.g.akamai.net.      10      IN      A       208.50.77.96</p>
<p>;; Query time: 236 msec<br />
;; SERVER: 208.67.222.222#53(208.67.222.222)<br />
;; WHEN: Wed Jun 16 19:59:33 2010<br />
;; MSG SIZE  rcvd: 176</p></blockquote>
<p>THZHosting Public DNS (node ที่ csloxinfo cbw idc)<br />
Answer = 203.146.247.0/24 => Thailand (CSLoxinfo)<br />
Time = 4ms</p>
<blockquote><p>;; QUESTION SECTION:<br />
;static.ak.fbcdn.net.           IN      A</p>
<p>;; ANSWER SECTION:<br />
static.ak.fbcdn.net.    7121    IN      CNAME   static.ak.facebook.com.edgesuite.net.<br />
static.ak.facebook.com.edgesuite.net. 21522 IN CNAME a749.g.akamai.net.<br />
a749.g.akamai.net.      20      IN      A       203.146.247.38<br />
a749.g.akamai.net.      20      IN      A       203.146.247.37</p>
<p>;; Query time: 4 msec<br />
;; SERVER: 203.146.215.116#53(203.146.215.116)<br />
;; WHEN: Wed Jun 16 19:59:58 2010<br />
;; MSG SIZE  rcvd: 306
</p></blockquote>
<p>CAT ISP DNS Server<br />
Answer = 61.19.12.0/24 => Thailand (CAT IDC)<br />
Time = 0ms</p>
<blockquote><p>;; QUESTION SECTION:<br />
;static.ak.fbcdn.net.           IN      A</p>
<p>;; ANSWER SECTION:<br />
static.ak.fbcdn.net.    3800    IN      CNAME   static.ak.facebook.com.edgesuite.net.<br />
static.ak.facebook.com.edgesuite.net. 18200 IN CNAME a749.g.akamai.net.<br />
a749.g.akamai.net.      20      IN      A       61.19.12.41<br />
a749.g.akamai.net.      20      IN      A       61.19.12.72</p>
<p>;; Query time: 0 msec<br />
;; SERVER: 61.19.245.245#53(61.19.245.245)<br />
;; WHEN: Wed Jun 16 20:27:49 2010<br />
;; MSG SIZE  rcvd: 150</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.icez.net/blog/686/did-public-dns-make-web-browsing-faster/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>0098 &#124; ปิดงาน admission 2553</title>
		<link>http://www.icez.net/blog/633/%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b8%87%e0%b8%b2%e0%b8%99-admission-2553</link>
		<comments>http://www.icez.net/blog/633/%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b8%87%e0%b8%b2%e0%b8%99-admission-2553#comments</comments>
		<pubDate>Fri, 07 May 2010 15:25:17 +0000</pubDate>
		<dc:creator>icez</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[IP Network]]></category>
		<category><![CDATA[PHP Coding]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[admission]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://www.icez.net/blog/?p=633</guid>
		<description><![CDATA[ปีนี้พิเศษนิดนึงที่ admissions.mxphone.com และเว็บประกาศผลในเครือ bodinzone ทั้งหมด จะยิงมายัง server เดียวเพื่อทดสอบประสิทธิภาพระบบ cloud computing ครับ (แหม่ ใช้คำซะอินเทรนด์) เอาจริงๆ มันก็ไม่เชิง cloud หรอก แค่เปลี่ยนระบบจัดการข้อมูลใหม่นิดหน่อยเพื่อให้แก้ไขระบบได้สะดวกขึ้น และเสี่ยงต่อการถูกโจมตีจนระบบล่มใช้งานไม่ได้ (DDoS) น้อยลง เนื่องจากการเข้าใช้งานเป็นไปในลักษณะนั้น ผลงานรอบนี้ ขอยกความดีความชอบให้ @rtsp ได้เลยครับ ส่วนความผิดพลาดทั้งหลายผมขอน้อมรับไว้เอง เนื่องด้วยยังอ่อนประสบการณ์เรื่องนี้พอดี T_T ทำให้ระบบร่วงไปประมาณ 30 นาที (ช่วง 17.30 &#8211; 18.00 น.) (มีเวลาเตรียมงาน นับเป็นชั่วโมงก็ราวๆ 4-5 ชั่วโมง แทบไม่ได้ทดสอบอะไรระบบใหม่นี้เลย) แต่ดูแล้ว ผลเป็นที่น่าพอใจ และปีหน้าไม่พลาดแล้วครับ cloud computing จงเจริญ สถิติ: ปริมาณ bandwidth peak 11.6 Mbps เมื่อ [...]]]></description>
			<content:encoded><![CDATA[<p>ปีนี้พิเศษนิดนึงที่ admissions.mxphone.com และเว็บประกาศผลในเครือ bodinzone ทั้งหมด<br />
จะยิงมายัง server เดียวเพื่อทดสอบประสิทธิภาพระบบ cloud computing ครับ (แหม่ ใช้คำซะอินเทรนด์)</p>
<p>เอาจริงๆ มันก็ไม่เชิง cloud หรอก แค่เปลี่ยนระบบจัดการข้อมูลใหม่นิดหน่อยเพื่อให้แก้ไขระบบได้สะดวกขึ้น<br />
และเสี่ยงต่อการถูกโจมตีจนระบบล่มใช้งานไม่ได้ (DDoS) น้อยลง เนื่องจากการเข้าใช้งานเป็นไปในลักษณะนั้น</p>
<p>ผลงานรอบนี้ ขอยกความดีความชอบให้ @<a href="https://twitter.com/rtsp">rtsp</a> ได้เลยครับ ส่วนความผิดพลาดทั้งหลายผมขอน้อมรับไว้เอง<br />
เนื่องด้วยยังอ่อนประสบการณ์เรื่องนี้พอดี T_T ทำให้ระบบร่วงไปประมาณ 30 นาที (ช่วง 17.30 &#8211; 18.00 น.)<br />
(มีเวลาเตรียมงาน นับเป็นชั่วโมงก็ราวๆ 4-5 ชั่วโมง แทบไม่ได้ทดสอบอะไรระบบใหม่นี้เลย)</p>
<p><a href="http://upic.me/e63ek" target="_blank"><img border="0" src="http://upic.me/i/pf/9dvwc.png"></a></p>
<p>แต่ดูแล้ว ผลเป็นที่น่าพอใจ และปีหน้าไม่พลาดแล้วครับ cloud computing จงเจริญ</p>
<p>สถิติ:<br />
ปริมาณ bandwidth peak 11.6 Mbps เมื่อ 18.05 น.โดยประมาณ (แทบจะทันทีที่ระบบกลับมาใช้ได้)<br />
ปริมาณการร้องขอเข้าใช้งานสูงสุด ณ เวลานั้น 1200 ครั้ง ต่อวินาที โดยประมาณ<br />
CPU ช่วงจังหวะสูงสุดใช้ประมาณ 3 Core เต็มๆ (เทียบจาก Core 2 Quad ความเร็ว 2.53 GHz)<br />
RAM ใช้ไปประมาณ 2GB</p>
<p>ข้อมูลเชิงเทคนิค<br />
Web Server: lighttpd 1.4.19<br />
Server-Side Scripting: PHP 5.2.6<br />
Database: MySQL 5.0.51<br />
IDC: <a href="http://www.servenet.co.th">ServeNet</a></p>
<p>ปีหน้าเอา atom server มารันดีมั้ยเนี่ย :D</p>
]]></content:encoded>
			<wfw:commentRss>http://www.icez.net/blog/633/%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b8%87%e0%b8%b2%e0%b8%99-admission-2553/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>0096 &#124; เบื้องหลังความแรงของ upic.me</title>
		<link>http://www.icez.net/blog/546/upic-me-server-facility</link>
		<comments>http://www.icez.net/blog/546/upic-me-server-facility#comments</comments>
		<pubDate>Fri, 19 Feb 2010 13:29:21 +0000</pubDate>
		<dc:creator>icez</dc:creator>
				<category><![CDATA[IP Network]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[upicme]]></category>

		<guid isPermaLink="false">http://www.icez.net/blog/?p=546</guid>
		<description><![CDATA[อธิบายสั้นๆ ง่ายๆ ด้วยสองรูปนี้ ว่าแต่&#8230; แรงจริงเรอะ (ฮาาาาา)]]></description>
			<content:encoded><![CDATA[<p align="center">อธิบายสั้นๆ ง่ายๆ ด้วยสองรูปนี้</p>
<p align="center"><a href="http://upic.me/i/df/8l9kc.jpg" target="_blank" rel="lightbox[546]"><img border="0" src="http://upic.me/tw/i/df/8l9kc.jpg"></a> <a href="http://upic.me/i/i3/0uakc.jpg" target="_blank" rel="lightbox[546]"><img border="0" src="http://upic.me/tw/i/i3/0uakc.jpg"></a></p>
<p align="center">ว่าแต่&#8230; แรงจริงเรอะ (ฮาาาาา)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.icez.net/blog/546/upic-me-server-facility/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>0086 &#124; Postfix + DomainKeys + DKIM</title>
		<link>http://www.icez.net/blog/398/postfix-domainkeys-dkim</link>
		<comments>http://www.icez.net/blog/398/postfix-domainkeys-dkim#comments</comments>
		<pubDate>Sat, 14 Nov 2009 16:15:52 +0000</pubDate>
		<dc:creator>icez</dc:creator>
				<category><![CDATA[IP Network]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[bulk mail]]></category>
		<category><![CDATA[dkim]]></category>
		<category><![CDATA[domainkeys]]></category>
		<category><![CDATA[postfix]]></category>

		<guid isPermaLink="false">http://www.icez.net/blog/?p=398</guid>
		<description><![CDATA[เป็นการติดตั้ง mail server สำหรับส่ง bulk mail ปริมาณมหาศาล (พยายามทำให้ถึงวันละห้าแสนฉบับอยู่) แต่ย้ำก่อนนะครับว่าต่อให้ใช้วิธีนี้ แล้วส่ง mail ที่เป็น spam ยังไงก็ติด blacklist อยู่ดี ไม่มีประโยชน์ วิธีการติดตั้งด้านล่างเป็นวิธีสำหรับ OS เปล่าๆ หรือไม่มี control panel เท่านั้นครับ หากมี control panel อยู่จะไม่สามารถใช้งานได้ เพราะมันตีกัน ส่วนไฟล์ มันมีแต่ของ centos 5 x86_64 นะครับ OS อื่นหนูไม่รู้ววว์ dkim-milter-2.8.3-2.el5.x86_64.rpm dk-milter-1.0.2-0.x86_64.rpm &#160; &#160; prepare yourself! ก่อนอื่น ลบ MTA ทั้งหมดที่มีทิ้ง ไม่ว่าจะเป็น sendmail postfix exim qmail อะไรก็ตามแต่ แล้วลงแค่ postfix [...]]]></description>
			<content:encoded><![CDATA[<p>เป็นการติดตั้ง mail server สำหรับส่ง bulk mail ปริมาณมหาศาล<br />
(พยายามทำให้ถึงวันละห้าแสนฉบับอยู่)<br />
แต่ย้ำก่อนนะครับว่าต่อให้ใช้วิธีนี้ แล้วส่ง mail ที่เป็น spam ยังไงก็ติด blacklist อยู่ดี ไม่มีประโยชน์</p>
<p>วิธีการติดตั้งด้านล่างเป็นวิธีสำหรับ OS เปล่าๆ หรือไม่มี control panel เท่านั้นครับ<br />
หากมี control panel อยู่จะไม่สามารถใช้งานได้ เพราะมันตีกัน</p>
<p>ส่วนไฟล์ มันมีแต่ของ centos 5 x86_64 นะครับ OS อื่นหนูไม่รู้ววว์</p>
<blockquote><p><a href="http://www.thzhost.com/files/dkim-milter-2.8.3-2.el5.x86_64.rpm">dkim-milter-2.8.3-2.el5.x86_64.rpm</a><br />
<a href="http://www.thzhost.com/files/dk-milter-1.0.2-0.x86_64.rpm">dk-milter-1.0.2-0.x86_64.rpm</a></p></blockquote>
<p>&nbsp;<br />
<br />&nbsp;</p>
<h2>prepare yourself!</h2>
<p>ก่อนอื่น ลบ MTA ทั้งหมดที่มีทิ้ง ไม่ว่าจะเป็น sendmail postfix exim qmail อะไรก็ตามแต่<br />
แล้วลงแค่ postfix ใหม่ๆ เลย</p>
<blockquote><p>yum install postfix sendmail<br />
chkconfig sendmail off<br />
chkconfig postfix on<br />
service sendmail stop<br />
service postfix start<br />
rpm -Uvh dk-milter-1.0.2-0.x86_64.rpm dkim-milter-2.8.3-2.el5.x86_64.rpm<br />
usermod -g 89 dkim-milter<br />
chkconfig dkim-milter on<br />
chkconfig dk-milter on<br />
chown postfix.postfix /usr/sbin/dkim-filter<br />
chown postfix -R /etc/mail/dkim-milter/keys<br />
rm -f /var/run/dkim-milter/dkim-milter.sock
</p></blockquote>
<p>&nbsp;<br />
<br />&nbsp;</p>
<p><span id="more-398"></span></p>
<h2>แก้ config !!!</h2>
<p>เปิดไฟล์ <strong>/etc/mail/dkim-milter/dkim-filter.conf</strong><br />
หา <strong style="color: blue;"># AuthservID            example.com</strong><br />
เอา comment ออก แล้วแก้ example.com เป็นชื่อ domain เช่น yourdomain.com</p>
<p>แล้วเลื่อนลงมาอีกหน่อย หา <strong style="color: blue;"># Domain                        example.com</strong><br />
เอา comment ออก ลบ example.com ทิ้ง แล้วใส่รายการ domain ที่ต้องการให้ sign DKIM (ถ้ามีหลาย domain ก็ใส่ , คั่น)</p>
<p>เลื่อนลงมาอีก หา <strong style="color: blue;">Selector                my-selector-name</strong><br />
แก้ my-selector-name เป็น default</p>
<p>เสร็จไป 1 ไฟล์ (ยังเหลืออีกบาน ฮาๆ)</p>
<p>&nbsp;<br />
<br />&nbsp;</p>
<p>ทีนี้&#8230; เปิดไฟล์ <strong>/etc/mail/dkim-milter/keys/keylist</strong><br />
ใส่ข้อมูลตามนี้</p>
<blockquote><p>*@<u style="color: red;">example.com</u>:<u style="color: red;">example.com</u>:/etc/dkim-milter/<u style="color: red;">example.com</u>/default</p></blockquote>
<p>อย่าลืมแก้ example.com เป็นชื่อ domain ที่ต้องการ sign ด้วยนะครับ<br />
ถ้ามีหลาย domain ก็ใส่บรรทัดละ 1 domain</p>
<p>&nbsp;<br />
<br />&nbsp;</p>
<p>เปิดไฟล์ /etc/sysconfig/dkim-milter<br />
เอา comment หน้า บรรทัด <strong style="color: blue;"># EXTRA_FLAGS=-bs</strong> ออก แล้วก็เซฟ</p>
<p>&nbsp;<br />
<br />&nbsp;</p>
<p>เปิดไฟล์ /etc/init.d/dkim-milter<br />
หาบรรทัดที่เขียนว่า user=${name} (ปกติจะอยู่บรรทัดที่ 19)<br />
แก้เป็น user=postfix</p>
<p>&nbsp;<br />
<br />&nbsp;</p>
<p>เปิดไฟล์ /etc/sysconfig/dk-milter</p>
<blockquote><p>#USER=&#8221;dk-milt&#8221;<br />
#<a href="http://search.twitter.com/search?q=%23PORT" rel="nofollow" target="_blank" title="Search Twitter for &quot;PORT&quot;">PORT</a>=&#8221;local:/var/run/dk-milter/dk.sock&#8221;<br />
#<a href="http://search.twitter.com/search?q=%23SIGNING_DOMAIN" rel="nofollow" target="_blank" title="Search Twitter for &quot;SIGNING_DOMAIN&quot;">SIGNING_DOMAIN</a>=&#8221;<u style="color: red;">example.com</u>&#8221;<br />
#<a href="http://search.twitter.com/search?q=%23SELECTOR_NAME" rel="nofollow" target="_blank" title="Search Twitter for &quot;SELECTOR_NAME&quot;">SELECTOR_NAME</a>=&#8221;<u style="color: red;">default</u>&#8221;<br />
#<a href="http://search.twitter.com/search?q=%23KEYFILE" rel="nofollow" target="_blank" title="Search Twitter for &quot;KEYFILE&quot;">KEYFILE</a>=&#8221;/etc/mail/domainkeys/dk_${SIGNING_DOMAIN}.pem&#8221;<br />
#<a href="http://search.twitter.com/search?q=%23SIGNER" rel="nofollow" target="_blank" title="Search Twitter for &quot;SIGNER&quot;">SIGNER</a>=yes<br />
#<a href="http://search.twitter.com/search?q=%23VERIFIER" rel="nofollow" target="_blank" title="Search Twitter for &quot;VERIFIER&quot;">VERIFIER</a>=yes<br />
#<a href="http://search.twitter.com/search?q=%23CANON" rel="nofollow" target="_blank" title="Search Twitter for &quot;CANON&quot;">CANON</a>=simple<br />
#<a href="http://search.twitter.com/search?q=%23REJECTION" rel="nofollow" target="_blank" title="Search Twitter for &quot;REJECTION&quot;">REJECTION</a>=&#8221;bad=r,dns=t,int=t,no=a,miss=r&#8221;<br />
#<a href="http://search.twitter.com/search?q=%23EXTRA_ARGS" rel="nofollow" target="_blank" title="Search Twitter for &quot;EXTRA_ARGS&quot;">EXTRA_ARGS</a>=&#8221;-h -l -D&#8221;<br />
#<a href="http://search.twitter.com/search?q=%23MILTER_GROUP" rel="nofollow" target="_blank" title="Search Twitter for &quot;MILTER_GROUP&quot;">MILTER_GROUP</a>=&#8221;<u style="color: red;">mail</u>&#8221;
</p></blockquote>
<p>เอา comment ออกให้หมด<br />
แก้ตัวแดงบรรทัด SIGNING_DOMAIN เป็นโดเมนหลักที่ต้องการ sign<br />
แก้ตัวแดงบรรทัด SELECTOR_NAME เป็น private<br />
แก้ตัวแดงบรรทัด MILTER_GROUP เป็น postfix</p>
<p>&nbsp;<br />
<br />&nbsp;</p>
<h2>DKIM sign</h2>
<p>มา gen key สำหรับ sign DKIM กัน</p>
<blockquote><p>mkdir -p /etc/dkim-milter/<u style="color: red;">example.com</u>/<br />
cd /etc/dkim-milter/<u style="color: red;">example.com</u>/<br />
dkim-genkey -d <u style="color: red;">example.com</u><br />
mv default.private default<br />
chown postfix -R /etc/dkim-milter/</p></blockquote>
<p>เหมือนเดิมนะครับ มีกี่โดเมนก็แก้ชื่อโดเมนทำให้ครบด้วย</p>
<p>ทีนี้หลังจาก gen แล้ว ใน folder ของแต่ละโดเมนจะมี file ชื่อ default.txt อยู่<br />
ข้างในจะเป็น DNS record ที่เราต้องเอาไปเพิ่มเข้าใน DNS ของ domain นั้นๆ<br />
สั่ง cat ดูได้เลยครับ (ถ้าใช้ bind ก็ก๊อปแปะใน zone file ได้เลย)</p>
<p>&nbsp;<br />
<br />&nbsp;</p>
<h2>DomainKeys sign</h2>
<p>มา gen key สำหรับ sign DomainKeys กัน</p>
<blockquote><p>cd /etc/mail/domainkeys/<br />
/usr/share/doc/dk-milter-1.0.2/gentxt.sh private <u style="color: red;">example.com</u><br />
mv private.private dk_<u style="color: red;">example.com</u>.pem
</p></blockquote>
<p>&nbsp;<br />
<br />&nbsp;</p>
<p>แก้จุดสุดท้าย<br />
เปิดไฟล์ /etc/postfix/main.cf<br />
ลงมาล่างสุดของไฟล์ เพิ่มไอ้นี่ลงไป</p>
<blockquote><p>smtpd_milters = unix:/var/run/dkim-milter/dkim-milter.sock unix:/var/run/dk-milter/dk.sock<br />
non_smtpd_milters = unix:/var/run/dkim-milter/dkim-milter.sock unix:/var/run/dk-milter/dk.sock</p></blockquote>
<p>เซฟ ปิด แล้วสั่ง</p>
<blockquote><p>rm -f /var/run/dkim-milter/dkim-milter.sock<br />
chown postfix -R /var/run/dkim-milter<br />
service dkim-milter restart<br />
service dk-milter restart<br />
service postfix restart</p></blockquote>
<hr />
<p>ฝั่ง server เรียบร้อย ทีนี้ก็ client ถ้าจะส่ง mail..<br />
มีข้อแนะนำในการส่งประมาณนี้</p>
<ol>
<li>reverse dns ของ ip ของ mail server ต้องชี้มายัง domain เดียวกันกับที่ใช้ส่ง</li>
<li>ทำ SPF Record ให้เรียบร้อย</li>
<li>DomainKeys + DKIM ตามวิธีด้านบน</li>
<li>ในเนื้อหา mail ต้องมีระบุข้อความว่า ให้ยกเลิกการรับข่าวสาร email ได้ที่ไหน</li>
<li>ใส่ header List-Unsubscribe ที่ชี้ไปยัง URL หรือ email ที่สามารถส่งไปขอยกเลิกการรับ mail ได้</li>
<li>การขอยกเลิกการรับข่าวสาร อนุญาตให้มีได้แค่ปุ่มยืนยันการยกเลิกเท่านั้น</li>
<li>ตั้ง Sender กับ Return-Path ให้รับ mail ได้ เพื่อไว้รอรับ mail ตีกลับ</li>
<li>ลบ email ที่ถูกตีกลับออกจากรายการ mail ที่ใช้ส่งตลอดเวลา</li>
<li>ไม่ส่ง mail เนื้อหาเดียวกันซ้ำๆ กัน</li>
<li>[สำหรับส่งเข้า yahoo] <a href="http://help.yahoo.com/l/us/yahoo/mail/postmaster/forms_index.html">http://help.yahoo.com/l/us/yahoo/mail/postmaster/forms_index.html</a> เข้าไปแล้วเลือก Yahoo! Mail Bulk Sender Form กรอกให้ครบ</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.icez.net/blog/398/postfix-domainkeys-dkim/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: www.icez.net @ 2012-02-10 18:06:38 -->
