Tag Archives: admin

GRUB timeout options

There are many timeout configuration for grub2 that you can put in /etc/default/grub

GRUB_TIMEOUT
GRUB_HIDDEN_TIMEOUT
GRUB_RECORDFAIL_TIMEOUT

The last one may help to boot normally in case power loss.

Also try FSCKFIX in /etc/default/rcS :)

Zenoss on Debian

เพิ่งมีโอกาสได้ลง Zenoss บน Debian เพราะเครื่องที่ลง Cacti ไว้ดิสก์มันเจ๊งไปแล้ว .. อ่าน doc แล้วเหมือนจะยาก จริงๆ แล้วลงไม่ยากนะ เขียนแปะไว้ในห้องทดลองสักหน่อย

Zenoss 1.1 on Debian

Zenoss 1.1 on Debian

ขั้นตอนอย่างง่ายๆ

สร้าง user สำหรับ zenoss

# adduser --system --shell /bin/bash --home /opt/zenoss --ingroup src --disabled-password zenoss

ถ้า adduser ไม่สร้าง directory และตั้ง permission ให้ก็ดำเนินการตามนี้

# mkdir /opt/zenoss
# chown zenoss /opt/zenoss

su เป็น zenoss แล้วก็สร้างไฟล์ ~/.bashrc ตามนี้

export ZENHOME=/opt/zenoss
export PYTHONPATH=$ZENHOME/lib/python
export PATH=$ZENHOME/bin:$PATH

เพิ่ม user zenoss ใน /etc/sudoers ตามนี้

Defaults    env_reset
Defaults    env_keep = "PYTHONPATH ZENHOME"
zenoss ALL=(ALL) NOPASSWD: /opt/zenoss/bin/python,/usr/bin/kill

ลงแพ็คเกจที่จำเป็นอื่นๆ

# aptitude install mysql-server-5.0 python-dev libmysqlclient-dev g++ make patch bzip2 autoconf swig

โหลด & untar & ติดตั้ง zenoss

$ tar xzf zenoss-1.1.2.tar.gz
$ cd zenoss-1.1.2
$./install.sh

รอ รอ ….

และแล้ว

เย้ .. จริงๆ แล้วจะติดตั้ง zenoss โดยใช้ไลบรารีต่างๆ ที่มีอยู่แล้วในเดเบียนก็ได้ แต่ขั้นตอนจะยุ่งยากกว่านี้โข .. อีกหน่อย zenoss คงจะออก .deb ให้ติดตั้งง่ายๆ ล่ะน่า

ATA over Ethernet again

วันนี้ลอง ATA over Ethernet อีกรอบ เครื่องเซ็ตเดิม แต่อัปเกรดจาก Edgy Eft เป็น Feisty Fawn

# hdparm -tT /dev/etherd/e0.0 

/dev/etherd/e0.0:
 Timing cached reads:   502 MB in  2.00 seconds = 250.51 MB/sec
 Timing buffered disk reads:   24 MB in  3.23 seconds =   7.42 MB/sec

อะฮะ .. 7.42 MB/s … เร็วกว่า การทดสอบครั้งก่อน ประมาณเท่าตัว :)

apt-cacher

ใช้ apt-proxy มานาน เพิ่งจะเจอปัญหาหลังจากอัปเกรดเป็น edgy .. แก้ยังไงก็ไม่ดีขึ้น อาการก็แปลกๆ ที่โดน reset connection เกือบจะทุกครั้งที่มันพยายามจะโหลดข้อมูลจาก repositories .. ระยะนี้ก็เลยหาทางเลือกอื่นๆ ..

อันแรกคือ apt-move .. ลองใช้อยู่วันนึงก็พบว่ามันไม่ค่อยได้อย่างที่ต้องการ พยายามแยก dist แยก repo ก็ไม่สำเร็จ .. อันนี้ปัญหาใหญ่เลย เพราะที่ใช้อยู่มันมีทั้ง edgy, edgy-updates, edgy-security, wine, beryl, etc.. เลยโละทิ้งอีก

วันนี้ลอง apt-cacher .. เออ เข้าท่าแฮะ .. สวมรอย apt-proxy ได้เลย ว่าแล้วก็ aptitude purge apt-proxy ไปซะ .. คอนฟิก apt-cacher ก็ไม่ได้ยากอะไร แก้ไฟล์ /etc/apt-cacher/apt-cacher.conf ไม่กี่บรรทัด

daemon_port=9999

พอร์ต default เป็น 3142 .. ไม่จำเป็นต้องเปลี่ยนก็ได้ .. แต่ที่เปลี่ยนเป็น 9999 เพื่อจะสวมรอย apt-proxy ไปเลย ไม่ต้องตามแก้ sources.list เครื่อง clients เกือบๆ โหล .. แล้วก็ตั้ง mapping ตาม repo ที่จะcache ตามนี้

path_map = ubuntu th.archive.ubuntu.com/ubuntu ;
           ubuntu-security th.archive.ubuntu.com/security ;
           wine wine.budgetdedicated.com/apt ;
           beryl ubuntu.beryl-project.org/

สุดท้าย แก้ AUTOSTART ใน /etc/default/apt-cacher จะได้รัน apt-cacher อัตโนมัติตอนบูตเครื่่อง

AUTOSTART=1

ใครอยู่ใกล้ มข. อาจจะมาใช้ cache ด้วยกัน จะได้โหลด package ได้เร็วขึ้นโดยแก้หรือเพิ่มเติม /etc/apt/sources.list ตามนี้

# ubuntu
deb http://belldandy.kitty.in.th:9999/ubuntu/ edgy main restricted  ...
deb http://belldandy.kitty.in.th:9999/ubuntu/ edgy-updates main ...
deb http://belldandy.kitty.in.th:9999/ubuntu-security/ edgy-security main ...

# wine - from budgetdedicated.com
deb http://belldandy.kitty.in.th:9999/wine/ edgy main

# beryl - from beryl-project.org
deb http://belldandy.kitty.in.th:9999/beryl/ edgy main

/me ..

# aptitude --purge-unused purge apt-proxy apt-move

— edited — ลืมแก้ hostname (- -‘)

apt | aptitude : Ouch! Got SIGSEGV

จะลง kernel-package สักหน่อย

# aptitude install kernel-package
Ouch! Got SIGSEGV, dying..
Segmentation fault (core dumped)

เอ แปลกๆ … apt-get ดูซิ

# apt-get install kernel-package
Segmentation fault (core dumped)

เหวอๆๆ … เกิดไรขึ้นล่ะเนี่ยะ … ไม่ขำนะ .. T_T

# strace -o xxx aptitude
# less xxx
....
stat64("/var/cache/apt/pkgcache.bin", {st_mode=S_IFREG|0644, st_size=9454080, ...}) = 0
open("/var/cache/apt/pkgcache.bin", O_RDONLY) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
fstat64(4, {st_mode=S_IFREG|0644, st_size=9454080, ...}) = 0
mmap2(NULL, 9454080, PROT_READ, MAP_SHARED, 4, 0) = 0xb7195000
stat64("/var/lib/apt/lists/belldandy:9999_ubuntu_dists_edgy_main_binary-i386_Packages", {st_mode=S_IFREG|0644, st_size=5491154, ...}) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---

เหมือนจะเดี้ยงแถวๆ จังหวะอ่าน package จาก cache .. hmm.. cache น่าจะลบทิ้งได้ล่ะนะ ..

# cd /var/cache
# mv apt apt-saved
# mkdir -p apt/archives/partial
<code>
แล้วก็ลองรันอีกรอบ
<code>
# aptitude install kernel-package
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
...

ทำงานได้จริงๆ ด้วย ! .. เย้ .. :D :D … ใครเจอปัญหาประมาณนี้จะลองทำตามดูก็ได้ .. แต่ถ้าเดี้ยงจริงๆ ก็ตัวใครตัวมันนะ :P

BIND 9 on FreeBSD 4.x

BIND 9 ?

ที่จริงก็ไม่ได้อยากอัปเกรดเท่าไหร่ แต่ทางศูนย์คอมพิวเตอร์เขาขอมา เลยจัดให้ :P .. จะว่าไปแล้ว BIND 9 ก็น่าสนใจตรงที่มันใช้ rndc + chroot ได้ และมีความปลอดภัยสูงขึ้น .. ถ้าเป็น FreeBSD >= 5.3 เข้าใจว่ามี BIND 9 มาให้เลย ส่วน FreeBSD 4.x และ 5.x < 5.3 นี่ต้องติดตั้งจาก ports เอา

เริ่มติดตั้ง

# cd /usr/ports/dns/bind9
# make
# make install

เซ็ตอัป rndc

rndc ใช้ irq มาทำเป็น entropy pool ยิ่งอุปกรณ์มีข้อมูลเข้า/ออก random มากๆ ยิ่งดี เขาแนะนำให้ใช้ irq ของ keyboard, mouse, disk, หรือ network interface cards .. ผมไม่ค่อยแนะนำให้ใช้ keyboard/mouse เท่าไหร่ เพราะพวกเซิร์ฟเวอร์หลายๆ ตัวไม่ได้ต่อไว้ด้วยซ้ำ ข้อมูลอาจจะไม่ random อย่างที่ต้องการ .. เลือก disk หรือ network interface cards น่าจะดีกว่า

# grep -i irq /var/run/dmesg.boot

เพิ่ม irq เป็น entropy pool ของ rndc

# rndcontrol -s 12
# rndcontrol -s 14

ถ้าจะให้ใช้ได้ตั้งแต่ boot ก็แก้ /etc/rc.conf เพิ่ม

rand_irqs="12 14"

จากนั้นก็สร้าง config ของ rndc

cd /usr/local/etc
rndc-confgen > rndc.conf

แล้วก็สร้าง key

rndc-confgen -a

จะได้ไฟล์ rndc.key แล้วก็แก้ rndc.conf อีกนิดหน่อย เพื่อเอา key ใน rndc.key มาใส่

vi /usr/local/etc/rndc.conf

options {
     default-key "rndc-key";
    default-server 127.0.0.1;
    default-port 953;
};

server 127.0.0.1 {
    key "rndc-key";
}

ก๊อป key “rndc-key” {…} จาก /usr/local/etc/rndc.key มาใส่ใน /usr/local/etc/rndc.conf เป็นอันเสร็จเรื่องของ rndc

เซ็ตอัพ BIND 9

ถ้าใช้ BIND 8 มาก่อน เอา config และ zone files ของ BIND 8 มาแก้นิดๆ หน่อยๆ แล้วใช้กับ BIND 9 เลยก็ได้ ดังนั้น ก๊อปปี้ named.conf ของ BIND 8 มาไว้ที่ /usr/local/etc/named.conf แล้วก็แก้อีกนิด เพื่อเอา rndc มาใช้

include "/usr/local/etc/rndc.key";

controls {
    inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndc-key" };
};

และใน options { … } เพิ่ม pid-file ” … ” กับ dump-file ” … ” เข้าไปด้วย

options {
    ...
    directory "/path/to/namedb"
    pid-file "/path/to/namedb/named.pid"
    dump-file "/var/tmp/named_dump.db"
    ...
};

เสร็จแล้ว อย่าลืมเช็ค zone {… } กับ zone file ให้ตรงกัน

แก้ไฟล์เสร็จก็ เปลี่ยน owner/groups ของไฟล์เป็น uid ที่จะรัน named .. ปกติจะใช้ user bind รัน named ก็

chown -R bind:bind /path/to/namedb
chmod 750 /path/to/namedb

เช็ค named.conf

named-checkconf /usr/local/etc/named.conf

ทดสอบ

/usr/local/sbin/named -c /usr/local/etc/named.conf -u bind -g

ถ้า named รันได้โดยไม่มี error/warning ก็เป็นอันเรียบร้อย … สุดท้ายก็แก้ /etc/rc.conf

vi /etc/rc.conf
named_enable="YES"
named_program="/usr/local/sbin/named"
named_flags="-c /usr/local/etc/named.conf -u bind"

ทีนี้ตอน boot ก็จะรัน BIND 9 แทน BIND 8 .. เสร็จแล้ว :)

Mail Config. Day

เช้าๆ ราชบุรีแจ้งมาว่า หลังจากอัปเกรดเซิร์ฟเวอร์ไปแล้วมีปัญหาเรื่องเมล เช็คดูสักพักก็พบว่าเป็นที่ MX ของโดเมนอื่นชี้มาที่เซิร์ฟเวอร์ แต่ไม่ได้ตั้งให้ postfix รับเมล แก้ไขแล้วก็ใช้งานได้ .. ปล่อยให้มีปัญหาเสียตั้งหลายวัน เฮ่อ

ที่เครื่อง gear.kku.ac.th ก็มีปัญหาเหมือนกัน แต่เป็นคนละเรื่อง ระบบเมลของ gear ใช้ postfix + amavisd + clamav + spamassassin กรองทั้งไวรัสและสแปม เมื่อวานได้รับรายงานว่า amavisd มันทำงานบนฟรีบีเอสดีแล้วเพี้ยนๆ ไม่ยอมกักไวรัสกับสแปมเข้า quarantine .. ตอนแรกคิดว่าเป็นคนเดียว แต่พอ google หาก็เจอว่าหลายคนมีปัญหาเดียวกัน แล้วก็ยังแก้กันไม่ได้ .. เข้าไปแกะสคริปต์ก็มี comment ว่าสคริปต์จะมีปัญหาเวลารัน perl -T ซึ่งเกิดเฉพาะ perl บางเวอร์ชันเท่านั้น แต่ดันเป็นเวอร์ชันที่ใช้บนฟรีบีเอสดีพอดีเลย (- -‘) .. ตอนนี้แก้ไม่ถูก เลย workaround ไปก่อนโดยรัน perl ธรรมดา (ไม่ -T) แล้ว chroot ไว้กันเหนียว .. ลอง tail -f /var/log/maillog มอนิเตอร์พักใหญ่ก็ไม่เจอปัญหาเดิมแล้ว

ไหนๆ ก็ดู amavisd แล้ว เลยลองตรวจ SpamAssassin ดูด้วย ทดสอบยิงสแปม 40 ฉบับ 40 แบบที่สะสมไว้จาก quarantine ในเซิร์ฟเวอร์ที่ AIT ได้ผลเป็นที่น่าพอใจ ทั้ง 40 ฉบับโดนตีตราเป็นสแปมหมดเลย แม่นโคตร ตอนนี้ที่ห่วงจะเป็น false positive มากกว่า เลยต้องเฝ้าดูเมลมากเป็นพิเศษ .. จะว่าไป SpamAssassin เก่งไม่เบาเลย ไม่นานมานี้ก็เพิ่งมีคนทดสอบสแปมฟิลเตอร์แล้วได้ผลว่า SpamAssassin ทำงานได้แม่นยำเป็นอันดับหนื่ง เหนือกว่าพวกที่ขายแพงๆ ซะอีก .. ตอนนี้ได้เครื่องแรงเลยลองเปิด Bayes auto learn ด้วย .. ถ้าสแปมหลุดรอดออกมาได้ก็แสดงว่าเจ๋งจริงแหละ .. หุๆๆ

บ่น: เดือนที่แล้วกับเดือนนี้ไม่รู้เป็นอะไร ภาระงานเยอะแทบไม่มีเวลาหายใจ .. แต่คิดในแง่ดี งานเยอะๆ ก็ดีแล้วแหละ ถ้ายังเป็นงานที่ชอบอะนะ ตอนนี้ยังพอมีตังค์กินข้าว ให้ทำฟรีก็ทำ :P

FYI: เปลี่ยนแปลงเวลาบันทึกปูมเว็บ (ปูมเว็บ = weblog – พอได้มั้ยหว่า) เล็กน้อย เลื่อนขึ้นมา 24 ชั่วโมง จะได้เหมือนคนอื่นๆ เขา แปลว่าสิ่งที่ได้อ่านของวันที่ n เป็นสิ่งที่เกิดในวันที่ n-1 ครับ

Upgrading gear.kku.ac.th

วันอาทิตย์ เข้าไปทำงานที่ภาควิชาฯ ไม่ได้อัปเกรด gear.kku.ac.th – เซิร์ฟเวอร์ของภาควิชาฯ – มาระยะนึงแล้ว กลับมาเที่ยวนี้ต้องอัปเกรดเสียหน่อย พอดีว่ามีเครื่องใหม่มาใช้งานแทนเครื่องเดิมด้วย ก็เลยลงแบบสะอาดๆ ได้ .. ใช้ฟรีบีเอสดีเช่นเคย (4.10-RELEASE) ติดตั้งแบบ customize เสร็จแล้วก็ cvsup ports sys คอมไพล์เคอร์เนล ติดตั้ง server software + tools ที่จำเป็นจาก ports .. จากนั้นก็ย้าย /home ของระบบเดิมมาเครื่องใหม่ (จะมาเสียเวลาเยอะก็ตรงนี้แหละ นานกว่าตอน cvsup ports ซะอีก – -‘) .. เสร็จเรียบร้อย สลับ IP เครื่องเก่ากับเครื่องใหม่ สั่ง reboot พร้อมกัน ตู้มม .. ssh เข้าระบบใหม่ แก้ไขอีกนิดหน่อยก็เรียบร้อย ของกล้วยๆ :D

ถ้าจำไม่ผิด gear.kku.ac.th เป็นเซิร์ฟเวอร์ที่ใช้ลินุกซ์ตัวแรกของ ม.ข. (เครื่องที่สองเป็นของ ชีวเคมี คณะแพทย์ฯ เครื่องที่สามคือ ftp.kku.ac.th) .. ถ้านับตั้งแต่ติดตั้งเครื่องนี้สำเร็จเป็นครั้งแรก อายุก็มากกว่าสิบปีแล้ว มีการเปลี่ยนแปลงมาเรื่อย จากลินุกซ์ที่มีแผ่นติดตั้งเกือบๆ สี่สิบแผ่น ดาวน์โหลดจาก ฟินแลนด์ สวีเดน และอเมริกา ใช้เวลาเป็นเดือน (แบนด์วิดธ์ของ ม.ข. ในสมัยนั้น19.2Kbps) .. ต่อมาก็ไช้ Slackware, Red Hat – เริ่มติดตั้งจาก CD, gzipslack (ที่เอา zipslack มาทำเป็น mini distro. เอง) ก่อนจะเปลี่ยนแปลกครั้งใหญ่เป็นฟรีบีเอสดี 4.2 จากนั้นก็ตามอัปเดตฟรีบีเอสดีมาตลอด ฮาร์ดแวร์จาก 486DX2-66MHz RAM 16 MB ก็ค่อยๆ เพิ่มเป็น 32 MB (~3 ปี) เป็น Pentium 75 MHz (~3 ปี), Pentium MMX 233 MHz (~3 ปี), Pentium II 266 MHz (~1 ปี) ล่าสุดตอนนี้เป็น Pentium-4 2 GHz .. มีแค่เครื่องแรกสุดเครื่องเดียวที่สเปคทันสมัย (ในยุคนั้น) หลังจากนั้นมากสเปคล้าหลังตลอด .. gear.kku.ac.th เปิดใช้งาน 24×7 มาตั้งแต่วันแรกๆ พอเปลี่ยนมาใช้ฟรีบีเอสดีก็ x100% เข้าไปอีกเพราะมี seti@home (ที่ nice 15) ด้วย .. ระบบไม่เคยงอแงเลย รับภาระงานได้สบายๆ ไม่รู้สึกว่าหน่วง ยิ่งเป็นฟรีบีเอสดีแล้วเสถียรภาพของระบบดีมากๆ uptime ครั้งละหลายๆ เดือน (i.e., จนกว่า UPS ดับ) ปัญหาจุกจิกน้อย ดูแลรักษาก็ง่าย .. ไม่แปลกใจเลยว่าทำไมค่าเฉลี่ยจำนวนเซิร์ฟเวอร์/ผู้ดูแล ของลินุกซ์/ยูนิกซ์จะสูงได้ถึง 44 เซิร์ฟเวอร์/คน ในขณะที่วินโดว์สอยู่ที่ราวๆ 10 เซิร์ฟเวอร์/คน .. อัปเกรดฮาร์ดแวร์คราวนี้ได้ Pentium-4 2 GHz จะว่าแรงเกินจำเป็นก็อาจจะได้ แต่ไหนๆ ก็มีเครื่องเร็วๆ ใช้ เลยตั้งให้ฟิลเตอร์สแปมกับไวรัสหนักๆ หน่อย เปิดได้วันเดียวก็มีรายงานไวรัส W32* มาแล้ว รายงานฟิลเตอร์สแปมได้อีกตรึม .. workunit ของ seti@home ก็น่าจะไปได้เร็วกว่าเดิมอีกหลาย .. ลอล

วันจันทร์เช้ากลับมานอนพักที่บ้าน .. ตื่นบ่ายๆ ก็ขับรถมากรุงเทพฯ มีงานต้องทำอีกเป็นกอง .. ส่งศุกร์นี้แล้วด้วย T_T