3.5 Working with Synchronizer Log Files

3.5.1 Log File Overview

The Synchronizer services generate a set of log files that are created in subdirectories under the following directory:

/var/log/datasync

The log file subdirectories and file names are:

Synchronizer Component

Log File Subdirectory

Log File Name

Sync Engine

syncengine

engine.log

Config Engine

configengine

configengine.log

Web Admin

webadmin

server.log

Connector Manager

syncengine

connectorManager.log

Connectors

connectors

default.pipeline1.connector_name-AppInterface.log

default.pipeline1.connector_name.log

Use the following command to check the most recent additions to a log file:

tail -f log_file_name.log

3.5.2 Log File Rotation

The Synchronizer log files are automatically compressed and rotated by a logrotate cron job. The schedule is set by the DAILY_TIME="00:30" line in the /etc/sysconfig/cron file, which means that the log files are checked at 12:30 a.m. each night. Any Synchronizer log files that have exceeded 4 MB in size are compressed and rotated at that time. After 99 instances of each log file have accumulated, the oldest log file is deleted when a new log file is created.

Log rotation is controlled by the following files:

/etc/logrotate.d/datasync-syncengine
/etc/logrotate.d/datasync-configengine
/etc/logrotate.d/datasync-webadmin

By default, gzip is used to compress old log files. You can change the compression method by changing the following line in the files listed above:

compresscmd /usr/bin/gzip

For example, to change from gzip compression to bz2 compression, use the following line:

compresscmd /usr/bin/bzip2 

Using bz2 compression produces smaller log files but uses more system resources during compression.

For more information, see the Linux logrotate command.

3.5.3 Sync Engine Log File

The Sync Engine log file (engine.log) reports on events that pass through the Sync Engine as they transfer from connector to connector. It logs problems with the physical connection to each connector and with communication between connectors. It also logs problems with the event XML files.

To change the Sync Engine logging level, see Section 3.2.3, Controlling Sync Engine Logging.

3.5.4 Config Engine Log File

The Config Engine log file (configengine.log) reports on configuration setting changes made in Synchronizer Web Admin and on any effects of those changes on the connections between the Sync Engine and connectors. It also logs issues with starting and stopping connectors and tracks the poll cycle for changes in LDAP groups.

To change the Config Engine logging level, see Section 3.2.4, Controlling Config Engine Logging.

3.5.5 Web Admin Log File

The Web Admin log file (server.log) reports problems with the Synchronizer Web Admin interface. Typically, you would not see problems here unless you edited the XML source for one of the Configuration pages and introduced invalid XML. If a Configuration page does not display correctly after you edit the XML source, you can check this log file for help resolving the problem with the XML.

To change the Web Administration service logging level, see Section 3.1.8, Controlling Web Administration Service Logging.

3.5.6 Connector Manager Log File

The Connector Manager log file (connectorManager.log) reports problems with loading a connector with the configuration provided on the connector’s Configuration page.

The Connector Manager starts one Python thread for itself and an additional Python thread for each connector that it manages. When you list Connector Manager threads or Python threads in a terminal window, you cannot tell which Python thread is associated with the Connector Manager and which Python thread is associated with each connector. The Connector Manager log file lists each component and the PID number associated with each one. This can be very useful for troubleshooting.

3.5.7 Connector Log Files

Each connector has two log files associated with it, as described in Section 4.5.3, Controlling Connector Logging.

3.5.8 Per-User Log Files

Per-user log files (user_distinguished_name.log) report on problems that a specific user is having. Per-user logging is disabled by default. To enable it, see Section 3.2.2, Enabling Per-User Logging.

3.5.9 Flatfile Connector Troubleshooting

When data does not synchronize as expected, it can be challenging to determine which component in your Synchronizer system is the source of the problem.You can set up a Flatfile Connector to capture the data files that contain data from one application to see how that data is flowing through your Synchronizer system. For example, if data is not synchronizing successfully between GroupWise and a user’s mobile device, you can set up a Flatfile Connector to determine where the problem lies.

Adding a Flatfile Connector

  1. In Synchronizer Web Admin, click Add Connector.

  2. Specify a name for the Flatfile Connector, then click Add Connector.

    The Connector Type field defaults to flatfile.

    Synchronizer Web Admin with a Flatfile Connector
  3. Click the Flatfile Connector to display the Connector Configuration page.

    Flatfile Connector Configuration page

    Note that the Flatfile Connector stores data files received from other connectors in the /tmp/inbound directory and files that it sends to other connectors in the /tmp/outbound directory. By default, it scans its inbound and outbound directories every 20 seconds.

  4. Click Users, then add the user who is having synchronization problems to the Flatfile Connector.

  5. Return to the main Synchronizer Web Admin page, then start the Flatfile Connector.

    This creates the /tmp/inbound and /tmp/outbound directories.

Troubleshooting Data Flow with the Flatfile Connector

  1. Have the user with the synchronization problem send a message from GroupWise.

  2. On the Synchronizer server, change to the /tmp/inbound directory.

    If the data file for the message has been received by the Flatfile Connector, the /tmp/outbound directory contains a file named similar to the following example:

    default-pipeline1-groupwise-source-soapbridge-alphanumeric_string
    

    The existence of this file shows that the data passed from GroupWise, through the GroupWise Connector, through the Sync Engine, and to the Flatfile Connector. This indicates that the same data should also have been received the Mobility Connector. If the data does not arrive on the mobile device, it shows that the problem resides in the Mobility Connector.

    If a data file does not appear in the /tmp/outbound directory, it indicates that the failure occurred in the GroupWise Connector or the Sync Engine, meaning that the Mobility Connector never received the data.

  3. Have the user with the synchronization problem send a message from the mobile device.

  4. Again, check the /tmp/outbound directory to determine whether the data file successfully passed from the mobile device, through the Mobility Connector, through the Sync Engine, and to the Flatfile Connector.

By using the Flatfile Connector, you can determine which log files are most likely to provide useful data for resolving the problem.

3.5.10 Synchronizer Log File Management Tools

Log files can be an effective window into the functioning of your Synchronizer system. The log file management tools help you to consolidate log files from multiple locations and to gather specific types of information from multiple log files in a single operation.

Collect Logs Tool

As shown in the Section 3.5.1, Log File Overview, Synchronizer log files are created in a variety of directories. The Collect Logs tool collects the most recent log files into a .tar.gz file for convenience when submitting log files to Support. You can collect all of the log files in the following list, or you can collect just the first five, which are the most useful log files:

  • default.pipeline1.groupwise-AppInterface.log

  • default.pipeline1.groupwise.log

  • default.pipeline1.mobility-AppInterface.log

  • default.pipeline1.mobility.log

  • engine.log

  • configengine.log

  • connectorManager.log

  • server.log

The files are collected into a file named datasync_logs_yyyy-mm-ddThh.mm.ss.tar.gz.

To run the Collect Logs tool:

  1. In a terminal window, become the root user.

  2. Change to the following directory:

    /opt/novell/datasync/tools
    
  3. Run the following command:

    python CollectLogs.pyc
    
  4. Enter yes if you want to collect all log files.

    or

    Enter no if you want only the five most useful log files.

  5. Enter 1 for the GroupWise Connector.

  6. Enter 1 for the Mobility Connector.

    The collected logs are listed in the terminal window and compressed into the .tar.gz file.

    A manifest.txt file that lists the log files in the .tar.gz file is also included in the .tar.gz file. The manifest.txt file can be used as input to the other log file management tools, as described in Manifest File.

Trace Log Tool

The Trace Log tool enables you to trace a specific item or contact through multiple log files.

  1. In Synchronizer Web Admin, set the logging level to Debug for the Sync Engine log file, the GroupWise Connector log file, and the Mobility Connector log file, as described in:

  2. (Conditional) If you want to trace an item (message, appointment, or note), complete this step, then skip to Step 4:

    1. In the GroupWise Windows client, send a new item, so that item activity is recorded in the log files.

    2. In the Sent Items folder, right-click the item to trace, then click Properties.

    3. Copy the content of the Record ID field to the clipboard of the Windows workstation.

      A record ID looks similar to the following example:

      4C7D1A3C.domain.post_office.100.1686237.1.486FE.1
      
    4. Make the content of the Record ID field available on the Synchronizer server.

  3. (Conditional) If you want to trace a contact, complete this step, then continue with Step 4:

    1. In the GroupWise Windows client, open a personal address book.

    2. Right-click the contact to trace, then click Properties.

    3. Copy the content of the Entry ID field to the clipboard of the Windows workstation.

    4. Make the content of the Entry ID field available on the Synchronizer server.

  4. In a terminal window on the Synchronizer server, become the root user.

  5. Change to the following directory:

    /opt/novell/datasync/tools
    
  6. Run the following command:

    python traceLog.pyc
    

    By default, the Trace Log tool accesses log files in the default locations, as listed in Section 3.5.1, Log File Overview. If you want the Trace Log tool to access log files other than those in the default locations and with the default names, see Manifest File for additional instructions.

  7. Enter 1 for the GroupWise Connector.

  8. Enter 1 for the Mobility Connector.

  9. Provide the record ID or entry ID that you gathered in Step 2 or Step 3, then press Enter.

    The Trace Log tool now creates a file named trace.out in the tools directory that includes the following sections to help you diagnose the problem:

    Starting from GroupWise...
    ===================================
    
    From GroupWise Connector into Engine...
    =======================================
    
    Inside Engine...
    ================
    
    From Engine to Mobility Connector...
    ====================================
    
    From Mobility Connector to Device...
    ====================================
    

    Each section lists the log messages that pertain to the problem item or problem contact for each segment of the synchronization process, enabling you pinpoint the source of the synchronization problem.

  10. When you are finished tracing items, set the logging level back to its typical setting.

Track Time Tool

The Track Time tool tracks the average time from when an item is created or modified in the GroupWise client to when the item or modification is available in the Mobility Connector and ready for download to your mobile device.

  1. In Synchronizer Web Admin, set the logging level to Debug for the Sync Engine log file, the GroupWise Connector log file, and the Mobility Connector log file, as described in:

  2. In a terminal window on the Synchronizer server, become the root user.

  3. Change to the following directory:

    /opt/novell/datasync/tools
    
  4. Run the following command:

    python trackTime.pyc
    

    By default, the Track Time tool accesses log files in the default locations, as listed in Section 3.5.1, Log File Overview. If you want the Track Time tool to access log files other than those in the default locations and with the default names, see Manifest File for additional instructions.

  5. Enter 1 for the GroupWise Connector.

  6. Enter 1 for the Mobility Connector.

    The Track Time tool displays the elapsed time statistics in the terminal window.

  7. When you are finished gathering elapsed time statistics, set the logging level back to its typical setting.

Manifest File

When you run the Collect Logs tool, it creates a .tar.gz file of the collected logs in the tools directory. It also includes a manifest.txt file that lists the collected log files, for example:

{
"GroupWise": "default.pipeline1.groupwise-AppInterface.log", 
"Engine": "engine.log", 
"Mobility Pipeline": "default.pipeline1.mobility.log", 
"Mobility": "default.pipeline1.mobility-AppInterface.log", 
"GroupWise Pipeline": "default.pipeline1.groupwise.log"
}

The Trace Log tool and the Track Time tool can access the manifest.txt file for the list of log files to process. If you want these tools to access archived log files in different locations or with different names from the live log files, you can modify the manifest.txt file and make it available to the tools.

  1. Extract the manifest.txt from the .tar.gz file into the same directory with the tools (/opt/novell/datasync/tools).

  2. Edit the manifest.txt file with the archived log file locations and file names.

  3. Use the following commands to run the tools:

    python traceLog.pyc -i manifest.txt
    python trackTime.pyc -i manifest.txt
    
  4. After you have used the tools to access the log files listed in the manifest.txt file, delete or rename the manifest.txt file, so that the tools access the live log files, not the archived log files, the next time you run them.

3.5.11 NTS supportconfig Utility

The supportconfig tool provided by Novell Technical Services gathers information about your system to help NTS resolve issues with which you require assistance. It is provided as part of the SLES 11 operating system. You can also use it for your own troubleshooting activities.

Each component of your Synchronizer system (Sync Engine, connectors, and so on) has a supportconfig plug-in that gathers information specific to its functioning. The following information is gathered:

  • The component’s configuration file with security information such as passwords stripped out

  • The component’s current log file

  • The component-specific script that supportconfig ran to collect the information

To run supportconfig for your own troubleshooting activities:

  1. In a terminal window on the Synchronizer server, log in as the root user.

  2. Enter the following command:

    supportconfig
    

    The supportconfig utility examines the server very thoroughly. At the end of its list of findings, it lists the Synchronizer components:

    Data Synchronizer plug-ins for the supportconfig utility

    The utility zips all the data it collected into the following file:

    /var/log/nts_servername_yymmdd_hhss.tbz
    

    This file name identifies the server and the time stamp for the files that supportconfig has collected.

  3. Examine the files that supportconfig collected:

    1. Copy the .tbz file to a convenient temporary directory.

    2. Use the following command to unzip the compressed file:

      tar xjf file_name.tzb
      

      The following files contain the information about each Synchronizer component:

      List of Data Synchronizer files generated by the supportconfig utility
  4. View each .txt file to see the configuration file, current log file, and script file for each Synchronizer component.

For more information, see supportconfig for Linux.