本站首页    管理页面    写新日志    退出


«October 2025»
1234
567891011
12131415161718
19202122232425
262728293031


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7624343
建立时间:2006年5月29日




[网络与系统管理]如何检测和重启Apache和Lighttpd
软件技术

lhwork 发表于 2007/2/6 11:43:29

Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件,用于Unix平台。它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误。When you cannot monitor your server for service availability, it is better to take help of automated monitor and restart utility. Last 4 days I was away from my server as I was enjoying my vacation. During this time due to load my lighttpd webserver died but it was restarted automatically within 2 minutes. I had utility configured for monitoring services on a Linux system called monit. It offers all features you ever needed for system monitoring and perform error recovery for UNIX like system. Before monit I had my own shell and perl script for monitoring service. If service failed script will try to restart service and send an automated email to me. However monit is a superior solution. 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. For example, 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 timestamps changes, checksum changes or size changes. You may also use monit to monitor files, directories and devices on localhost. Monit can monitor these items for changes, such as timestamps changes, checksum changes or size changes. This is also useful for security reasons you can monitor the md5 checksum of files that should not change. Personally I always install and configure monit on all boxes which are under my control. Install monit under Debian or Ubuntu Linux Use apt-get command to install monit# apt-get install monitOR$ sudo apt-get install monit Install monit under Red Hat enterprise Linux (source code installation) Many distributions include monit. However monit is not included in official Red hat enterprise Linux. Just download monit source code from official web site using wget command:# cd /opt# wget http://www.tildeslash.com/monit/dist/monit-4.8.2.tar.gzUntar monit# tar -zcvf monit-4.8.2.tar.gz# cd monit-4.8.2 Configure and compile monit: # ./configure# make Install monit # make install Copy monit configuration file: # cp monitrc /etc/monitrc By default monit is located at /usr/local/bin/monit How do I Configure monit? monitrc is name of monit configuration file and it is by default located at /etc/monitrc location. However each distribution places file in different location: .=> Source code installation : /etc/monitrc=> Debian / Unentu Linux installation : /etc/monit/monitrc Open monit configuration file and setup values as follows:# vi /etc/monitrc a) Run it as daemon and check the services (such as web, mysql, sshd) at 2-minuteintervals.set daemon 120 b) Set syslog logging with the ‘daemon’ facility:set logfile syslog facility log_daemon c) Set mail server name to send email alertset mailserver mail.cyberciti.bizSet email format such as from emailset mail-format { from: alert@nixcraft.insubject: $SERVICE $EVENT at $DATEmessage: Monit $ACTION $SERVICE at $DATE on $HOST: $DESCRIPTION.} d) Now most important part, restart lighttpd or apache web server if failed or killed by Linux kernel due to any causes:check process lighttpd with pidfile /var/run/lighttpd.pidgroup lighttpdstart program = "/etc/init.d/lighttpd start"stop program = "/etc/init.d/lighttpd stop"if failed host 75.126.43.232 port 80protocol http then restartif 5 restarts within 5 cycles then timeoutWhere, check process lighttpd with pidfile /var/run/lighttpd.pid : You are specifying lighttpd pid file and daemon name group lighttpd: Specify group name, which is allowed or used to start/restart lighttpd start program = “/etc/init.d/lighttpd start” : Command to start lighttpd server stop program = “/etc/init.d/lighttpd stop” : Command to stop lighttpd server if failed host 127.0.0.1 port 80 : Server IP address and port number (80) protocol http then restart : If above IP and port failed restart the webserver if 5 restarts within 5 cycles then timeout : Try to restart 5 times; if monit cannot restart webserver 5 times; just time out to avoid race condition. Here is my mysql server restart configuration directives:check process mysqld with pidfile /var/run/mysqld/mysqld.pidgroup databasestart program = "/etc/init.d/mysqld start"stop program = "/etc/init.d/mysqld stop"if failed host 127.0.0.1 port 3306 then restartif 5 restarts within 5 cycles then timeoutHere is my sshd server configuration directives:check process sshd with pidfile /var/run/sshd.pidstart program "/etc/init.d/sshd start"stop program "/etc/init.d/sshd stop"if failed host 127.0.0.1 port 22 protocol ssh then restartif 5 restarts within 5 cycles then timeout Replace IP address 127.0.0.1 with your actual IP address. If you are using Debian just start monit:# /etc/init.d/monit start If you are using Red Hat Enterprise Linux, start monit from /etc/inittab file:Open /etc/inittab file:# vi /etc/inittabAppend following line:mo:2345:respawn:/usr/local/bin/monit -Ic /etc/monitrc Now start monit:# inittab -q You can verify that monit is started from /var/log/message log file:# tail -f /var/log/messageOutput: Nov 21 04:39:21 server monit[8759]: Starting monit daemon Nov 21 04:39:21 server monit[8759]: Monit started If lighttpd died, you will see something as follows in log file: Nov 21 04:45:13 server monit[8759]: 'lighttpd' process is not running Nov 21 04:45:13 server monit[8759]: 'lighttpd' trying to restart Nov 21 04:45:13 server monit[8759]: 'lighttpd' start: /etc/init.d/lighttpd You may use monit to monitor daemon processes or similar programs running on localhost or started from /etc/init.d/ location such as=> Apache Web Server=> SSH Server=> Postfix/Sendmail MTA=> MySQL etc Further readings monit man page monit official web site and documenation 原文链接:http://www.cyberciti.biz/tips/howto-monitor-and-restart-linux-unix-service.html


阅读全文(4226) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.094 second(s), page refreshed 144784353 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号