How-to temporarily enable debugging in the Linux agent

There is no switch to enable the debug mode in the check_mk_agent for Linux permanently.

LAST TESTED ON CHECKMK 2.3.0P1

Table of Contents


The problem is that the output must be written to a file. Sending it to the CMK Server would lead to a CRIT "Check_MK" service.

Enabling the Debug Mode

To write the debug output to a file on one monitored host, you have to do the following:

1. Create a backup of your check_mk_agent script

root@mylinuxhost:~# cp /usr/bin/check_mk_agent /usr/bin/check_mk_agent.bak


2. Edit the script and add the following lines in the main_setup() routine, after the line set_up_process_commandline_arguments "$@":

/usr/bin/check_mk_agent
     #############################################
    # Permamently enable debug mode

    # log rotation
    logfile=/var/log/agent.out
    max_logs=10  # Adjust the maximum number of stored log files to your needs.
    i=$max_logs

    while [ $i -gt 1 ]; do
        ((j=i-1))
        if [ -f $logfile.$j ]; then
            mv $logfile.$j $logfile.$i
        fi
        i=$j
    done

    if [ -f $logfile ]; then
        mv $logfile $logfile.1
    fi

    # write stderr to log
    set -xv
    exec 2>$logfile

    # Enabling debug END
    ############################################# 

Disabling the Debug Mode

To disable the debug mode, copy your original script:

root@mylinuxhost:~# cp /usr/bin/check_mk_agent.bak /usr/bin/check_mk_agent

Limitations

When you're using the Automatic Agent Updater, it might happen that your modified script will be overwritten.