欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell腳本配合zabbix實(shí)現(xiàn)tomcat的故障自愈功能

 更新時(shí)間:2022年03月04日 09:43:41   作者:Jiangxl~  
這篇文章主要介紹了shell腳本配合zabbix實(shí)現(xiàn)tomcat的故障自愈,服務(wù)實(shí)現(xiàn)自愈的方式有通過shell腳本+定時(shí)任務(wù)的方式,藍(lán)鯨Pass故障自愈平臺,shell腳本+zabbix觸發(fā)器動(dòng)作,本文給大家詳細(xì)介紹,需要的朋友可以參考下

shell腳本配合zabbix實(shí)現(xiàn)tomcat的故障自愈

1.背景及實(shí)現(xiàn)方式方法

Tomcat運(yùn)行JAVA類的程序代碼經(jīng)常會導(dǎo)致內(nèi)存溢出,往往都是收到告警后再去處理,收到報(bào)警再處理就會拖延故障解決的時(shí)間,因此就需要靠故障自愈的機(jī)制來解決人為干預(yù)的成本。

服務(wù)實(shí)現(xiàn)自愈的方式有很多種:

  • 通過shell腳本+定時(shí)任務(wù)的方式
  • 通過shell腳本檢測應(yīng)用程序的狀態(tài),狀態(tài)為1表示異常為0表示正常,當(dāng)檢測到狀態(tài)為1時(shí)就觸發(fā)自愈腳本,完成程序的故障自愈。
  • 通過腳本來檢測需要配合定時(shí)任務(wù)來實(shí)現(xiàn),存在一定的弊端,可能需要每隔5分鐘就要檢測一次,多多少少會影響服務(wù)器性能。
  • 藍(lán)鯨Pass故障自愈平臺
  • 藍(lán)鯨自動(dòng)化運(yùn)維平臺有故障自愈模塊,可以輕松獲取zabbix告警信息然后實(shí)現(xiàn)故障自愈。
  • 如果只是為了實(shí)現(xiàn)自愈而使用藍(lán)鯨平臺,就有點(diǎn)小材大用了,藍(lán)鯨平臺搭建非常復(fù)雜,并且需要的服務(wù)器數(shù)量也居多,不建議使用此種方式。
  • 藍(lán)鯨實(shí)現(xiàn)JAVA程序故障自愈的文章:https://jiangxl.blog.csdn.net/article/details/118731222
  • shell腳本+zabbix觸發(fā)器動(dòng)作
  • 最為推薦的一種故障自愈方式。
  • 在zabbix中添加服務(wù)狀態(tài)的監(jiān)控項(xiàng),并配置觸發(fā)器,然后通過配置zabbix的動(dòng)作功能,當(dāng)收到服務(wù)狀態(tài)異常的觸發(fā)器告警時(shí),再遠(yuǎn)程服務(wù)器中執(zhí)行自愈腳本,實(shí)現(xiàn)程序的故障自愈。
  • 此方式也并不是十全十美,例如一個(gè)服務(wù)器上有10個(gè)tomcat,端口都不相同,無法通過zabbix觸發(fā)器告警獲取故障服務(wù)的端口號,因此一個(gè)tomcat就需要配置一個(gè)zabbix動(dòng)作。

shell+zabbix實(shí)現(xiàn)故障自愈大致實(shí)現(xiàn)步驟:

1、在zabbix中添加服務(wù)的狀態(tài)監(jiān)控以及觸發(fā)器。

2、編寫故障自愈恢復(fù)腳本,不同端口的服務(wù)都需要編寫單獨(dú)的腳本。

3、配置zabbix動(dòng)作功能,為每一個(gè)需要故障自愈的tomcat鏡像配置。

2.編寫故障自愈腳本

#!/bin/bash
java_node=java-7180				
java_dir=/data/tomcat/${java_node}
java_port=`grep 'protocol="HTTP/1.1"' ${java_dir}/conf/server.xml |awk -F'"' '{if(NR==1){print $2}}'`
host_ip=192.168.10.100
dtime=`date +%F" "%H:%M:%S`
day=`date +%F`
selflheal_logdir=/var/log/java_selflheal

echo "${dtime} ${java_node} 開始自愈..." >>${selflheal_logdir}/selflheal-${day}.log

#關(guān)閉tomcat
ps aux | grep $java_dir | grep -v grep | awk '{print $2}' |xargs kill -9 

#啟動(dòng)服務(wù)
su - www -c "${java_dir}/bin/startup.sh"
if [ $? -eq 0 ];then
	sleep 10s
	for i in {1..20}
	do
		sleep 3s
		echo "第$i次嘗試"
		ava=`curl -s http://${host_ip}:${java_port}/check`
		if [[ "$ava" = "true" ]];then
			echo "${dtime} ${java_node} 自愈成功!!!" >>${selflheal_logdir}/selflheal-${day}.log
			echo "=====================================================" >>${selflheal_logdir}/selflheal-${day}.log
			break
		fi
		if [ $i -ge 20 ];then
			echo  "${dtime} ${java_node} 自愈不成功!!!" >>${selflheal_logdir}/selflheal-${day}.log
			echo "=====================================================" >>${selflheal_logdir}/selflheal-${day}.log
			exit 1
		fi
	done
fi

3.配置zabbix動(dòng)作機(jī)制實(shí)現(xiàn)Tomcat故障自愈

實(shí)現(xiàn)目標(biāo):實(shí)現(xiàn)故障自愈的同時(shí)還要發(fā)送消息提醒。

3.1.創(chuàng)建動(dòng)作

填寫動(dòng)作的名稱,并關(guān)聯(lián)服務(wù)狀態(tài)異常的觸發(fā)器。

在這里插入圖片描述

3.2.配置故障自愈消息內(nèi)容以及執(zhí)行自愈腳本

1)故障自愈告警信息如下

-----------故障自愈事件觸發(fā)-------
故障:{TRIGGER.STATUS},服務(wù)器:{HOSTNAME1}
故障_觸發(fā)器名稱:  {EVENT.NAME}  
IP地址:{HOST.CONN}
故障  時(shí)間:  {EVENT.DATE} {EVENT.TIME}
故障  事件:  {ITEM.NAME}:{ITEM.VALUE}

2)添加執(zhí)行遠(yuǎn)程命令的動(dòng)作

zabbix實(shí)現(xiàn)自愈就是通過在遠(yuǎn)程主機(jī)上執(zhí)行命令進(jìn)行自愈的。

操作類型選擇遠(yuǎn)程命令—>在目標(biāo)列表中填寫tomcat所在的服務(wù)器—填寫執(zhí)行故障自愈腳本的命令。

在這里插入圖片描述

3.3.動(dòng)作創(chuàng)建完成

在這里插入圖片描述

4.觀察故障自愈

在這里插入圖片描述

以上就是shell腳本配合zabbix實(shí)現(xiàn)tomcat的故障自愈的詳細(xì)內(nèi)容,更多關(guān)于shell zabbix實(shí)現(xiàn)tomcat的故障自愈的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 監(jiān)控php-fpm并自動(dòng)重啟服務(wù)的shell腳本

    監(jiān)控php-fpm并自動(dòng)重啟服務(wù)的shell腳本

    這篇文章主要介紹了監(jiān)控php-fpm并自動(dòng)重啟服務(wù)的shell腳本,腳本的主要功能:不斷檢查網(wǎng)站的狀態(tài),如果異常就重啟php-fpm服務(wù),需要的朋友可以參考下
    2014-05-05
  • shell 里面的奇葩字符實(shí)現(xiàn)

    shell 里面的奇葩字符實(shí)現(xiàn)

    這篇文章主要介紹了shell 里面的奇葩字符實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • shell中如何批量注釋和取消注釋

    shell中如何批量注釋和取消注釋

    這篇文章主要介紹了shell中如何批量注釋和取消注釋,幫助大家更好的理解和學(xué)習(xí)shell腳本,感興趣的朋友可以了解下
    2020-08-08
  • CPU負(fù)載監(jiān)控腳本代碼

    CPU負(fù)載監(jiān)控腳本代碼

    CPU負(fù)載監(jiān)控腳本代碼,需要的朋友可以參考下
    2013-01-01
  • Linux網(wǎng)絡(luò)設(shè)置詳情

    Linux網(wǎng)絡(luò)設(shè)置詳情

    這篇文章主要介紹了Linux網(wǎng)絡(luò)設(shè)置,需要的朋友可以參考下面文章內(nèi)容
    2021-08-08
  • linux下的tar命令詳細(xì)解釋

    linux下的tar命令詳細(xì)解釋

    在Linux中,壓縮與解壓用得最多的tar.tar命令確實(shí)很厲害。下面通過本文給大家分享linux下的tar命令詳細(xì)解釋,感興趣的朋友一起看看吧
    2017-08-08
  • Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)的使用

    Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)的使用

    這篇文章主要介紹了Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • bash提取字符串${string:position:length}的具體使用

    bash提取字符串${string:position:length}的具體使用

    本文主要介紹了bash提取字符串${string:position:length}的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • jq命令對JSON進(jìn)行過濾遍歷結(jié)構(gòu)轉(zhuǎn)換等操作實(shí)例

    jq命令對JSON進(jìn)行過濾遍歷結(jié)構(gòu)轉(zhuǎn)換等操作實(shí)例

    這篇文章主要介紹了jq命令對JSON進(jìn)行過濾遍歷結(jié)構(gòu)轉(zhuǎn)換等操作實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 編寫shell腳本實(shí)現(xiàn)tomcat定時(shí)重啟的方法

    編寫shell腳本實(shí)現(xiàn)tomcat定時(shí)重啟的方法

    這篇文章主要介紹了編寫shell腳本實(shí)現(xiàn)tomcat定時(shí)重啟的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論