当前位置 博文首页 > 江晓龙的博客:使用蓝鲸自愈平台完成java项目程序的自愈机制

    江晓龙的博客:使用蓝鲸自愈平台完成java项目程序的自愈机制

    作者:[db:作者] 时间:2021-07-14 18:39

    使用蓝鲸自愈平台完成java项目程序的自愈机制

    1.蓝鲸自愈平台

    官方文档

    故障自愈是行业领先的"故障自动化处理"解决方案,提升企业的服务可用性和降低故障处理的人力投入,实现故障自愈从"人工处理"到"无人值守"的变革!

    自愈平台可以根据连接配置好的监控平台,当收到我们指定要自愈的监控告警时,首先筛选出告警信息的ip地址,再匹配该服务器所在的集群节点,确认服务器信息,然后将服务器地址传到对应的作业平台的某个作业里,通过作业的具体恢复脚本,实现项目的故障资源机制。

    实现步骤:

    • 首先配置一个告警源

    • 准备故障资源的作业平台脚本

    • 然后配置一个自愈套餐,调用作业平台

    • 最后接入自愈

    2.配置告警源

    在菜单 [接入自愈] -> [管理告警源] 中,点击 启用 Zabbix。

    -w1423

    跳转到接入流程页面

    -w1487

    登陆zabbix服务器操作以下步骤

    cd /usr/lib/zabbix/alertscripts
    wget 'http://${PaaS_Host}/o/bk_fta_solutions/0/alarm_source/scripts/zabbix_fta_alarm.py?fta_application_id=66fdfe50-3075-49bf-8101-d97386030c9b&fta_application_secret=EfgBbXD25N6870j9nkgf3ns8eOEsH2Sk' -O /usr/lib/zabbix/alertscripts/zabbix_fta_alarm.py --no-check-certificate
    chmod  +x zabbix_fta_alarm.py
    ./zabbix_fta_alarm.py --init http://${Zabbix_Host}/api_jsonrpc.php  Admin zabbix
    

    该脚本会创建一个名为FTA_Event_Handler的 报警媒介,名为 FTA_Act 的 Action,名为 FTA_Mgr 的用户。

    -w1475

    3.新建一个作业平台

    点击作业执行—>新建作业—>填写作业名称—>填写脚本内容

    在这里插入图片描述

    脚本内容如下

    #!/bin/bash
    
    anynowtime="date +'%Y-%m-%d %H:%M:%S'"
    NOW="echo [\`$anynowtime\`][PID:$$]"
    
    ##### 可在脚本开始运行时调用,打印当时的时间戳及PID。
    function job_start
    {
        echo "`eval $NOW` job_start"
    }
    
    ##### 可在脚本执行成功的逻辑分支处调用,打印当时的时间戳及PID。 
    function job_success
    {
        MSG="$*"
        echo "`eval $NOW` job_success:[$MSG]"
        exit 0
    }
    
    ##### 可在脚本执行失败的逻辑分支处调用,打印当时的时间戳及PID。
    function job_fail
    {
        MSG="$*"
        echo "`eval $NOW` job_fail:[$MSG]"
        exit 1
    }
    
    job_start
    
    ###### 可在此处开始编写您的脚本逻辑代码
    ###### 作业平台中执行脚本成功和失败的标准只取决于脚本最后一条执行语句的返回值
    ###### 如果返回值为0,则认为此脚本执行成功,如果非0,则认为脚本执行失败
    
    #输出告警信息
    echo "告警信息:`echo $1`"
    echo $1
    #输出自愈机器IP
    ip=`ifconfig |grep 192.168 | awk '{print $2}' |awk -F ':' '{print $2}'`
    echo "自愈机器IP: ${ip}"
    
    #指定tomcat所在路径
    tomcat_path=/data/tomcat
    
    #剩余内存容量
    free_memory=`free  -g | grep Mem | awk '{print $4}'`
    echo "服务器剩余内存:${free_memory} GB"
    
    #要自愈的tomcat名称
    tomcat_name=`echo $1 | awk '{print $1}'`
    
    #输出当前tomcat服务所使用的端口号
    port=`grep 'Connector port=' ${tomcat_path}/${tomcat_name}/conf/server.xml  | grep 'protocol="HTTP/1.1"' | egrep -o "[0-9]{4,5}"`
    echo "服务端口:${port}"
    
    #自愈项目
    if [[ "$ip" == "192.168.5.91" ]] || [[ "$ip" == "192.168.5.92" ]];then
    	echo "开始重启${tomcat_name}"
    	#ps aux | grep ${tomcat_name} | grep -v grep | awk '{print \$2}' | xargs kill -9
        ${tomcat_path}/${tomcat_name}/bin/startup.sh
    	sleep 10s
    fi
    
    #检查项目是否启动成功
    for i in {1..20}
    do
        sleep 3s
        echo "第$i次尝试"
        ava=`curl curl -s http://${ip}:${port}/test_ping`
        if [[ "$ava" = "true" ]];then
            echo "${tomcat_name}自愈成功"
            break
        fi
        if [ $i -ge 20 ];then
            echo "项目自愈不成功!!!"
            exit 1
        fi
    done
    
    
    
    

    4.新建一个自愈套餐

    按下图填写

    在这里插入图片描述

    5.接入自愈

    在这里插入图片描述

    cs
    下一篇:没有了