Creating Custom Low Level Discovery Rules - Part 2
Video Lecture
Create A New Template
It is now time to create a template that uses the new service.discovery UserParameter as the key.
Configuration ⇾ Templates ⇾ Create Template
Key | Value |
---|---|
Name | Linux Services by Sean |
groups | Linux Servers |
Press ADD
Create A New Discovery Rule
Go into it's Discovery Rules tab and press the 'Create Discovery Rule' button.
Key | Value |
---|---|
Name | Service Discovery |
Type | Zabbix Agent (active) |
key | service.discovery |
Update Interval | 1h |
Press ADD
Create Prototypes
Using the other 2 user parameters from the last lesson, we can create prototypes that will use them.
Test that the two extra user parameters work.
zabbix_agentd -t service.isactive[zabbix-agent]
1 = Yes and 0 = No
zabbix_agentd -t service.activatedtime[zabbix-agent]
Each time the service is restarted, the activatedtime is reset to now.
Item Prototypes
Now to create some item prototypes.
Go to the 'Item Prototypes' tab and press the 'Create Item Prototype' button.
Is Service Active
This item will be used to check if a service status is active or not.
Key | Value |
---|---|
Name | Service Active : {#SERVICE} |
Type | Zabbix Agent (active) |
Key | service.isactive["{#SERVICE}"] |
Type of info | Numeric (unsigned) |
Update Interval | 1m |
Create Enabled | Un-ticked (optional) |
Press ADD
Service Activated Time
This item will be used to detect when a service is restarted since the ActiveEnterTimestampMonotonic property returned by the systemctl command will have changed.
Key | Value |
---|---|
Name | Service Activated Time : {#SERVICE} |
Type | Zabbix Agent (active) |
Key | service.activatedtime["{#SERVICE}"] |
Type of info | Numeric (unsigned) |
Update Interval | 1m |
Create Enabled | Un-ticked (optional) |
Press ADD
Trigger Prototypes
Now to create a trigger prototype that monitors the new items that will be created.
Go to the 'Trigger Prototypes' tab and press the 'Create Item Prototype' button.
Trigger Service Not Active
This trigger will fire when the service is not active.
Key | Value |
---|---|
Name | Service Not Active : {#SERVICE} |
Severity | Disaster (Optional) |
Expression | last(/Linux Services by Sean/service.isactive["{#SERVICE}"])=0 |
OK event generation | Expression |
Create Enabled | Un-ticked (optional) |
Trigger Service Restarted
This trigger will fire when the service.activatedtime for a service changes.
Key | Value |
---|---|
Name | Service Restarted : {#SERVICE} |
Severity | Warning (Optional) |
Expression | change(/Linux Services by Sean/service.activatedtime["{#SERVICE}"])<>0 |
OK event generation | Expression |
Create Enabled | Un-ticked (optional) |
Add The Template To A Host
Go into Configuration ⇾ Hosts, select your host, and add the Service Discovery template.
After some time, you can inspect the new data using the Monitoring ⇾ Latest Data tab and also see the Host items.