/
Debug Smart Ping
Debug Smart Ping
This article details how to debug and troubleshoot the Smart Ping feature within Checkmk.
LAST TESTED ON CHECKMK 2.3.0P1
Table of Contents
Debug the Smart Ping in the cmc.log
- Increase the log to debug
Check in the cmc.log (as site user)
grep -e <IP> -e <HOSTNAME> ~/var/log/cmc.log | grep -e "smartping timeout" -e "received p"
Livestatus query
With this command, you can check the check interval, retry interval, Smart Ping timeout, and the max check attempts of the host:
Please replace host_name = Myhost with the affected Checkmk Hosts
OMD[mysite]:~$ lq "GET hosts\nColumns: host_name check_interval retry_interval smartping_timeout max_check_attempts state state_type\nFilter: host_name = <Myhost>"
Debugging the Smart Ping via cli
To use this command, you must create (as a site user) a file dump.py in ~/local/bin. The file should look like this: Debugging of Smart Ping#thecontentof./dump.py
OMD[mysite]:~/local/bin$ ~/lib/cmc/icmpreceiver |python3 ~/local/bin/dump.py |grep --line-buffered "127.0.0.1" |perl -pe 'use POSIX strftime; print strftime "[%Y-%m-%d %H:%M:%S] ", localtime'
or you can use the command with the dump.py
OMD[mysite]:~$ ~/lib/cmc/icmpreceiver |python3 /local/bin/dump.py |grep --line-buffered "127.0.0.1" |ts -i
If Perl is not possible, you will find it here: Prepending a timestamp to each line of output from a command
the content of ./dump.py
#!/usr/bin/env python3 import ipaddress import sys def main() -> None: while True: addr = ipaddress.ip_address(sys.stdin.buffer.read(4)) sys.stdout.write(f"{addr!s}\n") sys.stdout.flush() if __name__ == "__main__": main()
You can use this online instead of the ./dump.py:
~/lib/cmc/icmpreceiver | perl -ne 'map { CORE::say join "." => unpack "CCCC", pack "L", $_ } unpack "L*";'
Related articles