วันอังคารที่ 27 สิงหาคม พ.ศ. 2556

ZebraTray : Email Notifier ตัวใหม่ สำหรับ Zimbra

มีหลายๆท่าน สอบถามผมเกี่ยวกับโปรแกรม Email Popup Notifier

สำหรับท่านที่ยังไม่เคยเล่น โปรแกรมพวกนี้จะทำงานอยู่บน Desktop คอยตรวจดูว่า มี Email ใหม่ เข้ามาที่ Mailbox ของเราบน Zimbra หรือเปล่า ถ้ามี มีจะ Popup ขึ้นมาบอกที่หน้าจอ หรือที่ที่ Window Tray

เมื่อก่อนมีตัวนึงครับชื่อ  Zimbra Notifier  แต่หลังๆ ตัวนี้ไม่ฟรีแล้ว อีกตัวนึงที่พอไหวคือ Yahoo Browser Plus แต่เห็นมีบางท่านบอกว่าตัวนี้ติดที่ ลงบน Windows 8 ไม่ได้ ผมคิดว่า Yahoo คงเลิกทำให้ Support Zimbra แล้วครับ เพราะ  Yahoo ขาย Zimbra ไปให้คนอื่นแล้ว

มีอีกตัวที่ผมขอนำเสนอครับ ชื่อ ZebraTray  version ยังเป็น Pre Release Version อยู่เลยครับ มีข้อจำกัดอยู่ที่ มันจะเช็คเมล์ โดยติดต่อ Zimbra Server ผ่านทาง  https port 443 เท่านั้นครับ ซึ่งวิธีการติดต่อนี้จะ เหมือนกับเวลาที่เราติดต่อกับ Zimbra ทาง web browser ครับ ซึ่งถ้าใช้ Zimbra 8 การใช้งานโดยปกติ จะใช้  port นี้อยู่แล้ว แต่ถ้า Zimbra Server ของคุณ เก่ากว่า version 8 สามารถเปลี่ยนให้ติดต่อโดยใช้ https port 443 ได้ครับ ดูได้จากจากบทความเรื่อง การกำหนด Port ที่ใช้เข้าถึง web client  ที่ผมเคยเขียนไปแล้ว

ตอนนี้หน้า web ยังเป็น ภาษารัสเซียอยู่เลย แต่ไม่เป็นไรครับ Download ตาม Link นี้  ได้มาแล้วก็จัดการลงเลย ขึ้นตอนการติดตั้งไม่ได้ซับซ้อนอะไรครับ พอลงเสร็จจะมีหน้าให้ setup ตามนี้ครับ




การ Setup มีหน้าเดียวครับ ใส่ข้อมูลตามนี้

  1. Server: ใส่  Hostname หรือ IP Address ของ Zimbra Server 
  2. Login และ Password  ใส่ชื่อ Account และ Password เหมือนที่เรา login Zimbra นั่นและครับ  
  3. ติ๊กถูกที่ Ignore SSL Errors ด้วย 
  4. และถ้าต้องการให้มีเสียงเวลามีเมล์ใหม่มา ติ้กถูกที่ Sound  
เสร็จแล้ว กด OK เป็นอันเรียบร้อยครับ

จากนี้จะมีโปรแกรมชื่อ ZebraTray อยู่ที่ System Tray ของ Windows แล้วครับ ถ้ามีเมล์ใหม่มาที่ Zimbra Account เราที่ได้ตั้งไว้ จะมีข้อความพร้อมข้อมูลของ email ใหม่ popup ขึ้นมา


นอกจากนี้ เรายังสามารถกดเมาส์ขวา ที่ ZimbraTray icon ใน System Tray เพื่อดูเมล์ (View Mail) โดย โปรแกรมจะเรียก Web Browser และทำการ Login ให้  ตามข้อมูลที่เราใส่ไว้ ใน ZebraTray


ในเมนูนี้ เรายังสามารถแก้ไข Config ได้โดยเลือก Settings  ได้ด้วยครับ

ลองใช้งานกันดูนะครับ มีคำถามหรือติดตรงไหน สอบถาม ThaiZimbra ได้ครับ
สุดท้าย ต้องขอขอบคุณ น้อง Fuse  ที่ได้ช่วยทดสอบและจัดหารูปประกอบให้ครับ

วันพุธที่ 21 สิงหาคม พ.ศ. 2556

วิธีดู mailbox quota ของ account ทั้งหมด (Zimbra Tips and Technique # 14)


จาก Admin Console เราสามารถขอดูได้ว่า แต่ละ Account มีการกำหนด mailbox quota ไว้เท่าไหร่ ใช้ไปเท่าไหร่ เนื้อที่ที่ใช้ไป เป็นกี่เปอร์เซนต์ของ quota ที account นั้นได้สิทธิในการใช้งาน

วิธีการ (zimbra 8 ) คือ จาก Admin console ที่เมนูด้านซ้ายของจอ เลือก

Monitor>> Server Statistics >> เลือกชื่อ Service Hostname (อยู่ box ด้านซ้ายของเมนู) >>  Mailbox Quota
จะได้หน้าจอเหมือนกับตัวอย่างในรูป



จากหน้าจอนี้ เราสามารถเรียงลำดับการแสดงผลตามข้อมูลในแต่ละคอลัมน์ได้ โดยการ click ที่บรรทัดบอกชื่อของคอลัมน์ (Account, Quota, Mailbox Size, Quota Used) ถ้าเรากดซ้ำที่คอลัมน์เดิม จะเป็นการสลับการเรียง (จากน้อยไปมาก หรือมากไปน้อย) วิธีการนี้สดวกดีครับ ไม่ต้องไปยุ่งกับ command line ให้ยุ่งยาก

วันศุกร์ที่ 9 สิงหาคม พ.ศ. 2556

สร้าง lvm snapshort

หลังจากที่เราได้เรียนรู้การสร้าง  Filesystem จาก Logical Volume กันไปแล้ว ในตอนนี้ จะถึงเนี้อหาที่ทุกคนรอคอยแล้วครับ คือการสร้าง snapshot ของ Filesystem กันครับ
เหมือนที่ผมเคยเกริ่นไปแล้ว การสร้าง snapshot ก็คือ การการสร้าง filesystem ขึ้นมาอีกหนึ่งอัน ซึ่งจะมีข้อมูลเหมือนกับ filesystem ต้นแบบ ณ.เวลาที่เราสร้าง snapshot  หรือกล่าวอีกนัยหนึ่งก็คือ เราสร้าง filesytem อีกอันขึ้นมาที่มีข้อมูลเสมือนเราหยุดเวลาของ filesytem ตัวต้นแบบไว้ครับ

ทำไมเราต้องทำ snapshot ในกรณีของ Zimbra เราจะสร้าง snapshot ของ /opt/zimbra ในขณะที่  zimbra ถุก   หยุดการทำงาน (stop) อยู่ เพื่อที่เราจะได้ backup /opt/zimbra ได้ โดย ไม่ต้อง stop zimbra เป็นเวลานาน ขึ้นตอนก็มีประมาณนี้ครับ

1) stop zimbra
2) สร้าง snapshot ของ /opt/zimbra
3) start zimbra
4) mount snapshort ของ /opt/zimbra และทำการ backup
5) ลบ snapshot ทิ้ง

ซึ่งในขึ้นตอน 2) จะกินเวลาไม่นานครับ ซึ่งถ้าเราไม่ทำแบบนี้ เราจะต้อง backup /opt/zimbra ให้เสร้จก่อนที่จะสามารถ start zimbra  กลับขึ้นมาได้ ซึ่งถ้าข้อมูลใน /opt/zimbra มีขนาดใหญ่ การ backup จะ กินเวลานาน ซึ่งก็หมายถึง Zimbra จะต้องหยุดเป็นเวลานานด้วยครับ

ถึงตรงนี้ หลายคนอาจจะมีคำถามว่า แล้วเรา backup /opt/zimbra ในขณะที่ zimbra ยังทำงานอยู่ได้ไหม คำตอบก็คือ ได้ครับ แต่ ข้อมูลที่ backup ไป เมื่อ  restore กลับมา โอกาสที่จะใช้งานไม่ได้มีสูง (ตัวใครตัวมัน) เพราะ zimbra เอง มีส่วนที่เป็น mysql database และ ldap ซึ่งถ้า backup file ตรงๆ ขณะที่โปรแกรมทั้งสองทำงานอยู่ อาจจะมีปัญหาได้

วิธีการสร้าง snapshot  filesystem 

ใช้คำสั่ง  lvcreate ตามรูปแบบนี้ครับ

 lvcreate  -Lsize -s -n snapshot_dev_name  original_lv_dev_name

size เป็นขนาดเนี้อที่ที่เราจองไว้ให้ snapshot filesystem นี้ครับระบุหน่วยด้วยได้  เช่น 500m หรือ 1G
snapshot_dev_name เป็นชื่อของ device ที่เราจะสร้างครับ ระบุชื่ออย่างเดียว ไม่ต้องระบุเป็น full pathname (ขึ้นต้นด้วย /dev/...) ก็ได้ครับ
original_lv_dev_name เป็นชื่อของ Logical Volume ตัวต้นแบบที่เราจะทำ snapshot อันนี้ต้องระบุชื่อ device แบบเต็ม (ขึ้นต้นด้วย /dev) ครับ


จากตัวอย่างในรูป ผมสร้าง snapshot ที่ชื่อ zimbra_snap จาก Logical Volume /dev/mapper/vol2-lvol0 (หรืออีกชื่อก็คือ /dev/vol2/lvol0)  ผมจะได้ snapshot device ที่ชื่อ /dev/vol2/zimbra_snap

จากนั้น เราจะได้ snapshot  device อยู่ใน volume group เดียวกันกับตัวต้นแบบครับ เราสามารถ mount และ backup ได้เลย โดยใช้คำสั่ง mount  อยาลืมสร้าง directory ที่จะเป็น mount point กันก่อนนะครับ

หลังจากที่ backup เสร็จ เรียบร้อย เราต้องลบ snapshot logical volume นี้ทิ้งเสียครับ จะได้ไม่เปลืองเนื้อที่ โดย unmount  ก่อน และใช้คำสั่ง lvremove ซึ่งมีรูปแบบตามนี้ครับ

lvremove  snapshot_full_pathname

snapshot_full_pathname เป็นชื่อเต็มของ snapshot logical volume ครับ (/dev/....)



เท่านี้ก็เป็นอันเสร็จสิ้นครับ

วันจันทร์ที่ 29 กรกฎาคม พ.ศ. 2556

setup filesystemที่สร้างใหม่ ให้ mount อัตโนมัติ

ในครั้งที่แล้ว ผมได้พูดถึงวิธีการสร้าง filesystem จาก  Logical Volume เหลืออีกขั้นตอนหนึ่งคือการกำหนดให้ filesystem ที่เราสร้าง  mount อัตโนมัติทุกครั้งที่เครื่อง boot

วิธีการง่ายๆ ครับ คือเพิ่มบรรทัดในไฟล์ /etc/fstab ไฟล์นี้ จะเป็นที่เก็บข้อมูลที่ช่วยในเราในการ mount  filesystem เข้า file structure ครับ โดย แต่ละบรรทัดใน /etc/fstab จะมีรูปแบบดังนี้ครับ

block_device    mount_point   filesystem_type   mount_options    fs_dump   check_on_boot

block_device : เป็นชื่อ device ที่จะทำการ mount
mount_point  :  directory ที่จะ mount filsystem
filesystem_type : ชนิดของ filesystem (ต้องตรงกับ ชนิดของ block_device)
mount_options  :  option ของการ mount ถ้ามี option  หลายตัวใช้ "," คั่นแต่ละ option ปกติเรากำหนดให้เป็น defaults
fs_dump :  เป็นการระบุว่า ให้คำสั่ง dump ทำการเก็บข้อมูลของ filesystem นี้ไว้(โดยใช้คำสั่ง dump) หรือเปล่า field นี้เป็นปัจจุบันนี้ field นี้ไม่ได้ใช้แล้วครับ แต่เราต้องระบุค่าไว้
check_on_boot : เป็นการบอกลำดับของการตรวจสอบ filesystem นี้ขณะที่มีการ  boot (โดยใช้คำสั่ง fsck )  ปกติ สำหรับ filesystem ทั่วไป ค่าจะเป็น 2 ยกเว้น  root filesystem (mount ที่  / ) ค่าจะเป็น 1  ครับ  ส่วน  filesystem ที่ไม่ต้องการใช้ ตรวจสอบ ค่าจะเป็น  0

จากตัวอย่างในครั้งที่แล้ว ผมจะเพิ่มบรรทัดนี้เข้าไปใน /etc/fstab


/dev/vol2/lvol0         /opt/zimbra         ext4     defaults 1   2

เป็นการบอก Linux ว่า ให้ mount /dev/vol2/lvol0  ซึ่งเป็น filesystem ชนิด ext4 ไปที่ /opt/zimbra  โดยใช้ default mount option ของ ext4 ครับ  ส่วนสอง field สุดท้าย ระบุเป็น 1 กับ 2 ไป

อีกอย่างนึงครับ เวลาเราจะ mount filesystem ไปที่ directory ไหน หรือที่ภาษา *nix (พวก Unix และ linux) เรียกว่า mount point ต้องดูให้ดีนะครับว่า directory นั้นต้องมีอยู่ ถ้าไม่มี ก็จัดการสร้าง directory  นั้นซะ
หลังจากเพิ่มบรรทัดนี้ ทดสอบการ mount โดยใช้คำสั่ง mount -a (mount all) หรือ reboot เครื่อง ก็ได้ครับ จะเห็น filesystem  ที่เราเพิ่งเพิ่มเข้าไปถูก mount  โดยอัตโนมัติ

หลังจากพูดปูพื้นฐานมาซะหลายตอน ครั้งหน้าผมจะพูดถึงวิธีการทำ snapshot logical volume เพื่อ backup zimbra กันนะครับ


วันอังคารที่ 16 กรกฎาคม พ.ศ. 2556

การนำ Logical Volume มาสร้างเป็น filesystem

จากตอนที่แล้ว เราได้ Logical Volume ที่พร้อมจะนำสร้างเป็น filesystem และ ไปใช้งานแล้วครับ

แต่ก่อนอื่น เราจะต้องนำ Logical Volume ที่ได้นี้ มาสร้างเป็น filesystem กันก่อนครับ วิธีการจะเหมือนกับการสร้าง filesystem จาก disk partition ทั้วไปครับ  เราใช้คำสั่ง  mkfs  ซึ่งมีรูปแบบดังนี้ครับ

mkfs -t fs_type  partition_name

fs_type  คือ ชนิดของ filesystem โดยปกติ จะเป็น ext3 หรือ ext4 ใน Linux รุ่นใหม่ๆ  จะใช้เป็น ext4 ครับ
partition_name คือ ชื่อของ disk partition ที่เรากำลังจะสร้างเป็น filesystem ในกรณีของเรา ก็คือชื่อของ Logical Volume โดยเราต้องระบบแบบเต็มคือขึ้นต้นด้วย /dev นะครับ โดยปกติ เป็น /dev/pv_name/lv_name

pv_name  จะเป็นชื่อของ physical volume ที่ logical volume นั้นอยู่ ส่วน lv_name เป็น ชื่อของ logical volume  ดังนั้นจากบทความที่แล้ว ชื่อของ disk partition  จะเป็น  /dev/vol2/lvol0

เมื่อ run คำสั่ง mkfs ถ้าไม่ติดอะไร จะได้ผลลัพท์คือ filesystem ที่สามารถนำไป mount (เชื่อมต่อ) เข้ากับ directory system ได้เลย จากตัวอย่างในรูป ผมสร้าง filesystem ชนิด ext4 บน  /dev/vol2/lvol0 เสร็จแล้ว mount  ไปที่ /opt/zimbra ครับ


รูป แบบของคำสั่ง mount คือ

mount device_name mount_point_dir

หลังจากที่เรา mount เสร้จ ต่อจากนี้ถ้าเรามีการสร้างไฟล์หรือ directory ภายใต้ mount_point_dir จะเป็นการใช้เนื้อที่บน device ที่เราเพิ่งทำการ  mount เข้าไปนะครับ

แต่อย่างไรก็ตาม การ mount แบบนี้ ถ้าเครื่องมีการ reboot   filesystem ที่เรา mount แบบนี้ จะไม่ถูก mount (แต่ยังอยู่) จะให้ mount อัตโนมัติเวลา boot เครื่อง จะมีขั้นตอนเพิ่มเติม ว่ากันในครั้งหน้าครับ

วันอาทิตย์ที่ 30 มิถุนายน พ.ศ. 2556

สร้าง Volume Group และ Logical Volume

หลังจากที่เราสร้าง partition บน disk  เป็น ชนิด Linux LVM เรียบร้อยแล้ว  ขั้นตอนถัดมาของการสร้าง logical volume ก็คือ เอา partition หรือ disk ทั้งลูก add เข้าไปใน Volume Group  สำหรับตัวอย่างนี้ ผมจะสร้าง Volume Group ใหม่ก่อนก็แล้วกันนะครับ

จากตัวอย่าง ผมมี  disk /dev/sdb อยู่ ซึ่งมี partition /dev/sdb1 และ /dev/sdb2  ทีถูกกำหนด type เป็น Linux LVM เรียบร้อยแล้ว

คำสั่งทีใช้ในการสร้าง Volume Group ก็คือ vgcreate (ย่อมาจาก Volume Group Create) รูปแบบการเรียกใช้พื้นฐานก็คือ

vgcreate VolumeGroupName  PhysicalDevicePath

โดย VolumeGroupName คือชื่อ ของ Volume Group ที่เราจะสร้าง จากตัวอย่างผมจะให้ชือว่า vol2
ส่วน PhysicalDevicePath จะเป็นชื่อของ disk  หรือ partition  โดยต้องระบุแบบ full path name หรือต้องอ้างถึงแบบมี /dev นำหน้าชื่อด้วย ในตัวอย่าง ผมใช้ /dev/sdb1

ในกรณีนี้ คำสั่งที่เราเรียกใช้คือ

vgcreate  vol2  /dev/sdb

หลังจากที่คำสั่งนี้ทำงานเสร็จเรียบร้อย เราจะได้ Volume Group ชื่อ vol2  โดยจะถูกสร้างเป็น device file อยู่ที /dev/vol2

ต่อจากนั้น เราจะสร้าง Logical Volume จากเนื้อที่ใน  Volume Group  vol2 ที่เพิ่งถูกสร้างมาหมาดๆ โดยใช้คำสั่ง lvcreate (logical volume create) โดยมีรูปแบบก็คือ

lvcreate -L LogicalVolumeSize  VolumeGroupName|VolumeGroupPath

LogicalVolumeSize  :  เป็นขนาดของ  Logical Volume ที่เราจะสร้าง  เราสามารถระบบุหน่วยเป็น  K,M,G (kilobyte, Megabyte, Gigabyte) ได้ด้วย ตามตัวอย่าง ผมใส่เป็น 5G

VolumeGroupName|VolumeGroupPath : ตรงนี้เราระบุชื่อของ  Volume Group โดยจะระบุแค่ชื่อ หรือ ระบุแบบชื่อ device เต็มๆ คือมี /dev นำหน้าได้ด้วยครับ  จากตัวอย่าง ผมใช้ vol2

คำสั่งที่เรียกใช้จะเป็น

lvcreate -L 5G  vol2



เมื่อคำสั่งทำงานเสร็จ มันจะบอกชื่อของ Logical Volume ทีถุกสร้างขึ้นมา ซึ่งในกรณีนี้ผมไม่ได้ระบุชื่อ Logical Volume ที่จะสร้าง ระบบจะกำหนดชื่อให้เราเอง ในกรณีนี้คือ  lvol0  โดยจะมือชื่อ  device แบบเต็มๆ คือ /dev/vol2/lvol0  ซึ่งเป็น symbolic link ชี้ไปยังชื่อ device คือ /dev/dm-6 (บน CentOS 6) แต่ผมแนะนำให้ใช้ /dev/vol2/lvol0 ในการอ้างถึง Logical Volume นะครับ เพราะบางกรณี ถ้าเครื่องมีการ reboot ชื่อ device /dev/dm-N นี้ระบบอาจจะมีการกำหนดตัวเลข N กันใหม่ ซึ่งอาจจะเปลี่ยนแปลงไปได้

ถึงจุดนี้เราได้ Logical Volume ที่สามารถนำไปสร้างเป็น filesystem ได้แล้วครับ