Monit เป็นโปรแกรม open source ที่มีคุณสมบัติด้านการ Monitor Service ในระบบ ซึ่งบางครั้ง ใน Server linux ของเรานั้น อยู่ดีๆ อาจเกิดปัญหา ด้าน system , network หรือ องค์ประกอบใดๆ ที่ทำให้ Service ของเครื่อง stop เอง หรือ start อยู่แต่ output ไม่ทำงาน Monit จึงเกิดมาเพื่อแก้ปัญหาเหล่านี้
ส่วนตัวผมนั้นได้นำ Monit มา Monitor Service ffmpeg (ที่ผมได้เขียนเป็น shellscript ยัดลง /etc/init.d/myservice เข้าระบบ process และเก็บค่า pid แล้ว **ซึ่งการเขียน shellscript เป็น Service นั้นผมขอข้ามไปบทความหน้านะครับ )
ปัญหาของผมช่วงแรกๆคือ ffmpeg หลุดบ่อยมาก หลุดทีนึงก็ต้องมานั่ง ใส่โค็ดรันใหม่ทีหนึ่ง ลำบากผมเหลือเกิน เพราะฉะนั้นผมอยากให้ทุกครั้งที่ service ffmpeg นี่มันหายไปจาก process ให้มันทำการ run ตัวเองขึ้นมาใหม่โดยที่ผมไม่ต้องทำอะไรเลย แค่แจ้งเตือนผมก็พอ
อันนี้รูปตัวอย่างผมจะสาธิตโดยการ stop service ให้ดูเป็นขวัญตา
ใช้คำสั่ง stop service นะครับ
ใน monit ก็จะแจ้งเตือน แบบนี้ครับ
-สีเขียว Service ยังรันอยู่
-สีแดง Service หายไป
-สีเท่า ปิดการเช็ค Service อยู่
แล้วก็นับถอยหลัง 5 วิ (ผมตั้งให้มัน run service หลังจากหา Service ไม่เจอ ภายใน 5 วินาที ตั้งให้มันเร็วมากไปกว่านี้เกรงว่า monit จะรวนนะครับ)
มันรีให้เรียบร้อยแล้ว
ชมตัวอย่างกันไปเรียบร้อยแล้ว มาถึงขั้นตอนการติดตั้งดีกว่า Centos ครับ
อัพเดด repo กันก่อนนะครับ
ใช้คำสั่ง rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
1.ติดตั้ง ssl gcc
yum -y install openssl* gcc
2.ติดตั้ง pam-devel
yum install pam-devel
3.ติดตั้ง openssl-devel
yum install openssl-devel
4.โหลด rpm ของ monit “ผมแนะนำเวอรขั่น 5.5 นะครับ”
wget http://pkgs.repoforge.org/monit/monit-5.5-1.el6.rf.x86_64.rpm
5.ติดตั้ง ไฟบ rpm เลยครับ
rpm -ivh monit-5.5-1.el6.rf.x86_64.rpm
เสร็จแล้วครับ มาถึงวิธีการ config
vi /etc/monit.conf
อันนี้เป็น ตัวอย่างโค๊ด เช็คว่า service ดับ ให้ทำการ สตาร์ขึ้นมาใหม่
ดูจากโค๊ดน่าจะเดาวิธีการทำงานไม่ยากนะครับ
แต่!! monit ทำได้มากกว่านั้น สามารถ สั่งรีสตารท Service เมื่อ cpu เกินเท่าไหร่ หรือจะเป็น ให้แจ้งเตือนเวลา service ดับ แล้วเพิ่มรีพอท หรือจะสั่งให้รีตัวเองทุกๆกี่วัน ก็ได้ แล้วแต่โค๊ดที่เราเขียน ซึ่งสามารถศึกษาได้จาก เว็บโดยตรงเลยครับ
ปล ขออภัย ในเซนเซอรบางอันด้วยนะครับ เนื่องจากเอามาจากเครื่องที่ใช้งานจริง ซึ้งผมกลัวอาจจะมีการ Hack Stream ในเครื่องจริงของผมได้ครับ อาจดูยากนิดหน่อย เพราะพึ่งเขียนบทความครั้งแรกครับ มือใหม่จริงๆ
ใว้เจอกันใหม่ครับ Inot
เครดิต
http://mmonit.com/monit/
http://www.unixmen.com/install-and-configure-monit-on-centos-rhel-ubuntu-debian/