Hi,
ich habe das Problem gefunden:
Das plugin und der mysql_slave check wurden nach 1.2.6p5.cee überarbeitet,
wohl um verschiedene mysql-Instanzen auf einem Host verarbeiten zu können.
Fuer mich sieht es so aus:
Altes plugin, alter check -> ok
Altes plugin, neuer check -> crash
Neues plugin, neuer check -> crash
Das Problem ist in parse_mysql_slave(info) zwei mal:
value = parse_line(line)
if value:
parsed[instance][line[0][:-1]] = value
oder im zweiten Teil der Funktion:
# Support for old Plugin version
value = parse_line(line)
if value:
parsed['mysql'][line[0][:-1]] = value
Bei einigen Werten des mysql "show slave status” ist der Wert an sich 0:
['Seconds_Behind_Master:', '0']
Wenn der Wert an sich 0 ist, dann ist “if value” immer false und die Zeile wird
nie in die Datenstruktur parsed aufgenommen.
Man sieht das schnell wenn man folgenden Debugouput einbaut:
for line in info:
print line
value = parse_line(line)
print value
if value:
parsed['mysql'][line[0][:-1]] = value
print parsed
return parsed
und man sich das Ergenis ansieht:
['***************************', '1.', 'row', '***************************']
None
['Slave_IO_State:', 'Waiting', 'for', 'master', 'to', 'send', 'event']
Waiting for master to send event
['Master_Host:', '10.1.27.6']
10.1.27.6
['Master_User:', 'repl']
repl
['Master_Port:', '3306']
3306
['Connect_Retry:', '60']
60
['Master_Log_File:', 'repl-log-bin.002159']
repl-log-bin.002159
['Read_Master_Log_Pos:', '88452512']
88452512
['Relay_Log_File:', 'repl-relay-bin.003958']
repl-relay-bin.003958
['Relay_Log_Pos:', '25464404']
25464404
['Relay_Master_Log_File:', 'repl-log-bin.002159']
repl-log-bin.002159
['Slave_IO_Running:', 'Yes']
True
['Slave_SQL_Running:', 'Yes']
True
['Replicate_Do_DB:']
['Replicate_Ignore_DB:']
['Replicate_Do_Table:']
['Replicate_Ignore_Table:']
['Replicate_Wild_Do_Table:']
['Replicate_Wild_Ignore_Table:']
['Last_Errno:', '0']
0
['Last_Error:']
['Skip_Counter:', '0']
0
['Exec_Master_Log_Pos:', '88452512']
88452512
['Relay_Log_Space:', '88452919']
88452919
['Until_Condition:', 'None']
None
['Until_Log_File:']
['Until_Log_Pos:', '0']
0
['Master_SSL_Allowed:', 'No']
False
['Master_SSL_CA_File:']
['Master_SSL_CA_Path:']
['Master_SSL_Cert:']
['Master_SSL_Cipher:']
['Master_SSL_Key:']
['Seconds_Behind_Master:', '0']
0
['Master_SSL_Verify_Server_Cert:', 'No']
False
['Last_IO_Errno:', '0']
0
['Last_IO_Error:']
['Last_SQL_Errno:', '0']
0
['Last_SQL_Error:']
['Replicate_Ignore_Server_Ids:']
['Master_Server_Id:', '12']
12
{'mysql': {'Master_Log_File': 'repl-log-bin.002159', 'Slave_IO_Running': True, 'Read_Master_Log_Pos': 88452512, 'Relay_Log_Space': 88452919, 'Slave_IO_State': 'Waiting for master to send event', 'Exec_Master_Log_Pos': 88452512, 'Master_Host': '10.1.27.6', 'Master_Server_Id': 12, 'Master_User': 'repl', 'Master_Port': 3306, 'Relay_Master_Log_File': 'repl-log-bin.002159', 'Connect_Retry': 60, 'Slave_SQL_Running': True, 'Relay_Log_Pos': 25464404, 'Relay_Log_File': 'repl-relay-bin.003958’}}
Ich hoffe das hilft jemanden.
Stefan
···
Von: checkmk-de-bounces@lists.mathias-kettner.de [mailto:checkmk-de-bounces@lists.mathias-kettner.de] Im Auftrag von Stefan Sticht
Gesendet: Montag, 20. Juli 2015 14:34
An: checkmk-de@lists.mathias-kettner.de
Betreff: [Check_mk (deutsch)] check mysql_slave crashed mit KeyError: 'Seconds_Behind_Master'?
Hi,
hat jemand eine Idee warum dieser Check nun crashed nachdem er lange ohne Probleme lief?
Crash report
Check output: check failed - please submit a crash report!
Check_MK Version: 1.2.7i1p3
Date: 2015-20-07 13:58:57
Host: db1.xxx.intern
Service: MySQL DB Slave mysql
Check type: mysql_slave
Item: 'mysql'
Parameters: {}
Traceback (most recent call last):
File "/omd/sites/fidor/share/check_mk/modules/check_mk_base.py", line 1397, in do_all_checks_on_host
result = convert_check_result(check_function(item, params, info), check_uses_snmp(checkname))
File "/omd/sites/fidor/share/check_mk/checks/mysql_slave", line 91, in check_mysql_slave
if data['Seconds_Behind_Master'] == 'NULL':
KeyError: 'Seconds_Behind_Master’
Der Output vom Agent:
<<<mysql_slave>>>
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.1.27.6
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: repl-log-bin.002158
Read_Master_Log_Pos: 920335896
Relay_Log_File: repl-relay-bin.003954
Relay_Log_Pos: 591712186
Relay_Master_Log_File: repl-log-bin.002158
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 920335896
Relay_Log_Space: 786316196
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 12
Danke!
Stefan
Diese E-Mail kann vertrauliche und/oder rechtlich geschützte Informationen enthalten. Wenn Sie nicht der richtige Adressat sind, so bitten wir Sie, sofort den Absender zu informieren und diese E-Mail vollständig zu löschen. Das unerlaubte Kopieren, Weiterleiten, Verbreiten oder Verwenden dieser E-Mail und deren Inhalte ist nicht gestattet.
_______________________________________________
checkmk-de mailing list
checkmk-de@lists.mathias-kettner.de
http://lists.mathias-kettner.de/mailman/listinfo/checkmk-de
Wir treffen uns zur 2. Check_MK-Konferenz in München!
Rechtzeitig buchen und dabei sein!
18.-20. Oktober 2015
http://mathias-kettner.de/conference