Follow

How to Enable Multi-Graph Reports Across Multiple Collectors using NFS Exports

Applies To

  • Zenoss 4.2.3

Summary

When constructing a multi-graph report containing devices monitored by different distributed collectors, the graph rendering request for all devices will attempt to utilize the Render URL from the first device’s collector. This results in a failure to render graphs for any device that is not monitored by the first collector.

Symptoms

  • One or more graphs in a multi-graph report fails to load with "nan" shown for one or more data point values.

Procedure

The issue can be worked around by completing the following:

  • Installing NFS on the collectors.
  • Exporting each distributed collector’s /opt/zenoss/perf/ directory using NFS.
  • Mounting the directories in a staging directory on the Master Server.
  • Creating symbolic links to the Master Server's perf directory.
  • Using the master server’s Zenrender to access devices within the same multi--graph report.

Note: It will be necesssary to stop the zenrrdcached daemon on each collector to avoid stale data because the master cannot flush rrd caches on each report. Individual reports will still run through the Master’s Zenrender without any loss in functionality.   Since all graph rendering will now be performed through the Master's Zenrender, environments with a high number of graphs being frequently accessed may see an increase in graph display time.

Perform the following to complete the steps to enable multi-graph reports across multiple collectors (summarized above):

  1. Verify that nfs-utils and nfs-utils-lib are installed on each collector:

    # rpm -qa | grep nfs

    If the output does not include nfs-utils and nfs-utils-lib, install the missing package:

    # yum -y install nfs-utils nfs-utils-lib

  2. Export the perf directory on each collector by adding the following line to the /etc/exports file (create /etc/exports if it doesn't exist):

    # /opt/zenoss/perf [ip of master](sync,no_root_squash)

    For example:
    /opt/zenoss/perf 10.177.215.222(sync,no_root_squash)
  3. On each collector, start nfs and configure it to start on boot:

    # service nfs start && chkconfig nfs on

  4. Create a staging directory on the master server:

    # mkdir /opt/collperf

  5. Create subdirectories for each collector in /opt/collperf and mount the directories on the master server:
    1. For Collector #1:
      # mkdir/opt/collperf/collector1
      # mount [collector1 hostname or IP]:/opt/zenoss/perf/Devices/ /opt/collperf/collector1

      For each device that needs to appear in the multigraph report, create a symbolic link from the staging directory to the standard directory for rrd files on the master:

      # ln -s /opt/collperf/[collector1]/[device name]/ /opt/zenoss/perf/Devices
    2. For Collector #2:
      # mkdir /opt/collperf/[collector2]
      # mount [collector2 hostname or IP]:/opt/zenoss/perf/Devices/ /opt/collperf/[collector2]

      For each device that needs to appear in the multigraph report, create a symbolic link from the staging directory to the standard directory for rrd files on the master:

      # ln -s /opt/collperf/[collector2]/[device name]/ /opt/zenoss/perf/Devices/
  6. Update each Collector’s RenderURL.
    1. In the Zenoss web interface, navigate to Advanced => Collectors.
    2. Click on the name of each collector you need to edit.
    3. Click on Edit on the left side.
    4. Edit the value of the Render URL field to read /zport/RenderServer.
  7. Disable Zenrrdcached on each Collector. At the command line of each collector, remove the line:

    ‘[Collector Name]_zenrrdcached’

    from the /opt/zenoss/etc/daemons.txt file.
  8. Stop the zenrrdcached daemon on each collector. At the command line of each collector, as the zenoss user, run:

    $ [Collector Name]_zenrrdcached stop

  9. Verify the master server's configuration:

    # mount

    Verify that each collector's exported directory is listed as a mount on the Master's filesystem.

  10. Verify that the symblic links have been created correctly:

    # ls -alh /opt/zenoss/perf/Devices

  11. Verify Multi-Graph Rendering is now correct.
Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments

Powered by Zendesk