Linux 進程監控工具Supervisor 之Tomcat、httpd管理(二)
簡述
現在,我來通過supervisor
進程管理工具實現對 tomcat
進行監控管理,在tomcat 服務停止服務的時候,通過supervisor 工具來自動重啓異常Tomcat,來提供服務。
一、配置Supervisor 工具配置監控管理Tomcat、httpd
1. Tomcat 服務的監控管理配置文件:
[program:tomcat]
command=/opt/apache-tomcat-7.0.96/bin/catalina.sh run ; #啓動運行的命令(前臺運行)
process_name=%(program_name)s ; 程序名稱
numprocs=1 ; 複製的進程數
directory=/opt/apache-tomcat-7.0.96 ; 啓動之後進入的目錄
priority=1 ; 啓動的相對優先級
autostart=true ; supervisord 啓動後,也啓動(默認跟隨啓動)
startsecs=3 ; 程序持續運行3秒後任即爲程序已經運行
startretries=3 ; 啓動失敗後最大的重啓嘗試次數,默認3次
autorestart=true ; 異常終止後,自啓
exitcodes=0 ;異常退出錯誤碼
stopsignal=QUIT ; 向進程發送kill 信號:默認TERM,
stopwaitsecs=10 ; 結束後最大的等待時間
stopasgroup=true ; send stop signal to the UNIX process group (default false)
killasgroup=true ; SIGKILL the UNIX process group (def false)
redirect_stderr=true ; 重定向錯誤輸出到標準輸出
stdout_logfile=/opt/apache-tomcat-7.0.96/logs/catalina.out ; 日誌輸出路徑
stdout_logfile_maxbytes=10MB ; 日誌文件大小
stdout_logfile_backups=20 ; 備份日誌份數
2. 配置httpd Web 服務進程監控
[program:httpd]
command=/opt/httpd-2.2.15/bin/httpd -D FOREGROUND ; httpd 在前臺運行
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1 ; number of processes copies to start (def 1)
directory=/opt/httpd-2.2.15 ; directory to cwd to before exec (def no cwd)
priority=1 ; the relative start priority (default 999)
autostart=true ; start at supervisord start (default: true)
startsecs=3 ; # of secs prog must stay up to be running (def. 1)
startretries=3 ; max # of serial start failures when starting (default 3)
autorestart=true ; when to restart if exited after running (def: unexpected)
exitcodes=0 ; 'expected' exit codes used with autorestart (default 0)
stopsignal=QUIT ; signal used to kill process (default TERM)
stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
stopasgroup=true ; send stop signal to the UNIX process group (default false)
killasgroup=true ; SIGKILL the UNIX process group (def false)
redirect_stderr=true ; 重定向錯誤日誌到標準輸出
stdout_logfile=/opt/httpd-2.2.15/logs/access_errs.log ; 錯誤輸出日誌
stdout_logfile_maxbytes=10MB ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10)
二、啓動管理
默認我們都是採用startup.sh
啓動Apache Tomcat 服務,這個實際是通過catalina.sh 啓動 Tomcat,因此,我們需要修改啓動方式爲 /opt/apache-tomcat-7.0.96/bin/catalina.sh run
來運行Tomcat 服務,
1. 重新加載
[root@localhost supervisord]# supervisorctl reload #重新加載配置文件
Restarted supervisord
[root@localhost supervisord]# supervisorctl
tomcat RUNNING pid 53730, uptime 0:02:35
supervisor>
2. 登錄Web 管理控制檯
2.1 監控Tomcat 服務管理:
當Tomcat 異常退出或是進程不存在的時候,supervisor 會根據配置文件定義的啓動命令進行重啓操作。
2.2 添加httpd服務進程監控管理:
通過上面的實踐案例,我們通過Supervisor 進程管理工具,對本地應用服務進行進程管理與監控檢測,在服務異常時Supervisor 會通過定義好的啓動命令,進行重啓恢復操作,這樣來提高我們應用的服務可用性。同時也實現了對守護進程httpd
的監控與進程管理。
三、Supervisor Web 管理控制檯簡介
這裏僅是使用supervisor 默認的Web控制檯,還有其他的擴展插件,更多詳見:Dashboards and Tools for Multiple Supervisor Instances