[Question] Thắc mắc về monit package |
16/07/2006 22:21:40 (+0700) | #1 | 7200 |
subnetwork
Member
|
0 |
|
|
Joined: 05/09/2004 06:08:09
Messages: 1666
Offline
|
|
Trong bài viết Ký sự các vụ DDoS đến HVA - Phần 13
/hvaonline/posts/list/280.html
Em có thắc mắc ở đoạn này
Tôi tạo ra hồ sơ cấu hình cho monit và đưa vào các ấn định quan trọng nhất + cần thiết nhất để bảo đảm nếu một dịch vụ nào đó tự động thoát ra thì monit sẽ khởi tạo nó lại. Tôi còn điều chỉnh cho monit tái khởi động một số dịch vụ trọng yếu nếu như các dịch vụ này dùng bao nhiêu phần trăm CPU liên tục trong một khoảng thời gian nào đó (dấu hiệu của dịch vụ này đang bị ở tình trạng quá tải vì bị tấn công dồn dập).
Ví dụ em sử dụng monit package này, em set CPU khoãng 60 phần trăm thì tự động Mysql, Apache nó khởi động lại thì em cấu hình cho /root/.monitrc này như thế nào ? Nếu CPU tăng quá cao thì nguy to vì vậy em thử nghiệm package mà anh hướng dẫn để "thiết kế" sao cho khi CPU tăng đến mức mà mình quy định thì tự động Mysql, Apache sẽ reset lại nhằm giải toả một số kết nối, tránh server ngũm củ tỏi.
Em đọc tài liệu của nó ở trang nay
Code:
http://www.sysbotz.com/articles/monitornetwork.htm
Đây là file .monitrc
# Sysbotz Sample monit configuration.
#
set daemon 300
set logfile /var/log/monit
check apache with pidfile /var/log/httpd/httpd.pid
start = "/root/apache-start"
stop = "/root/apache-stop"
checksum /usr/local/bin/httpd
timeout(3, 3) and alert me@company.com
host foo.com port 80 protocol http
host bar.org port 80 protocol http
check sshd with pidfile /var/run/sshd.pid
start = "/root/sshd-start"
stop = "/root/sshd-stop"
timeout(3, 3) and alert me@company.com
checksum /usr/local/sbin/sshd
check named with pidfile /var/run/named.pid
start = "/root/named-start"
stop = "/root/named-stop"
checksum /usr/local/sbin/named
timeout(3, 3) and alert me@company.com
port 53 use type udp.
Ở đoạn này, em chĩ cần thay tên của dịch vụ vào đây phải không anh? Ví dụ /root/mysqld
Code:
start = "/root/named-start"
stop = "/root/named-stop"
Nhưng em không tìm ra cái dòng nào, mình quy định cứ đến 60 phần trăm thì tự động nó reset lại dịch vụ .
Cám ơn anh em đã đọc |
|
Quản lý máy chủ, cài đặt, tư vấn, thiết kế, bảo mật hệ thống máy chủ dùng *nix
http://chamsocmaychu.com |
|
|
|
[Question] Re: Thắc mắc về monit package |
17/07/2006 04:03:05 (+0700) | #2 | 7279 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Hello GA,
Dùng một chương trình nào, việc đầu tiên là tham khảo tài liệu gốc từ trang web của chương trình ấy.
Nếu em đọc kỹ tài liệu hướng dẫn thì sẽ thấy có phần "đụng" đến resource. Em có thể xem ở http://www.tildeslash.com/monit/doc/manual.php#resource_testing.
Dùng một ví dụ hay một config có sẵn có cái lợi mà cũng có cái hại. Lợi ở chỗ là em có thể làm cho dịch vụ chạy được nhanh chóng nhưng hại ở chỗ là có thể sẽ không dùng hết được tính năng và không hiểu hết về chương trình mình dùng.
Đây là một đoạn monit config có dính với CPU:
check process apache
with pidfile "/usr/local/apache2/run/httpd.pid"
start program = "/etc/init.d/apache start"
stop program = "/etc/init.d/apache stop"
if children > 1024 for 5 cycles then restart
if cpu usage > 85% for 5 cycles then stop
if failed host 123.123.123.123 port 80 protocol http with timeout 10 seconds then stop
alert webmaster@somewhere.com on { timeout }
group apache
Quả thật, đoạn start program và stop program là nơi khai báo "lệnh" để stop và start chương trình mình muốn theo dõi.
Thân. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Re: Thắc mắc về monit package |
17/07/2006 04:41:01 (+0700) | #3 | 7286 |
mR.Bi
Member
|
0 |
|
|
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
|
|
nếu như em set CPU hoạt đông đến mức 70%,thì Mysql,apache tự khởi động lại,có nghĩa là tất cả user đang kết nối bị đá văng ra ngoài hết a.? |
|
All of my life I have lived by a code and the code is simple: "honour your parent, love your woman and defend your children" |
|
|
|
[Question] Re: Thắc mắc về monit package |
17/07/2006 04:45:01 (+0700) | #4 | 7287 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
mR.Bi wrote:
nếu như em set CPU hoạt đông đến mức 70%,thì Mysql,apache tự khởi động lại,có nghĩa là tất cả user đang kết nối bị đá văng ra ngoài hết a.?
Tất nhiên. Bởi thế, khi dùng tính năng này phải hết sức cẩn thận. Phải tính toán, đo lường thật kỹ trước khi dùng con số thích hợp. Không thể chỉ gõ một giá trị nào đó một cách bừa bãi không thì chính mình tạo "từ chối dịch vụ" cho mình
Thân. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Thắc mắc về monit package |
18/07/2006 04:50:07 (+0700) | #5 | 7532 |
mainhu
Member
|
0 |
|
|
Joined: 13/07/2006 23:11:43
Messages: 31
Offline
|
|
như vậy, monit chỉ có thể kiểm tra mức độ chiếm CPU của 1 service? Liệu có thể kiểm tra PID nào đang chiếm CPU nhiều nhất và kill nó đi thôi?
|
|
|
|
|
[Question] Thắc mắc về monit package |
18/07/2006 05:04:05 (+0700) | #6 | 7540 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
mainhu wrote:
như vậy, monit chỉ có thể kiểm tra mức độ chiếm CPU của 1 service? Liệu có thể kiểm tra PID nào đang chiếm CPU nhiều nhất và kill nó đi thôi?
Bồ nên đọc kỹ tài liệu monit.
Muốn kiểm tra PID nào chiếm CPU thì không khó nhưng "kill" cho hợp lý thì không dễ. Lý do tại sao? Bồ thử nghĩ xem? |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Re: Thắc mắc về monit package |
18/07/2006 05:58:02 (+0700) | #7 | 7559 |
subnetwork
Member
|
0 |
|
|
Joined: 05/09/2004 06:08:09
Messages: 1666
Offline
|
|
Hi anh conmale
Em làm được rồi và đang "thử nghiệm" nó cho ssh anh ah . Em qua đọc bài của bác 777 cái đã . Cám ơn anh rất nhiều
nếu như em set CPU hoạt đông đến mức 70%,thì Mysql,apache tự khởi động lại,có nghĩa là tất cả user đang kết nối bị đá văng ra ngoài hết a.?
Bạn set ở mức 10% là được rồi, đừng set nhiều quá, CPU load cao có khả năng là do RAM ít, bạn sử dụng crontab để backup dữ liệu khi đến thời gian bạn ấn định backup thì tự động CPU nó load cao thôi. Bạn xem và để ý nó, bạn sẽ thấy nó lên cao như thế nào trong thời gian crontab làm việc.
Bạn nên set trong cái monit này cho nó lưu lại 1.log để tiện theo dõi, 10% cũng đủ dùng rồi, đừng set cao quá có khi tự làm khổ mình, cũng như anh conmale nói : Không thể chỉ gõ một giá trị nào đó một cách bừa bãi không thì chính mình tạo "từ chối dịch vụ" cho mình Nó nằm trong monit.1 đó bạn |
|
Quản lý máy chủ, cài đặt, tư vấn, thiết kế, bảo mật hệ thống máy chủ dùng *nix
http://chamsocmaychu.com |
|
|
|
[Question] Thắc mắc về monit package |
18/07/2006 05:58:20 (+0700) | #8 | 7560 |
mainhu
Member
|
0 |
|
|
Joined: 13/07/2006 23:11:43
Messages: 31
Offline
|
|
hmm... nếu sợ kill nhầm sang PID khác thì có lẽ ko phải. Vì nếu 1 PID chiếm nhiều CPU, nó sẽ mất khá nhiều thời gian để xử lý, mà như vậy, câu lệnh đã ứng với PID đó rồi thì sẽ ko ngại kill nhầm sang PID khác.
Còn có nguyên nhân nào khác mà anh ngại kill 1 PID
|
|
|
|
|
[Question] Re: Thắc mắc về monit package |
18/07/2006 15:03:59 (+0700) | #9 | 7660 |
subnetwork
Member
|
0 |
|
|
Joined: 05/09/2004 06:08:09
Messages: 1666
Offline
|
|
Chức năng này có nhiệm vụ quản lý, giám sát các tiến trình, tập tin, thư mục, thiết bị trên hệ thống Unix . Ví dụ ở đoạn này
1. check process apache with pidfile "/usr/local/apache/logs/httpd.pid"
2. start = “/etc/init.d/httpd start"
3. stop = "/etc/init.d/httpd stop"
4. if cpu usage is greater than 60 percent for 2 cycles then alert
5. if cpu usage > 98% for 5 cycles then restart
6. if 2 restarts within 3 cycles then timeout
Ở câu 6, nếu cả 2 lần reset trong khoãng 3 chu kì thì timeout (vậy nó ngũm)
Tài liệu monit , tôi đọc nhiều lần nhưng tôi không tìm ra nó killall httpd ở đoạn nào cả. Vậy monit này nó có cần thiết chấm dứt các tiến trình đang hoạt động hay chĩ là có chức năng là làm nhiệm vụ trọng tâm giám sát các tiến trình mà thôi tức là trạng thái nào đang có lỗi hoặc vượt mức cho phép mà mình quy định thì nó tự động bảo dưỡng, sửa chữa trạng thái lỗi này, chứ nó không có kill process.
monit is a utility for managing and monitoring, processes, files, directories and devices on a Unix system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations. E.g. monit can start a process if it does not run, restart a process if it does not respond and stop a process if it uses to much resources. You may use monit to monitor files, directories and devices for changes, such as timestamp changes, checksum changes or size changes.
|
|
Quản lý máy chủ, cài đặt, tư vấn, thiết kế, bảo mật hệ thống máy chủ dùng *nix
http://chamsocmaychu.com |
|
|
|
[Question] Re: Thắc mắc về monit package |
22/09/2007 23:20:21 (+0700) | #10 | 86304 |
|
MrMe
Elite Member
|
0 |
|
|
Joined: 08/07/2006 13:01:01
Messages: 150
Offline
|
|
Hi anh conmale em cấu hình monit để nó giám sát các dịch vụ trên máy em như thế này ko biết đã ổn chưa. Anh có thể tư vấn cho em chút được ko ạ
Máy này chỉ có RAM 512 CPU 3Ghz bình thường thôi ạ. Dùng để giám sát những kết nối trong mạng
set daemon 120 # Poll at 2-minute intervals
set logfile syslog facility log_daemon
set alert xxx@yyy.com.vn">xxxx@yyy.com.vn
set httpd port 2812 and use address localhost
allow localhost # Allow localhost to connect
allow 10.252.10.0/255.255.255.0
allow adminxxx # Allow Basic Auth
check system localhost.localdomain
if loadavg (1min) > 4 then alert
if loadavg (5min) > 2 then alert
if memory usage > 75% then alert
if cpu usage (user) > 70% then alert
if cpu usage (system) > 30% then alert
if cpu usage (wait) > 20% then alert
check process apache
with pidfile /var/run/httpd.pid
start program = "/etc/rc.d/init.d/httpd start"
stop program = "/etc/rc.d/init.d/httpd stop"
if 5 restarts within 5 cycles then timeout
if totalmem > 100 Mb then alert
if children > 255 for 3 cycles then stop
if cpu usage > 95% for 3 cycles then restart
if failed port 80 protocol http then start
check host tomcat with address 127.0.0.1
if failed port 8080 protocol http
then exec "/etc/init.d/tomcat4 start"
check process postgresql
with pidfile /var/run/postmaster.5432.pid
start program = "/etc/rc.d/init.d/postgresql start"
stop program = "/etc/rc.d/init.d/postgresql stop"
if 5 restarts within 5 cycles then timeout
if failed port 5432 then start
check process opennms
with pidfile /var/run/opennms.pid
start program = "/etc/rc.d/init.d/opennms start"
stop program = "/etc/rc.d/init.d/opennms stop"
if 5 restarts within 5 cycles then timeout
if changed pid then start
check process ssh
with pidfile /var/run/sshd.pid
start program = "/etc/rc.d/init.d/sshd start"
stop program = "/etc/rc.d/init.d/sshd stop"
if failed port 22 protocol ssh then start
set logfile /var/log/monit.log
|
|
|
|
|
[Question] Re: Thắc mắc về monit package |
23/09/2007 02:55:15 (+0700) | #11 | 86353 |
subnetwork
Member
|
0 |
|
|
Joined: 05/09/2004 06:08:09
Messages: 1666
Offline
|
|
Server của bro phục vụ cho nhiều ứng dụng nhỉ )
set httpd port 2812 and use address localhost
Mặc định monit chạy trên cổng 2812 sao không set cổng khác !?
allow adminxxx # Allow Basic Auth
Sao lấy admin để làm user đăng nhập, sao bro không dùng cuti, tisunrang
check process apache
with pidfile /var/run/httpd.pid
start program = "/etc/rc.d/init.d/httpd start"
stop program = "/etc/rc.d/init.d/httpd stop"
if 5 restarts within 5 cycles then timeout
if totalmem > 100 Mb then alert
if children > 255 for 3 cycles then stop
if cpu usage > 95% for 3 cycles then restart
if failed port 80 protocol http then start
Sao bro không tạo thêm 1 group nào đó và thêm group này vào cho nó vậy bạn )
Mình thêm vào như sau
group hvaonline
if failed host <IP> port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
Như vậy xem ra khá phù hợp ) |
|
Quản lý máy chủ, cài đặt, tư vấn, thiết kế, bảo mật hệ thống máy chủ dùng *nix
http://chamsocmaychu.com |
|
|
|
[Question] Re: Thắc mắc về monit package |
25/09/2007 04:24:08 (+0700) | #12 | 86701 |
|
MrMe
Elite Member
|
0 |
|
|
Joined: 08/07/2006 13:01:01
Messages: 150
Offline
|
|
|
|
[Question] Re: Thắc mắc về monit package |
10/10/2007 03:29:20 (+0700) | #13 | 89742 |
|
lQ
Moderator
|
Joined: 29/03/2005 17:06:20
Messages: 494
Offline
|
|
lQ nhớ ko lầm thì chỉ có thể lựa chọn 1 trong 2 kiểu lưu logfile: syslog hoặc chỉ định tên file cụ thể.
set logfile /var/log/monit.log
set logfile syslog facility log_daemon
|
|
|
[Question] Re: Thắc mắc về monit package |
10/10/2007 05:45:47 (+0700) | #14 | 89777 |
|
MrMe
Elite Member
|
0 |
|
|
Joined: 08/07/2006 13:01:01
Messages: 150
Offline
|
|
set logfile syslog facility log_daemon
set logfile /var/log/monit.log
Em làm như vậy thì thấy nó log vào monit.log
Thanks 4 suppor t ) |
|
|
|