Project Documentation:
Network Monitoring & Auto Ticketing System
1. Project Overview
This project modernizes and unifies network monitoring, visualization, and incident
management by integrating:
Component Tool Used Replaces
Monitoring Zabbix Nagios
Visualization Grafana Cacti, Old Dashboards
ITSM & Ticketing GLPI OTRS
Objectives
● Automate incident detection and ticket creation.
● Reduce manual workflows and improve incident response times.
● Centralized monitoring, performance visualization, and ticketing.
● Real-time visibility into network health and trends.
2. Previous Setup
Tools Used:
● Nagios – Monitoring (basic alerts, manual ticket association)
● Cacti – Graphs (resource utilization, bandwidth)
● Grafana – Separate dashboards for host descriptions
● OTRS – Ticket creation for network incidents
Problems:
● Limited Integration - Poor integration between monitoring, visualization, and
ticketing tools.
● No centralized dashboard combining health and performance metrics
● Delayed response times due to manual workflows
● Fragmented toolchain with limited integration
2. New Solution Architecture
Tools Used
Component Tool
Monitoring Zabbix
Visualization Grafana
Ticketing & ITSM GLPI
Integration Flow
1. Zabbix monitors devices and detects issues.
2. Zabbix triggers alerts and calls a webhook.
3. Webhook creates a ticket in GLPI.
4. Grafana visualizes real-time performance metrics directly from Zabbix.
5. GLPI sends email notifications for new and updated tickets.
4. Implementation Phases
Phase 1 - Device Onboarding in Zabbix
● Devices Added: 230+ (FortiGate, Teltonika, etc.)
● Discovery Method: SNMP v2/v3
● Templates Applied:
○ Fortinet Templates for FortiGate
○ Network Templates for Teltonika
○ ICMP Ping Template
● Grouping: Host groups by customer (Ujjivan, Expereo, Appnomics, etc.)
● Monitored Parameters:
○ CPU, Memory, Bandwidth, Uptime, Interface Status, Signal Strength
(Teltonika)
Phase 2 - Zabbix Alert Configuration
● Triggers Configured:
○ Device Down
○ Critical Interface Down
● Notification Flow:
○ Trigger → Zabbix Action → Webhook (GLPI API Call)
Phase 3 - Zabbix & Grafana Integration
● Direct Integration via: Zabbix Datasource Plugin
● Dashboard Elements:
○ Host Uptime
○ CPU Usage
○ Memory Usage
○ Network Traffic
○ Signal Strength (Teltonika)
Benefits
● Unified performance and health dashboards.
● Real-time metrics without manual data entry.
Phase 4 - Zabbix & GLPI Integration (Auto Ticketing)
● GLPI Setup:
○ Categories, Impact, Urgency Matrix defined.
○ Dedicated Zabbix API User created.
● Webhook Process:
○ Trigger detected in Zabbix.
○ Webhook calls GLPI API.
○ New Ticket created with:
■ Device Name, IP, Issue, Timestamp, Severity
○ Category = Network Issue
○ Assigned to Network Team
● Recovery Handling: Zabbix updates/auto-closes ticket on recovery.
Phase 5 - Email Notifications (GLPI)
● Notification Events:
○ New Ticket Created
○ Ticket Updated (Recovery, Status Change)
● Recipients: Network Support Team
● Customization: Device, IP, Issue, Priority in email body.
Phase 6 - Documentation & Knowledge Base
● Knowledge Base Articles: Common network issues (e.g., Teltonika Low Signal).
● Internal Process Docs:
○ Adding new devices.
○ Creating monitoring templates.
○ Customizing Grafana dashboards.
○ Configuring auto-ticketing rules.
5. Technical Highlights
Component Key Features
Zabbix Monitoring SNMP Polling, Device Discovery, Custom Triggers, Multi-grouping
Zabbix Alerting Webhook to GLPI, Multi-condition triggers
Grafana Real-time Panels, Auto-refresh, Template Variables
Dashboards
GLPI Ticketing Auto Ticketing, Priority Mapping, Notifications, Auto Closure
Notifications SMTP Alerts, GLPI API Ticket Updates
6. SNMP Role in Monitoring
● Why SNMP?
○ Lightweight, widely supported.
● Devices Polled:
○ FortiGate, Teltonika
● Parameters:
○ CPU, Memory, Uptime, Interface Status, Signal Strength
● SNMP Versions:
○ v2c for standard devices
○ v3 for secure devices
7. Database Involvement
Component Database Data Stored
Zabbix MariaDB Hosts, Metrics, Events, Trends
GLPI MySQL Tickets, Users, Assets, Notifications, Knowledge Base
● Zabbix Webhook writes directly to the GLPI database via API.
8. Overall Workflow Diagram
Device Status → Zabbix Polling (SNMP) → Trigger Fires
Trigger → Zabbix Action → GLPI Webhook
Webhook → GLPI Ticket Created → Email Sent
Zabbix Metrics → Grafana Dashboard
Device Recovers → Zabbix Recovery Action → GLPI Ticket Updated/Closed
9. Benefits Comparison
Feature Old Setup New Setup
Ticket Creation Manual Automated (Zabbix to GLPI)
Monitoring Basic (Nagios) Advanced (Zabbix SNMP + Triggers)
Graphing Cacti (manual data) Real-time (Grafana)
Alert-Ticket Link None Direct API Link
Incident Response Time Delayed Real-time
Historical Data Limited Full Trends in Grafana
10. Detailed Technical Zabbix, Grafana & GLPI
Integration
Integration 1: Zabbix & Grafana - Monitoring and Visualization
Steps for Integration:
1. Install Zabbix Plugin on Grafana
Run:
grafana-cli plugins install alexanderzobnin-zabbix-app
systemctl restart grafana-server
● Verify:
○ In Grafana UI, navigate to Configuration > Plugins.
○ Confirm Zabbix App Plugin is installed and enabled.
2. Add Zabbix Data Source to Grafana
● In Grafana, go to: Configuration > Data Sources > Add Data Source.
● Select Zabbix.
● Provide the following details:
○ Zabbix API URL:
[Link]
○ Zabbix Username & Password (create a dedicated Grafana user in Zabbix if
required).
● Test and Save.
3. Create Grafana Dashboards
● Create a new dashboard under Dashboards > New Dashboard.
● Add panels using Zabbix data source.
4. Customize Dashboard with Filters and Auto-refresh
● Set auto-refresh intervals (30s, 1m, 5m, etc.).
● Add dynamic filters for:
○ Hosts
○ Groups
○ Locations
Result
● Grafana will directly query the Zabbix API for real-time and historical data.
● Clean, user-friendly dashboards replace old Cacti visualizations.
Integration 2: Zabbix & GLPI - Automated Incident Ticketing
Steps for Integration:
1. Enable API Access in GLPI
● In GLPI, go to: Setup > General > API.
● Enable API Access.
● Generate:
○ App Token (for application-level access).
○ User Token (for user-level access, if needed).
● Create user zabbix_bot (with appropriate permissions to create and update tickets).
2. Configure Webhook Media Type in Zabbix
● In Zabbix, navigate to Administration > Media Types.
● Create a new Webhook media type.
● Configure required parameters for payload:
○ GLPI App Token.
○ GLPI User Token.
○ Ticket fields such as title, description, priority, etc..
3. Configure Zabbix Action for Incident Handling
● In Zabbix, navigate to: Configuration > Actions.
● Create new Trigger Action for critical events (e.g., "Host Down").
● Set action conditions (e.g., Trigger = "ICMP Ping Unavailable").
● Configure operations to:
○ Call Webhook (create ticket in GLPI).
○ Next add a Recovery Operation to update or close the ticket when the
issue is resolved.
4. Test the Full Workflow
● Simulate a device failure (e.g., bring down a monitored interface).
● Confirm:
○ Alert triggers in Zabbix.
○ Ticket is automatically created in GLPI (with correct details).
○ Ticket is updated or closed if the issue recovers.
Result
● Automatic, real-time ticket creation and updates in GLPI based on Zabbix
alerts.
● Eliminates manual incident reporting and improves incident response times.
● Full incident lifecycle management integrated with monitoring.
Integration 3: GLPI Email Notifications - Automated Email
Alerts
Steps for Configuration:
1. Create Notification Template in GLPI
● In GLPI, navigate to: Administration > Notifications > Templates.
● Create a New Template.
● Customize subject and body using placeholders (e.g., Ticket ID, Title, Description,
Priority).
2. Configure SMTP Settings
● Navigate to: Setup > Notifications > Email Follow Ups.
● Enter SMTP server details (hostname, port, authentication credentials, etc.).
● Test email delivery to confirm.
3. Automate Notification Delivery
● Modify the notification mode from GUI to CLI (for faster queue processing).
On the GLPI Server, edit crontab:
● crontab -e
● Add a cron job to process the email queue every minute:
*/1 * * * * /usr/bin/php /var/www/glpi/front/[Link]
● This ensures queued notifications (such as ticket creation alerts) are sent promptly.
Overall Process Flow Recap
1. Zabbix detects an issue (e.g., device down).
2. Zabbix Trigger fires an alert.
3. Zabbix Action invokes Webhook (linked to GLPI API).
4. Webhook creates a new ticket in GLPI.
5. GLPI sends email notifications to relevant teams.
6. When the issue is resolved, Zabbix can update or close the ticket (optional).
Summary of Benefits
Function Tool Benefit
Monitoring Zabbix Comprehensive monitoring across devices and
services
Visualization Grafana Real-time, customizable dashboards replacing Cacti
Incident GLPI Automated ticket creation and lifecycle management
Management replacing OTRS
Notifications GLPI Instant email notifications to teams
Overall Outcome
● Single integrated workflow for monitoring, visualization, incident
management, and team notifications.
● Replaces multiple legacy tools (Cacti, OTRS, Nagios) with streamlined
Zabbix-Grafana-GLPI stack.
● Reduces manual effort, accelerates incident resolution, and improves
visibility.