8 Troubleshooting - moudsen/mailGraph GitHub Wiki

In general if something goes wrong (no output), use the following sequence to identify where the error has occured (and raise an issue in this repository so I can take a look at it if you cannot locate the issue by yourself):

  1. Goto Zabbix => Reports => Action Log and search for events with Status "Failed". Resolve issues related to Zabbix.
  2. If the popup message says "Syntax Error" something went wrong with the processing during the script. In this case you have to investigate a bit more what is happening.
  3. Note the eventId from this event for testing the Media Type manually

If the Action Log shows "failed"

The easiest way to test what is happening is to go to Administration => Media types and hit the Test link at the right hand side for MailGraph.

  • Replace relevant macros with information and hit TEST (assuming you did configure baseURL and URL before):
    • {EVENT.ID}: zero (or the id located with the above instructions to troubleshoot a specific event). If zero, mailGraph will try to use the last event found in Zabbix problems.
    • {ALERT.SENDTO}: mail address
  • The last line in the result or the log provided at the bottom will tell you what the actual problem is (most likely an access or connectivity issue)
  • Fix accordingly and retry until success.
  • When fixed verify that any new events are actually sent by email (consider verifying the log directory).

Notes The folllowing logic applies in case {EVENT.ID}=0 or cli_eventId=0

  • Try to pick the latest event detected via the Zabbix API
  • If no eventId is returned, retry to pick the latest less recent problem via the Zabbix API
  • If no eventId is returned, report that there seems to be no list of active problems to pick from and halt

In such case find/set an event ID manually and retry or wait for newly registered events and retry testing mailGraph.

If the Action Log is okay

To facilitate further troubleshooting, you can:

  • switch on debug logging (add Zabbix Value debug in the Media type configuration overview with value "1") to receive processing logs as attachment of an e-mail message (note: setting will apply system wide and generate debugging information for all events triggered)
  • add a tag debug with value "1" to any Trigger to receive processing logs as attachment of an e-mail message (specific only to this Trigger)
  • switch on $cDebugMail in mailGraph.php to receive processing logs as attachment of an e-mail message (note: applies system wide)
  • to review MailGraph stored logs in the /log directory when $cDebug is switched on

Testing from the command line (CLI)

In case of an issue that happens before an e-mail is sent, you can also perform a CLI based test:

  • php mailGraph.php test

For this to work you need to configure the cli_* settings in config.json!

Setting Description
cli_itemId (Obsolete mailGraph v2.10>) Reference to the actual Zabbix item ID that must be used for testing the code.
cli_eventId (Mandatory) Reference to the actual Zabbix event ID that must be used for testing the code. Set to zero to have mailGraph pick a random problem (the latest) from Zabbix.
cli_recipient (Mandatory) Recipient address that will receive this particular test mail.
cli_baseURL (Mandatory) Reference to the web address where MailGraph is installed.
cli_duration Fake Zabbix duration (in minutes) of the event. Set to zero or remove if unknown or irrelevant.
cli_subject To specify the subject of the e-mail message (this may contain TWIG elements). Note that opposite to regular usage in Zabbix, Zabbix macros of values are not evaluated!
cli_period Must be a valid Zabbix period (like "1d", "1w" or "48h") that will be applied to the graph. Default is "48h" when not specified.
cli_period_header Is the header displayed above the graph. For example "Last 48 hours". Defaults to 'period' when not specified.
cli_periods Define multiple periods (max 4) for embedding multiple periods of the same graph in the message (i.e. "10m,4h,1d,7d").
cli_periods_headers Headers associated to these periods (i.e. "Last 10 minutes,Last 4 hours,Last day,Last 7 days").
cli_debug To attach debug logging to the mail message (0=off,1=on).
cli_proxy Proxy URL (i.e. 10.20.30.40:8080) that will be used by MailGraph to reach Zabbix.

If all fails to resolve the issue ...

Your last resort is to raise an issue in this repository and I will try to assist as soon as possible to fix it!