Heim Datenbank MySQL-Tutorial Nagios里面监控MySQL事务一直RUNNING没有结束的报警Shell脚本_MySQL

Nagios里面监控MySQL事务一直RUNNING没有结束的报警Shell脚本_MySQL

Jun 01, 2016 pm 01:01 PM
事务 脚本

序言:
业务报警订单提交异常,页面一直没有反应,排查后是事务没有提交或者回滚导致,想到如果及时监控事务的运行状态报警出来,那么就可以及时排查出问题所在,方便运营处理,所以自己就弄了一个shell脚本放在nagios来处理事务报警情况。

1,编写事务监控脚本
#!/bin/bash
# author: tim.man
# version: 1.0
# desc: check the RUNNING TRANSACTION over


ST_OK=0
ST_WR=1
ST_CR=2
ST_UK=3


TIME_TRX=10


# 提示信息
print_help() {
echo "$PROGNAME -w INT -c INT"
echo "Options:"
echo " -w/--warning)"
echo " Sets a warning number"
echo " -c/--critical)"
echo " Sets a critical level for io"
exit $ST_UK
}


while test -n "$1"; do
case "$1" in
-help|-h)
print_help
exit $ST_UK
;;
--warning|-w)
warning=$2
shift
;;
--critical|-c)
critical=$2
shift
;;
*)
echo "Unknown argument: $1"
print_help
exit $ST_UK
;;
esac
shift
done




get_wcdiff() {
if [ ! -z "$warning" -a ! -z "$critical" ]
then
wclvls=1

if [ ${warning} -gt ${critical} ]
then
wcdiff=1
fi
elif [ ! -z "$warning" -a -z "$critical" ]
then
wcdiff=2
elif [ -z "$warning" -a ! -z "$critical" ]
then
wcdiff=3
fi
}


# 脚本判断
val_wcdiff() {
if [ "$wcdiff" = 1 ]
then
echo "Please adjust your warning/critical thresholds. The warning must be lower than the critical level!"
exit $ST_UK
elif [ "$wcdiff" = 2 ]
then
echo "Please also set a critical value when you want to use warning/critical thresholds!"
exit $ST_UK
elif [ "$wcdiff" = 3 ]
then
echo "Please also set a warning value when you want to use warning/critical thresholds!"
exit $ST_UK
fi
}


get_wcdiff
val_wcdiff


# 统计mysql的事务中最大运行时间
max_over_time=`/usr/local/mysql/bin/mysql --user=nagios --password="nagiosq@xxx" -NS /usr/local/mysql/mysql.sock -e "SELECT TIME_TO_SEC(TIMEDIFF(NOW(),t.trx_started)) FROM information_schem
a.INNODB_TRX t WHERE TIME_TO_SEC(TIMEDIFF(NOW(),t.trx_started))>$TIME_TRX ORDER BY TIME_TO_SEC(TIMEDIFF(NOW(),t.trx_started)) DESC LIMIT 1;" |awk '{print $1}'`


# 如果当前没有RUNNING的事务,则直接赋值为0,以免下面if判断出错
if [ ! -n "$max_over_time" ];then max_over_time=0
fi


# 取得当前所以阻塞的事务数量
num_trx=`/usr/local/mysql/bin/mysql --user=nagios --password="nagiosq@xxx" -NS /usr/local/mysql/mysql.sock -e "SELECT COUNT(1) FROM information_schema.INNODB_TRX t WHERE TIME_TO_SEC(TIMEDIF
F(NOW(),t.trx_started))>$TIME_TRX;" |awk '{print $1}'`


if [ -n "$warning" -a -n "$critical" ]
then
if [ `expr $max_over_time \> $warning` -eq 1 -a `expr $max_over_time \ then
echo "WARNING - $num_trx TRANSACTIONS RUNNING,go over for $max_over_time seconds"
exit $ST_WR
elif [ `expr $max_over_time \> $critical` -eq 1 ]
then
echo "CRITICAL- $num_trx TRANSACTIONS RUNNNING,go over for $max_over_time seconds"
exit $ST_CR
else
echo "OK- TRANSACTIONS RAN successfully."
exit $ST_OK
fi
fi


2,在nagios客户端添加脚本监控
先测试下脚本
[root@wgq_idc_dbm_3_61 binlog]# /usr/local/nagios/libexec/check_trx -w 30 -c 60
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
OK- TRANSACTIONS RAN successfully.

[root@wgq_idc_dbm_3_61 binlog]#


在nrpe.cfg里面添加监控命令
[root@wgq_idc_dbm_3_61 binlog]# vim /usr/local/nagios/etc/nrpe.cfg
command[check_mysql_trx]=/usr/local/nagios/libexec/check_trx -w 30 -c 60

之后重启nagios客户端监控, service nrpe restart




4,在nagios主监控服务器上面添加配置选项
先去nagios服务器上面check一下
[root@localhost etc]# /usr/local/nagios/libexec/check_nrpe -H10.254.3.61 -c check_mysql_trx
OK- TRANSACTIONS RAN successfully.
[root@localhost etc]#

在services.cfg里面添加事务监控选项:
define service{
host_name mysqlserver
service_description Check mysql transctions
check_command check_nrpe!check_mysql_trx
max_check_attempts 5
check_command check_nrpe!check_mysql_trx
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups opsweb
}

在commands.cnf里面添加事务监控命令:
# add by tim.man on 20141201
define command{
command_name check_mysql_trx
command_line $USER1$/check_mysql_trx -w $ARG1$ -c $ARG2$
}

邮件短信报警电话报警已经添加,所以无需重新配置。

然后重新加载nagios
[root@localhost objects]# service nagios reload
Running configuration check...
Reloading nagios configuration...
done
[root@localhost objects]#



5,去nagios主监控界面查看监控效果


正常监控效果:
\


严重监控效果:



----------------------------------------------------------------------------------------------------------------

原博客地址: http://blog.itpub.net/26230597/viewspace-1355720/
原作者:黄杉 (mchdba)
----------------------------------------------------------------------------------------------------------------
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie erstelle ich ein Skript zur Bearbeitung? Tutorial zum Erstellen eines Skripts durch Bearbeitung Wie erstelle ich ein Skript zur Bearbeitung? Tutorial zum Erstellen eines Skripts durch Bearbeitung Mar 13, 2024 pm 12:46 PM

Cutting ist ein Videobearbeitungstool mit umfassenden Bearbeitungsfunktionen, Unterstützung für variable Geschwindigkeit, verschiedenen Filtern und Schönheitseffekten sowie umfangreichen Ressourcen für die Musikbibliothek. In dieser Software können Sie Videos direkt bearbeiten oder Bearbeitungsskripte erstellen, aber wie geht das? In diesem Tutorial stellt der Redakteur die Methode zum Bearbeiten und Erstellen von Skripten vor. Produktionsmethode: 1. Klicken Sie, um die Bearbeitungssoftware auf Ihrem Computer zu öffnen, suchen Sie dann die Option „Erstellungsskript“ und klicken Sie zum Öffnen. 2. Geben Sie auf der kreativen Skriptseite den „Skripttitel“ ein und geben Sie dann in der Gliederung eine kurze Einführung in den Drehinhalt ein. 3. Wie kann ich die Option „Storyboard-Beschreibung“ in der Gliederung sehen?

Python-Skript, das alle 5 Minuten ausgeführt wird Python-Skript, das alle 5 Minuten ausgeführt wird Sep 10, 2023 pm 03:33 PM

Automatisierung und Aufgabenplanung spielen eine entscheidende Rolle bei der Rationalisierung wiederkehrender Aufgaben in der Softwareentwicklung. Stellen Sie sich vor, es gibt ein Python-Skript, das alle 5 Minuten ausgeführt werden muss, beispielsweise um Daten von einer API abzurufen, eine Datenverarbeitung durchzuführen oder regelmäßige Aktualisierungen zu senden. Das häufige manuelle Ausführen von Skripten kann zeitaufwändig und fehleranfällig sein. Hier kommt die Aufgabenplanung ins Spiel. In diesem Blogbeitrag erfahren Sie, wie Sie ein Python-Skript so planen, dass es alle 5 Minuten ausgeführt wird, um sicherzustellen, dass es automatisch und ohne manuelles Eingreifen ausgeführt wird. Wir besprechen verschiedene Methoden und Bibliotheken, mit denen Sie dieses Ziel erreichen und Aufgaben effizient automatisieren können. Eine einfache Möglichkeit, mit der Funktion time.sleep() alle 5 Minuten ein Python-Skript auszuführen, ist die Verwendung von tim

Python-Skript zum Herunterfahren des Computers Python-Skript zum Herunterfahren des Computers Aug 29, 2023 am 08:01 AM

In der heutigen schnelllebigen digitalen Welt kann die Automatisierung von Computeraufgaben die Produktivität und den Komfort erheblich steigern. Eine der Aufgaben ist das Herunterfahren des Computers, was bei manueller Ausführung sehr zeitaufwändig sein kann. Glücklicherweise stellt uns Python eine Reihe leistungsstarker Tools zur Verfügung, mit denen wir mit dem System interagieren und solche Aufgaben automatisieren können. In diesem Blogbeitrag erfahren Sie, wie Sie ein Python-Skript schreiben, um Ihren Computer einfach herunterzufahren. Egal, ob Sie ein automatisches Herunterfahren planen, ein Herunterfahren aus der Ferne einleiten oder einfach Zeit sparen möchten, indem Sie ein manuelles Herunterfahren vermeiden möchten, dieses Skript ist praktisch. Importieren der erforderlichen Module Bevor wir mit dem Schreiben des Skripts beginnen, müssen wir die erforderlichen Module importieren, um mit dem System zu interagieren und den Befehl zum Herunterfahren auszuführen. In diesem Abschnitt importieren wir das Betriebssystemmodul (das

Wie führe ich eine .sh-Datei im Linux-System aus? Wie führe ich eine .sh-Datei im Linux-System aus? Mar 14, 2024 pm 06:42 PM

Wie führe ich eine .sh-Datei im Linux-System aus? In Linux-Systemen ist eine .sh-Datei eine Datei, die als Shell-Skript bezeichnet wird und zum Ausführen einer Reihe von Befehlen verwendet wird. Das Ausführen von .sh-Dateien ist ein sehr häufiger Vorgang. In diesem Artikel wird erläutert, wie .sh-Dateien in Linux-Systemen ausgeführt werden, und es werden spezifische Codebeispiele bereitgestellt. Methode 1: Verwenden Sie einen absoluten Pfad, um eine .sh-Datei auszuführen. Um eine .sh-Datei in einem Linux-System auszuführen, können Sie einen absoluten Pfad verwenden, um den Speicherort der Datei anzugeben. Im Folgenden sind die spezifischen Schritte aufgeführt: Öffnen Sie das Terminal

Python-Skript zum Neustarten des Computers Python-Skript zum Neustarten des Computers Sep 08, 2023 pm 05:21 PM

Das Neustarten Ihres Computers ist eine häufige Aufgabe, die wir häufig durchführen, um Probleme zu beheben, Updates zu installieren oder Systemänderungen vorzunehmen. Obwohl es viele Möglichkeiten gibt, Ihren Computer neu zu starten, bietet die Verwendung eines Python-Skripts Automatisierung und Komfort. In diesem Artikel erfahren Sie, wie Sie ein Python-Skript erstellen, das Ihren Computer durch eine einfache Ausführung neu starten kann. Wir besprechen zunächst, wie wichtig ein Neustart Ihres Computers ist und welche Vorteile er mit sich bringt. Anschließend werden wir uns mit den Implementierungsdetails des Python-Skripts befassen und die erforderlichen Module und Funktionen erläutern. In diesem Artikel stellen wir ausführliche Erklärungen und Codeausschnitte bereit, um ein klares Verständnis zu gewährleisten. Die Bedeutung eines Neustarts Ihres Computers Der Neustart Ihres Computers ist ein grundlegender Schritt zur Fehlerbehebung

Windows PowerShell-Skript-Tutorial für Anfänger Windows PowerShell-Skript-Tutorial für Anfänger Mar 13, 2024 pm 10:55 PM

Wir haben dieses Windows PowerShell-Skript-Tutorial für Anfänger entwickelt, egal ob Sie ein Technikbegeisterter oder ein Profi sind, der seine Skriptfähigkeiten verbessern möchte. Wenn Sie keine Vorkenntnisse in PowerShell-Skripting haben, beginnt dieser Artikel mit den Grundlagen und ist auf Sie zugeschnitten. Wir helfen Ihnen, die Installationsschritte für eine PowerShell-Umgebung zu meistern und führen Sie durch die wichtigsten Konzepte und Funktionen von PowerShell-Skripten. Wenn Sie bereit sind, mehr über PowerShell-Skripting zu erfahren, begeben wir uns gemeinsam auf diese spannende Lernreise! Was ist WindowsPowerShell? PowerShell ist ein von Microsoft entwickeltes hybrides Befehlssystem

Sperrwartezeitüberschreitung überschritten; versuchen Sie, die Transaktion neu zu starten – So beheben Sie den MySQL-Fehler: Transaktionswartezeitüberschreitung Sperrwartezeitüberschreitung überschritten; versuchen Sie, die Transaktion neu zu starten – So beheben Sie den MySQL-Fehler: Transaktionswartezeitüberschreitung Oct 05, 2023 am 08:46 AM

Lockwaittimeoutexceeded;tryrestartingtransaction – So beheben Sie den MySQL-Fehler: Transaktionswartezeitüberschreitung Bei Verwendung der MySQL-Datenbank kann es manchmal zu einem häufigen Fehler kommen: Lockwaittimeoutexceeded;tryrestartingtransaction. Dieser Fehler weist auf eine Transaktionswartezeitüberschreitung hin. Dieser Fehler tritt normalerweise auf, wenn

Fünf wenig bekannte moderne Bash-Skripttechniken Fünf wenig bekannte moderne Bash-Skripttechniken Jun 26, 2023 pm 08:36 PM

Programmierer verwenden häufig die Befehlssprache Bash, um Shell-Skripte zur Automatisierung manueller Aufgaben zu erstellen. Sie erstellen beispielsweise Bash-Skripte für verschiedene Konfigurationen, Dateioperationen, die Generierung von Build-Ergebnissen und verschiedene DevOps-bezogene Aktivitäten. Fast alle Unix-ähnlichen oder Unix-basierten Betriebssysteme stellen Benutzern einen vorinstallierten Bash-Interpreter zur Verfügung, sodass wir mit Bash mehr portable Automatisierungsskripte schreiben können. Wie wir bereits wissen, bezieht sich Bash-Scripting auf das Schreiben einer Reihe von Befehlen unter Verwendung der Syntax der Bash-Befehlssprache, integrierter Bash-Befehle und zentraler CLI-Programme des Betriebssystems wie GNU Core Tools. Ein standardmäßiges und altmodisches Bash-Skript führt normalerweise einige Befehle aus und zeigt Klartext auf dem Terminal an

See all articles