监控任务规划
-
创建定时任务以每隔几分钟检查服务器资源状况,包括磁盘、内存使用率,应用程序状态等,并通过
jiankong.pl
脚本将检查日志发送至消息队列MQ。 -
另一个定时任务同样每隔几分钟通过
start.pl
脚本来检查特定程序进程状态,若发现未运行则自动启动相应程序。 -
每天早上8点运行
ok.pl
脚本进行全面巡检,确保服务器正常运行并发送邮件提醒。
安装环境准备
1. 安装ActiveMQ
如果尚未安装ActiveMQ,按照先前指南将其安装在/usr/soft/activemq
路径下。
2.下载监控程序
从Gitee仓库或CSDN资源下载并解压监控程序到/usr/soft/activemqmonitoring
目录下。
文件目录:
chmod -R 755 /usr/soft/activemqmonitoring/Class-Accessor-0.34
chmod -R 755 /usr/soft/activemqmonitoring/Net-Stomp-0.42
chmod -R 755 /usr/soft/activemqmonitoring/Net-STOMP-Client-1.2
3. 修改MQ地址
将 monitorApp/classes/applicationContext.xml
,更新其中的MQ服务器地址为实际服务器地址。
4. 修改conf.properties
修改monitorApp/classes/conf.properties
文件中的相关配置项。
5. run.sh
文件
修改monitorApp/run.sh
文件,指定服务器上的JDK路径。
6.修改jiankong.pl
、start.pl
和ok.pl
脚本
修改pl
文件夹下的jiankong.pl
、start.pl
和ok.pl
脚本,根据实际情况调整其内容。
jiankong.pl
start.pl
若在执行start.pl
时报错,可能需要编辑ActiveMQ的bin/env
配置文件以添加缺失的环境变量,编辑 env
配置文件后面增加:
ok.pl
7. 编译安装
分别进入Class-Accessor-0.34
、Net-Stomp-0.42
和Net-STOMP-Client-1.2
目录下执行编译安装操作:
cd /usr/soft/activemqmonitoring/<package_name>
perl ./Makefile.PL
如遇错误提示缺少依赖,先执行:
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
再:
make
make install
剩下的两个类似操作。
8. 启动ActiveMQ和Java应用程序。
./usr/soft/activemqmonitoring/monitorApp/run.sh
(记得给run.sh 授权 chmod -R 777 run.sh)
chmod -R 777 run.sh
monitorApp
在最前面有gitee的源码下载链接 需要扩展监控维度的可以去修改
查看java应用启动日志:
tail -f /usr/soft/activemqmonitoring/monitorApp/run.log
9. 测试配置好的Perl脚本
测试配置好的Perl脚本,并解决可能出现的问题,比如阿里云ECS环境中SMTP端口限制导致的邮件发送失败,需要修改代码以使用465端口并通过安全协议发送邮件。
接下来测试刚才配置的三个 perl脚本:
cd /usr/soft/activemqmonitoring/pl
perl ok.pl
(此处需要友情提醒一下,如果您发送邮件的程序monitorApp 放在了阿里云的ecs上, run.log 可能会报错:)
阿里云给出如下解释:ECS基于安全考虑,目前已禁用25端口。
所以我们不能使用默认的25端口,但是可以使用:465 安全协议端口进行。此时就需要修改源码.
修改后运行 EmailListener 里面的main方法,会在当前项目的工作目录 bin 目录下生成对应的class文件
将生成的class文件替换到 /usr/soft/activemqmonitoring/monitorApp 对应的包下,
然后将 com.hyaroma.blog.jiankong 对应的进程结束
ps aux|grep com.hyaroma.blog
kill -9 pid
重新运行 run.sh 然后执行 perl ok.pl 等待接收邮件提醒。
10. 配置Linux定时任务
配置Linux定时任务(crontab)以定时执行上述脚本。bash vi /etc/crontab
```bash
# 添加到/etc/crontab
*/3 * * * * root /usr/bin/perl /usr/soft/activemqmonitoring/pl/jiankong.pl
*/3 * * * * root /usr/bin/perl /usr/soft/activemqmonitoring/pl/start.pl
0 8 * * * root /usr/bin/perl /usr/soft/activemqmonitoring/pl/ok.pl
```
含义:
每一分钟执行jiankong.pl脚本
每五分钟执行#start.pl脚本
每天8点定时查看服务器状态并发送邮件
11、启用定时任务
service crond restart