How to debug your TrackBird Macintosh configuration

I - Install the debug applications to your client

You have two options :

1 - If the customer service sent you debug components

  • Install the debug components, the customer service sent to you.
  • Remove all previous components from the client
  • Install the new client with the usual command:
  • $ sudo ./nbinstmacx -server=xx.xx.xx.xx
    where xx.xx.xx.xx is the TCP/IP number of the PC runnig TrackBird Admin IP.

    2 - If the customer service sent you debug applications

  • Copy these applications to the folder /Library/Application\ Support/tbclient/bin
  • Check you have the right applications (with good timestamp)
  • $ cd /Library/Application\ Support/tbclient/bin

    $ ls -lsa
    total 6416
    0 drwxr-xr-x 7 root admin 238 2 Mar 18:55 .
    0 drwxr-xr-x 6 root admin 204 2 Mar 18:28 ..
    1104 -r-xr-xr-x 1 root admin 561292 2 Mar 17:55 nbamacx
    2968 -r-xr-xr-x 1 root admin 1517324 2 Mar 17:55 nbcmacx
    80 -r-xr-xr-x 1 root admin 38184 2 Mar 17:55 nbimacx
    1160 -rwxr-xr-x 1 philippe admin 590768 2 Mar 18:54 nbmmacx
    1104 -r-xr-xr-x 1 root admin 561292 2 Mar 17:55 nbumacx

    II - Configure the daemon with log options

    1 - Add the entry -log in your daemon script (which is named : nbimacx_script)

    $ cd /Library/StartupItems/nbimacx_script/

    $ sudo emacs nbimacx_script
    Ctrl X Ctrl S to save
    Ctrl X Ctrl C to quit emacs

    $ cat nbimacx_script
    #!/bin/sh

    ##
    # Start Netbird Agent
    # Script created by Philippe Laval (10/08/2004)
    ##

    . /etc/rc.common

    #if [ "${NBIMACX:=-NO-}" = "-YES-" ]; then
    ConsoleMessage "Starting nbimacx"

    "/Library/Application Support/tbclient/bin/nbimacx" -log -daemon -tbclientpath="/Library/Application Support/tbclient/"

    NB :

  • The fields -daemon -tbclientpath="/Library/Application Support/tbclient/" are mandatory
  • The field -log is optionnal and may be usefull in debugging your configuration.
  • 2 - Edit your daemon (nbimacx) preference file : nbimacx.pref

    $ cd /Library/Application\ Support/tbclient/data/

    $ sudo emacs nbimacx.pref Ctrl X Ctrl S to save
    Ctrl X Ctrl C to quit emacs

    $ cat nbimacx.pref DELAI=0
    FREQUENCE_AGENT=20
    FREQUENCE_MONITORING=5
    LOG_FLAG=1

    The different options are as follow :

  • LOG_FLAG=0 no Log
  • LOG_FLAG=1 Log file trackbird_daemon_log.txt populated
  • DELAI=xx where xx is in minutes. This is the time to wait after system reboot before TrackBird is fired. This may be usefull in case of large system usage at boot time (antivirus for example))
  • FREQUENCE_AGENT=xx where xx is in minutes. This is the time to wait between agent (nbamacx) launch. 120 minutes is the default time.
  • FREQUENCE_MONITORING=xx where xx is in minutes. This is the time to wait between monitoring (nbmmacx) launch. 5 minutes is the default time. The monitoring will remain in memory if it really has to (see options in TrackBird Admin IP).
  • During debuging, you may choose to trigger bugs faster (but your log size will increase)
    FREQUENCE_AGENT=1
    FREQUENCE_MONITORING=1

    III - Configure the client, agent and monitoring with log options

    Add some entries (Debug, LogFlag, LogLevel) to your netbird.cfg file

    $ cd /Library/Application\ Support/tbclient/data/

    $ sudo emacs netbird.cfg
    Ctrl X Ctrl S to save
    Ctrl X Ctrl C to quit emacs

    $ cat netbird.cfg
    [... some entries deleted in documentation...]
    [DEBUG]
    LogFlag=1
    LogLevel=3

    IV - Launch the configuration in debug mode.

    1 - Modify the netbird.cfg file

    In order to be sure that the agent (nbamacx) will launch the collector at system reboot (for debug purpose), you may modify your netbird.cfg file. Remove the content of the entries LastLog and Last as follows :

    $ cd /Library/Application\ Support/tbclient/data/

    $ sudo emacs netbird.cfg
    Ctrl X Ctrl S to save
    Ctrl X Ctrl C to quit emacs

    $ cat netbird.cfg
    [... some entries deleted in documentation...]
    LastLog=
    Last=

    2 - Relaunch the daemon in debug mode

    You have two options to relaunch the daemon in debug mode :

    a - Reboot your system

  • This will kill the current daemon instance at shutdown and launch the script /Library/StartupItems/nbimacx_script/nbimacx_script for you at reboot.
  • This script will launch the daemon in debug mode. As you modified the netbird.cfg file, the agent (nbamacx) will be launched.
  • This application does not remain in memory for a long period of time.
  • The agent will launch the collector (nbcmacx).
  • $ ps axuww | grep nb
    root 779 0.0 0.0 27780 488 ?? Ss 11:57AM 0:00.02 /Library/Application Support/tbclient/bin/nbimacx -log -daemon -tbclientpath=/Library/Application Support/tbclient/
    root 797 54.3 0.9 146060 9356 ?? U 11:57AM 0:16.35 /Library/Application Support/tbclient/bin/nbcmacx
    philippe 807 0.0 0.0 18644 272 std U+ 11:58AM 0:00.01 grep nb

    b - Kill the daemon (nbimacx) and launch the script manually

    $ ps axuww | grep nb
    root 326 0.0 0.0 27780 484 ?? Ss 9:25AM 0:00.49 /Library/Application Support/tbclient/bin/nbimacx -log -daemon -tbclientpath=/Library/Application Support/tbclient/
    philippe 772 0.0 0.0 18644 100 std R+ 11:56AM 0:00.00 grep nb

    $ sudo kill 326
    Password:

    $ ps axuww | grep nb
    philippe 775 0.0 0.0 18644 100 std R+ 11:56AM 0:00.00 grep nb

    NB : some times, you need this command : $ sudo kill -9 326

    $ sudo /Library/StartupItems/nbimacx_script/nbimacx_script

    $ ps axuww | grep nb
    root 779 0.0 0.0 27780 488 ?? Ss 11:57AM 0:00.02 /Library/Application Support/tbclient/bin/nbimacx -log -daemon -tbclientpath=/Library/Application Support/tbclient/
    root 797 54.3 0.9 146060 9356 ?? U 11:57AM 0:16.35 /Library/Application Support/tbclient/bin/nbcmacx
    philippe 807 0.0 0.0 18644 272 std U+ 11:58AM 0:00.01 grep nb

    V - Browsing the debug output

    You will have the debug output in files trackbird_xxx_log.txt

    $ cd /Library/Application\ Support/tbclient/data/

    $ ls
    BROWSER.KB hw.kb nbfirst.$$$ rep.kb
    G5.nbc interface.nib nbimacx.pref scriptip.nbs
    G5.nbm logs.kb nbimacx.pref~ software.tnb
    G5.nbo logs.kbx nbinst.lng sysrep.kb
    G5.nbr logsaix.kb nblogin.log trackbird_agent_log.txt
    G5.nbx logshpux.kb nbtasks.tsk trackbird_client_log.txt
    failure.nbf logslinux.kb nbtx.log trackbird_daemon_log.txt
    g_000121.kb logsmac.kb netbird.cfg trackbird_monitoring_log.txt

    1 - The file trackbird_daemon_log.txt should have the content

    $ cd /Library/Application\ Support/tbclient/data/

    $ more trackbird_daemon_log.txt

    Lancement du daemon = nbimacx
    Parametres de la ligne de commande
    argv[0] = /Library/Application Support/tbclient/bin/nbimacx
    argv[1] = -log
    argv[2] = -daemon
    argv[3] = -tbclientpath=/Library/Application Support/tbclient/

    Chemin vers dossiers
    trackbirdPath : /Library/Application Support/tbclient/
    trackbirdBinPath : /Library/Application Support/tbclient/bin
    trackbirdDataPath : /Library/Application Support/tbclient/data
    Chemin vers les tools (agent et monitoring)
    nbamacx : /Library/Application Support/tbclient/bin/nbamacx
    nbmmacx : /Library/Application Support/tbclient/bin/nbmmacx
    ------------ Configuration du daemon ------------
    DELAI=0 (min)
    FREQUENCE_AGENT=20 (min)
    FREQUENCE_MONITORING=5 (min)
    LOG_FLAG=1
    -------------------------------------------------
    [nbimacx] Start of daemon Thu Mar 3 09:26:00 2005

    NOM_UPD_DAEMON : /Library/Application Support/tbclient/bin/nbdmacx
    [nbimacx] Sleep of daemon Thu Mar 3 09:26:00 2005

    [nbimacx] Awaiking of daemon Thu Mar 3 09:27:00 2005

    NOM_UPD_DAEMON : /Library/Application Support/tbclient/bin/nbdmacx
    user : philippe uid : 501 gid : 501
    [nbimacx] Launching nbamacx (pid : 401) Thu Mar 3 09:27:00 2005

    [nbimacx] End of tool (pid : 401) Thu Mar 3 09:27:01 2005
    [nbimacx] Launching nbmmacx (pid : 407) Thu Mar 3 09:27:01 2005
    [nbimacx] End of tool (pid : 407) Thu Mar 3 09:27:02 2005
    [nbimacx] Sleep of daemon Thu Mar 3 09:27:02 2005

    [nbimacx] Awaiking of daemon Thu Mar 3 09:43:02 2005

    NOM_UPD_DAEMON : /Library/Application Support/tbclient/bin/nbdmacx
    [nbimacx] Sleep of daemon Thu Mar 3 09:46:02 2005

    2 - The file trackbird_monitoring_log.txt should have the content (if monitoring is NOT enable in TrackBird Admin IP) :

    $ cd /Library/Application\ Support/tbclient/data/

    $ more trackbird_monitoring_log.txt

    [02/03/2005 - 19:7:51] LogFlag : 1
    [02/03/2005 - 19:7:51] LogLevel : 3
    [02/03/2005 - 19:7:51] InitialiseMonitoring
    [02/03/2005 - 19:7:51] LocalPath : /Library/Application Support/tbclient/
    [02/03/2005 - 19:7:51] LocalPathBin : /Library/Application Support/tbclient/bin/
    [02/03/2005 - 19:7:51] LocalPathData : /Library/Application Support/tbclient/data/
    [02/03/2005 - 19:7:51] OptionsTx NOT OK
    [02/03/2005 - 19:7:51] Application Log NOT authorized

    3 - The file trackbird_agent_log.txt should have the content

    $ cd /Library/Application\ Support/tbclient/data/

    $ more trackbird_agent_log.txt

    02/03/2005 - 19:7:49] LogFlag : 1
    [02/03/2005 - 19:7:49] LogLevel : 3
    [02/03/2005 - 19:7:49] Lancement de l'Agent
    [02/03/2005 - 19:7:49] Chemin: /Library/Application Support/tbclient/data/
    [02/03/2005 - 19:7:49] Before CReadLocalOptions
    [02/03/2005 - 19:7:49] LogFlag : 1
    [02/03/2005 - 19:7:49] LogLevel : 3
    [02/03/2005 - 19:7:49] Before CReadNetworkGeneralOptions
    [02/03/2005 - 19:7:49] [CRewriteLocalOptions] NBWritePrivateProfileString("SYSTEM", "SERVERPATH", http://192.168.42.209:80/trackbird/)
    [02/03/2005 - 19:7:49] ServerPath : http://192.168.42.209:80/trackbird/
    [02/03/2005 - 19:7:49] LocalPath : /Library/Application Support/tbclient/
    [02/03/2005 - 19:7:49] LocalPathData : /Library/Application Support/tbclient/data/
    [02/03/2005 - 19:7:49] LocalPathBin : /Library/Application Support/tbclient/bin/
    [02/03/2005 - 19:7:49] OutputName : G5
    [02/03/2005 - 19:7:49] Last : 02/03/2005
    [02/03/2005 - 19:7:49] ProgramMode : P
    [02/03/2005 - 19:7:49] ProgramUnit : D
    [02/03/2005 - 19:7:49] ProgramInterval : 1
    [... some entries deleted in documentation...]
    [02/03/2005 - 19:7:50] CCheckCanExe
    [02/03/2005 - 19:7:50] Today (d/m/y) : 2/3/2005
    [02/03/2005 - 19:7:50] Last (d/m/y) : 1/3/2005
    [02/03/2005 - 19:7:50] Collector executed 1 day(s) ago
    [02/03/2005 - 19:7:50] Interval configured 1 day(s)
    [02/03/2005 - 19:7:50] StartNetbird(0)
    [... some entries deleted in documentation...]
    [02/03/2005 - 19:16:5] CCheckCanExe
    [02/03/2005 - 19:16:5] Today (d/m/y) : 2/3/2005
    [02/03/2005 - 19:16:5] Last (d/m/y) : 2/3/2005
    [02/03/2005 - 19:16:5] Collector executed 0 day(s) ago
    [02/03/2005 - 19:16:5] Interval configured 1 day(s)
    [02/03/2005 - 19:16:5] Results still valid , exiting...

    4 - The file trackbird_client_log.txt should have the content

    $ cd /Library/Application\ Support/tbclient/data/

    $ more trackbird_client_log.txt

    [03/03/2005 - 0:18:27] LogFlag : 1
    [03/03/2005 - 0:18:27] LogLevel : 3
    [03/03/2005 - 0:18:27] [CRewriteLocalOptions] NBWritePrivateProfileString("SYSTEM", "SERVERPATH", http://192.168.42.209:80/trackbird/)
    [03/03/2005 - 0:18:27] [CRewriteLocalOptions] NBWritePrivateProfileString("SYSTEM", "SERVERPATH", http://192.168.42.209:80/trackbird/)
    [03/03/2005 - 0:18:27] ServerPath : http://192.168.42.209:80/trackbird/
    [03/03/2005 - 0:18:27] LocalPath : /Library/Application Support/tbclient/
    [03/03/2005 - 0:18:27] LocalPathData : /Library/Application Support/tbclient/data/
    [03/03/2005 - 0:18:27] LocalPathBin : /Library/Application Support/tbclient/bin/
    [03/03/2005 - 0:18:27] OutputName : G5
    [... some entries deleted in documentation...]
    [03/03/2005 - 0:18:27] CCheckCanExe
    [03/03/2005 - 0:18:27] Today (d/m/y) : 3/3/2005
    [03/03/2005 - 0:18:27] Last (d/m/y) : 2/3/2005
    [03/03/2005 - 0:18:27] Collector executed 1 day(s) ago
    [03/03/2005 - 0:18:27] Interval configured 1 day(s)
    [03/03/2005 - 0:18:27] Start of CExtract
    [... some entries deleted in documentation...]
    [03/03/2005 - 0:25:21] End of CExtract
    [03/03/2005 - 0:25:21] [CRewriteLocalOptions] NBWritePrivateProfileString("SYSTEM", "SERVERPATH", http://192.168.42.209:80/trackbird/)