Kiểm tra file, service và restart service khi cần thiết với Monit
Monit là dch vụ kiểm tra trạng thái của file bằng cách kim tra checksum, theo
dõi hot động củac dịch vchạy trên nền Linux, đưa ra cảnh báo, stop/start
dịch vụ nếu dịch vụ sử dụng tài nguyên quá mức cho phép, hoặc một dịch vụ
nào đó đột nhiên stop vì một lí do nào đó.
công cnày đa năng, dễ sdụng và kiêm khá nhiều việc mà một Linux
System Administrator cần làm, nht là đối với những máy chủ chạy dịch v
nặng nề.
Các bn có thể đọc trước tut này Cybercitiz:
http://www.cyberciti.biz/tips/howto-monitor-and-restart-linux-unix-
service.html
Ngoài ra bn cũng có thể đọc một bài k hay, v gom log của server, kiểm tra
trạng thái file, bạn nào muốn tham khảo có thể đọcđây:
http://www.hvaonline.net/hvaonline/posts/list/14855.hva
Nếu đang làm việc với một server chạy website với lượt truy cập tương đối
lớn, vả lại phần code không được hoàn hảo lắm, việc truy xuất cơ sở dữ liệu
kém cho nên, mysql làm việc quá sức cho phép, dịch vụ này liên tục chiếm
nhiu cpu khiợt quá giới hạn cho phép, server sẽ die theo. Và nếu không
chun v code, vả lại không phải là nời chịu trách nhiệm website, việc cần
thiết là làm sao lúc ta không thường trực bên server, dịch vụ nào đó ra đi thì
vẫn cách làm cho nó sng lại một cách tự động. Cũng có thể dùng một bash
shell để kiểm tra dịch vụ, bạn có thể đọc ở đây:
http://bash.cyberciti.biz/web-server/restart-apache2-httpd-shell-script/
Bài viết trên hướng dẫn bạn viết một shell script để monitor process httpd, nếu
phát hiện process này không hot động thì lập tức restart dịch vụ. Giải pp
này cũng đáng sử dụng, tuy nhiên không linh động, và bền bỉ như monit. Vả lại
với việc viết một shell script, sử dụng cron job...và việc sử dụng một ứng dụng
"chun dụng", ta nên chọn cách sau hơn.
Monit là một ứng dụng viết ra cho các hệ điều hành *Nix unix like, theo
thông tin trang chủ : http://www.tildeslash.com/monit/ thì monitm viêc tốt
với hầu hết các hệ điều hành Linux. Bài này tôi hướng dẫn bạn cách cài đặt và
sử dụng Monit tn Centos 5.2, tương tvới redhat, fedora... Ngoài ra cũng đá
một chút sang Debian/Ubuntu (2 OSes này tđơn giảnn).
1.Cài đặt:
Monit phiên bn stable hiện tại là 4.10.1, bạn có thể vào trang chđể tìm hiu
thêm, download và cài đặt:
$ cd /tmp
$ wget http://mmonit.com/monit/dist/monit-4.10.1.tar.gz
$ su
Password: Gõ password của bạno
# tar xvf monit-4.10.1.tar.gz
# cd monit-4.10.1
# sh ./configure
Bước này có th một vài bn sẽ gặp lỗi tương tự:
sh ./configure
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C
compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
Ta kiểm tra xem /tmp có bị mount với option noexec không? Lỗi trên chyếu
do ngun nhân này:
# mount
/dev/sda5 on / type ext3 (rw,usrquota)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda8 on /tmp type ext3 (rw,noexec,nosuid)
/dev/sda7 on /home type ext3 (rw,usrquota)
/dev/sda3 on /usr type ext3 (rw,usrquota)
/dev/sda2 on /var type ext3 (rw,usrquota)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/tmp on /var/tmp type none (rw,noexec,nosuid,bind)
Chú ý /tmp được mount ở /etc/fstab với option noexec, để khắc phục lỗi này,
bạn sửa lại /etc/fstab restart. Nng không n, option trên đ bảo mật cho
hệ thống, ta chỉ cần move file down về tới một thư mục khác có quyền rw,
exec được.
# make & make install
Những bước compile trên là cơ bản khi sử dụng Linux, nếu muốn học về linux,
bạn nên tp làm quen dần với các bước compile tsource.
Tiếp theo copy file cấu hình của Monit vào nơi nào đó cho dễ dàng qun lí:
# cp monitrc /etc/monitrc
Với Debian/Ubuntu, đã có sẵn gói deb, bạn cài đặt bằng lệnh apt-get install
$ sudo apt-get install monit
Thế là xong.
2.Cấu hình:
File cu hình bạn chuyển vào thư mục /etc ở trên, mnó ra
# nano /etc/monitrc
tìm ng
#set daemon 120
Bỏ dấu "#" ở trước,ng này ý nghĩa: đặt Monit như một daemon, kiểm tra
2 phút một lần dịch vụ, file nào bạn chỉ định, giá trị này tính bằng giây, nếu
muốn tăng hay giảm thì bạn có thể thay đổi 60, 180, 240...
Tiếp theo tìmng:
# set logfile syslog facility log_daemon
Bỏ dấu "#" trước nó, dòngy chđịnh syslog ghi lại hoạt động của daemon
này, LOG-USer là facility theo mặc định.
Tìm set mailserver, b"#" và tm vào cho đúng với cấu hình mailserver của
bạn
set mailserver mail.opensource.com.vn
set alert
whatvn@opensource.com.vn
Địa chỉ email này đã được bảo vệ từ spam bots, bạn cần kích hoạt Javascript
để xem nó.