Introduction

Zabbix actions are automated responses that trigger when specific conditions are met, such as when a trigger fires or an event occurs. When actions fail to execute despite triggers firing, monitoring alerts go unnoticed, potentially leading to missed critical incidents. This issue commonly stems from misconfigured action conditions, incorrect operation settings, insufficient user permissions, or disabled action status. Understanding the action execution flow and proper configuration is essential for reliable alerting.

Symptoms

When Zabbix actions are not executing, you may observe the following symptoms:

  • Triggers fire and show "PROBLEM" state in the dashboard, but no actions are recorded
  • Event log shows trigger events with no associated action executions
  • Users report not receiving notifications despite active alerts
  • The "Actions" column in trigger status shows empty or "None"
  • Audit log shows no action execution attempts for firing triggers
  • Action log entries are missing for events that should have triggered responses

Zabbix server log may show:

bash
Action [ActionName] does not match event conditions
No actions found for event [eventid]

Or in the web interface under Monitoring > Problems, you see alerts with no executed actions.

Common Causes

  1. 1.Action is disabled - The action status is set to "Disabled" in configuration
  2. 2.Condition mismatch - Action conditions don't match the actual trigger or host properties
  3. 3.Operation user/group mismatch - Configured operations reference non-existent users or groups
  4. 4.Media type disabled - Email, SMS, or webhook media types are disabled or misconfigured
  5. 5.User media disabled - User's notification media is disabled or has incorrect settings
  6. 6.Permission issues - User or user group lacks read permissions on the host
  7. 7.Maintenance mode - Host is in maintenance with data collection disabled
  8. 8.Escalation timing - Steps are configured but default step duration causes delays
  9. 9.Recovery conditions - Recovery operations configured incorrectly causing no notifications
  10. 10.Action log full - Action log table corruption or database issues preventing logging

Step-by-Step Fix

Step 1: Verify Action Status and Conditions

Navigate to Configuration > Actions and verify:

bash
# Check if action is enabled via API
zabbix-api action.get --filter '{"name":"Your Action Name"}' --output extend
  1. 1.In the Zabbix web interface:
  2. 2.Go to Configuration > Actions > Trigger actions
  3. 3.Verify the action Status is "Enabled" (green checkmark)
  4. 4.Click on the action name to edit
  5. 5.Review the Conditions tab carefully

Common condition issues: - Trigger severity - Condition requires specific severity but trigger has different severity - Host group - Condition requires specific host group but host is in different group - Trigger value - Condition only matches PROBLEM or OK, not both - Maintenance status - Condition may exclude hosts in maintenance

Step 2: Check Operation Configuration

Review the Operations tab in the action configuration:

bash
# List action operations via API
zabbix-api action.get --actionids 123 --selectOperations extend
  1. 1.Verify each operation:
  2. 2.Operation type - Ensure "Send message" or custom operation is selected
  3. 3.Send to user groups - Verify user groups exist and have members
  4. 4.Send to users - Verify users exist and are active
  5. 5.Send only to - Verify media types are enabled
  6. 6.Default message - Check if custom message is needed

Example correct operation configuration: `` Operation type: Send message Send to user groups: Zabbix administrators Send to users: (empty or specific users) Send only to: Email, Webhook Default message: Enabled

Step 3: Verify User Media Configuration

Check that users have properly configured media:

bash
# Check user media via API
zabbix-api user.get --selectMedias extend --output extend
  1. 1.In the web interface:
  2. 2.Go to Administration > Users
  3. 3.Click on the user receiving notifications
  4. 4.Go to Media tab
  5. 5.Verify media is configured:
  6. 6.- Type: Email (or other media type)
  7. 7.- Send to: Valid email address
  8. 8.- When active: Time period includes current time (default 1-7,00:00-24:00)
  9. 9.- Use if severity: Check marks for severity levels that should trigger

Step 4: Verify Media Type Configuration

Check the media type is enabled and properly configured:

bash
# Check media types
zabbix-api mediatype.get --output extend
  1. 1.In the web interface:
  2. 2.Go to Administration > Media types
  3. 3.Verify Email or other media type is Enabled
  4. 4.Click on the media type to check configuration:
  5. 5.- SMTP server: Valid server address
  6. 6.- SMTP server port: Correct port (25, 465, 587)
  7. 7.- Security: SSL/TLS settings match server requirements
  8. 8.- Authentication: Credentials if required

Test email sending: ```bash # Test via CLI echo "Test email body" | mail -s "Zabbix Test" recipient@example.com

# Check Zabbix server log for sending errors tail -f /var/log/zabbix/zabbix_server.log | grep -i "email|smtp|alert" ```

Step 5: Check Host and Trigger Permissions

Verify user groups have proper permissions on the host:

bash
# Check user group permissions
zabbix-api usergroup.get --selectRights extend --output extend
  1. 1.In the web interface:
  2. 2.Go to Administration > User groups
  3. 3.Select the user group
  4. 4.Review Permissions tab
  5. 5.Ensure the host group containing the trigger host has at least "Read" permission

Step 6: Check Maintenance Mode

Hosts in maintenance may not trigger actions:

bash
# Check maintenance status
zabbix-api maintenance.get --output extend --selectHosts extend
  1. 1.In the web interface:
  2. 2.Go to Configuration > Maintenance
  3. 3.Check if the host is in active maintenance
  4. 4.If "With data collection" is selected, actions should still trigger
  5. 5.If "No data collection" is selected, actions won't trigger

Step 7: Repair and Re-enable Components

If issues are found, apply fixes:

```bash # Enable action via API zabbix-api action.update --actionid 123 --status 0

# Enable media type zabbix-api mediatype.update --mediatypeid 1 --status 0

# Enable user media zabbix-api user.update --userid 2 --medias '[{"mediatypeid": "1", "sendto": "user@example.com", "active": "0"}]' ```

In the web interface, simply toggle the status switches to enable.

Verification

After making changes, verify actions execute correctly:

  1. 1.Trigger a test alert:
  2. 2.- Temporarily adjust a trigger threshold to fire immediately
  3. 3.- Or use a dedicated test trigger/item
  4. 4.Check action log:
  5. 5.```bash
  6. 6.# Query alerts table directly
  7. 7.mysql -u zabbix -p zabbix -e "SELECT * FROM alerts WHERE clock > UNIX_TIMESTAMP(NOW() - INTERVAL 10 MINUTE);"
  8. 8.`
  9. 9.Verify in web interface:
  10. 10.- Go to Reports > Action log
  11. 11.- Filter by recent time period
  12. 12.- Check for successful action executions
  13. 13.Confirm notification delivery:
  14. 14.- Check email inbox for test notification
  15. 15.- Verify webhook endpoint received request
  16. 16.- Check Slack/Teams for posted message

Expected successful output in action log: `` Event ID: 12345 Action: Your Action Name Operation: Send message to Zabbix administrators Status: Sent Sent to: user@example.com

Prevention

To prevent future action execution issues:

  1. 1.Regular testing - Set up a cron job to trigger test alerts weekly
  2. 2.```bash
  3. 3.# Weekly test alert script
  4. 4.zabbix_sender -z localhost -s "TestHost" -k test.trigger -o 1
  5. 5.`
  6. 6.Monitor media types - Add internal monitoring for email/webhook health
  7. 7.Document action dependencies - Maintain documentation of user groups, media types, and permission requirements
  8. 8.Use action conditions wisely - Start with broad conditions and refine based on testing
  9. 9.Set up action self-monitoring - Create internal Zabbix items to monitor action execution metrics:
  10. 10.```sql
  11. 11.-- Track alerts sent in last hour
  12. 12.SELECT COUNT(*) FROM alerts WHERE clock > UNIX_TIMESTAMP(NOW() - INTERVAL 1 HOUR);
  13. 13.`
  14. 14.Enable action logging - Ensure Zabbix server configuration includes:
  15. 15.`
  16. 16.LogSlowQueries=3000
  17. 17.DebugLevel=3
  18. 18.`
  19. 19.Audit permissions regularly - Review user group permissions quarterly to ensure proper access
  • [WordPress troubleshooting: Fix IAM Timeout Error - Complete Trouble](fix-iam-timeout-error)
  • [Technical troubleshooting: Fix Cloudwatch Alarm Not Triggering Issue in Monit](cloudwatch-alarm-not-triggering)
  • [Fix Datadog Agent Not Sending Metrics Issue in Monitoring](datadog-agent-not-sending-metrics)
  • [Fix Elasticsearch Cluster Red Yellow Status Issue in Monitoring](elasticsearch-cluster-red-yellow-status)
  • [Fix Alertmanager Notification Failed](fix-alertmanager-notification-failed)

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "TechArticle", "headline": "Zabbix Action Not Executing", "description": "Fix Zabbix actions not running when triggers fire. Diagnose condition matching, operation settings, and user permissions.", "url": "https://www.fixwikihub.com/fix-monitoring-zabbix-action-not-executing", "publisher": { "@type": "Organization", "name": "FixWikiHub", "url": "https://www.fixwikihub.com" }, "author": { "@type": "Person", "name": "FixWikiHub Editorial Team" }, "datePublished": "2025-12-13T03:07:48.116Z", "dateModified": "2025-12-13T03:07:48.116Z" } </script>