|
1 | | -# Zabbix Ekara Template |
2 | | - |
3 | | -## Overview |
4 | | - |
5 | | -Ekara is a fully hybrid platform, capable of monitoring 100% of existing applications and ensuring the availability and performance of your environment (intranet and internet). |
6 | | -Ekara robots execute scenarios (user journeys) according to a predefined schedule. |
7 | | -The scenario results are the scenario status and the duration of every step as well as browser's metrics for Web applications. |
8 | | - |
9 | | -The Zabbix Ekara Template is useful for real_time monitoring. For user journeys (scenarios) configuration and a deepen analysis, access the Ekara Portal directly. |
10 | | -The template is designed to interface with Ekara APIs to display in customized dashboards : |
11 | | -* Scenarios statuses, |
12 | | -* Trigger problem event based on scenario status, |
13 | | -* Get observability KPIs (performance and availability), |
14 | | - |
15 | | -## Setup |
16 | | - |
17 | | -### Import the template |
18 | | - |
19 | | -*Data collection -> Templates -> Import* |
20 | | - |
21 | | - |
22 | | - |
23 | | -### Fill up these macros |
24 | | - |
25 | | -*Select the template -> Macros* |
26 | | - |
27 | | -### Assign the template to a host |
28 | | - |
29 | | -*Data collection -> Hosts -> Select host and assign template* |
30 | | - |
31 | | -That host will have items, triggers and graphs created automatically for each scenarios. |
32 | | - |
33 | | -### Enjoy (and wait)<br></br> |
34 | | - |
35 | | -## Zabbix configuration |
36 | | - |
37 | | -You can also modify the {$UPDATE.INTERVAL} macro, which is the number of minutes between each API call for metrics retrieval.<br></br> |
38 | | - |
39 | | -## Template links |
40 | | - |
41 | | -There are no template links in this template.<br></br> |
42 | | - |
43 | | -## Macros used |
44 | | - |
45 | | -|Macro|Description|Default value| |
46 | | -|-|-|-| |
47 | | -|{$EKARA.INTERVAL}|Define at which frequency to refresh the data|`15m`| |
48 | | -|{$EKARA.LOGIN}|Put your Ekara login here| - | |
49 | | -|{$EKARA.PASSWORD}|Put your password here|`SECRET_TEXT`| |
50 | | -|{$EKARA.URL}|Url to connect to the Ekara API|`https://api.ekara.ip-label.net/`| |
51 | | - |
52 | | -## Items |
53 | | - |
54 | | -|Name|Description|Type|Key|Update Interval|Preprocessing| |
55 | | -|-|-|-|-|-|-| |
56 | | -|Get all apps & active scenarios|Get all information of the scenarios|Script|`get.apps.active.scenarios`|10m| - | |
57 | | -|Get all scenarios statuses|Get the statuses of the scenarios|Script|`get.scenarios.statuses`|10m| - | |
58 | | -|Get all apps & active scenarios check|Data collection check|Dependent item|`get.apps.active.scenarios.check`| - | </p><ul><li><p> JSON Path: `$.error` </p><p></p></li><li><p> Discard unchanged with heartbeat: `3h` </p></li></ul> | |
59 | | -|Get all scenarios statuses check|Data collection check|Dependent item|`get.scenarios.statuses.check`| - | </p><ul><li><p> JSON Path: `$.error` </p><p></p></li><li><p> Discard unchanged with heartbeat: `3h` </p></li></ul> | |
60 | | - |
61 | | -## Triggers |
62 | | - |
63 | | -|Name|Description|Expression|Severity| |
64 | | -|-|-|-|-| |
65 | | -|Get all apps & active scenarios: Failed| - |`length(last(/Ekara Template/get.apps.active.scenarios.check))>0`|Warning| |
66 | | -|Get all scenarios statuses: Failed| - |`length(last(/Ekara Template/get.scenarios.statuses.check))>0`|Warning| |
67 | | - |
68 | | -## Discovery rules |
69 | | - |
70 | | -### Set Ekara items |
71 | | - |
72 | | -|Name|Description|Type|Key| |
73 | | -|-|-|-|-| |
74 | | -|Set Ekara items|This will discover the metrics for each scenarios|Dependent Item|`set.ekara.items`| |
75 | | - |
76 | | -**LLD Macros** |
77 | | - |
78 | | -|Name|JSON Path| |
79 | | -|-|-| |
80 | | -|{#SCENARIO.APP}|`$.['applicationName']`| |
81 | | -|{#SCENARIO.ID}|`$.['id']`| |
82 | | -|{#SCENARIO.METRIC}|`$.['preferredMetric']`| |
83 | | -|{#SCENARIO.NAME}|`$.['name']`| |
84 | | -|{#SCENARIO.STATE}|`$.['active']`| |
85 | | -|{#SCENARIO.TYPE}|`$.['plugins'][1].['Name']`| |
86 | | - |
87 | | -**Filters** |
88 | | - |
89 | | -|Macro|| Regular expression| |
90 | | -|-|-|-| |
91 | | -|{#SCENARIO.STATE}|matches|`1`| |
92 | | - |
93 | | -**Items prototype** |
94 | | - |
95 | | -|Name|Description|Type|Key|Update Interval|Preprocessing| |
96 | | -|-|-|-|-|-|-| |
97 | | -|{#SCENARIO.NAME}: availability|Get the availability of the scenario|Dependent Item|`get.scenarios.availability[{#SCENARIO.ID}]`|-| <p><ul><li><p> JSON Path: `$.kpis[?(@.label=='availability')].value.first()` </p></li></ul> | |
98 | | -|{#SCENARIO.NAME}: results|Get the results for each scenarios|Script|`get.scenarios.results[{#SCENARIO.ID}]`|{$UPDATE.INTERVAL}|-| |
99 | | -|{#SCENARIO.NAME}: results check|Data collection check|Dependent Item|`get.scenarios.results.check[{#SCENARIO.ID}]`|-| <p><ul><li><p> JSON Path: `$.error` </p><p></p></li><li><p> Discard unchanged with heartbeat: `3h` </p></li></ul> | |
100 | | -|{#SCENARIO.NAME}: {#SCENARIO.METRIC}|Get the metric of the scenario if available|Dependent Item|`get.scenarios.metric[{#SCENARIO.ID}]`|-| <p><ul><li><p> JSON Path: `$.kpis[?(@.label=='{#SCENARIO.METRIC}')].value.first()` </p></li></ul> | |
101 | | - |
102 | | -**Triggers prototype** |
103 | | - |
104 | | -|Name|Description|Expression|Severity| |
105 | | -|-|-|-|-| |
106 | | -|{#SCENARIO.NAME}: Failed to get results| - |`length(last(/Ekara Template/get.scenarios.results.check[{#SCENARIO.ID}]))>0`|Warning| |
107 | | - |
108 | | -### Set Ekara status items |
109 | | - |
110 | | -|Name|Description|Type|Key| |
111 | | -|-|-|-|-| |
112 | | -|Set Ekara status items|This will discover the status for each scenarios|Dependent Item|`set.ekara.status.items`| |
113 | | - |
114 | | -**LLD Macros** |
115 | | - |
116 | | -|Name|JSON Path| |
117 | | -|-|-| |
118 | | -|{#SCENARIO.ID}|`$.['scenarioId']`| |
119 | | -|{#SCENARIO.NAME}|`$.['scenarioName']`| |
120 | | - |
121 | | -**Items prototype** |
122 | | - |
123 | | -|Name|Description|Type|Key|Update Interval|Preprocessing| |
124 | | -|-|-|-|-|-|-| |
125 | | -|{#SCENARIO.NAME}: status|Get the status of the scenario|Dependent Item|`get.scenarios.statuses[{#SCENARIO.ID}]`|-|`$[?(@.scenarioId=='{#SCENARIO.ID}')].currentStatus.first()`| |
126 | | - |
127 | | -**Triggers prototype** |
128 | | - |
129 | | -|Name|Description|Expression|Severity| |
130 | | -|-|-|-|-| |
131 | | -|{#SCENARIO.NAME}: Status is not success|This will be created for each scenarios and trigger a problem if the scenario's status isn't successful|`last(/Ekara Template/get.scenarios.statuses[{#SCENARIO.ID}])<>1`|Average| |
132 | | - |
133 | | -## Feedback |
134 | | - |
135 | | -Please report any issues with the template at [https://help.ip-label.net/](https://help.ip-label.net/) |
| 1 | +# Zabbix Ekara Template |
| 2 | + |
| 3 | +## Overview |
| 4 | + |
| 5 | +Ekara is a fully hybrid platform, capable of monitoring 100% of existing applications and ensuring the availability and performance of your environment (intranet and internet). |
| 6 | +Ekara robots execute scenarios (user journeys) according to a predefined schedule. |
| 7 | +The scenario results are the scenario status and the duration of every step as well as browser's metrics for Web applications. |
| 8 | + |
| 9 | +The Zabbix Ekara Template is useful for real_time monitoring. For user journeys (scenarios) configuration and a deepen analysis, access the Ekara Portal directly. |
| 10 | +The template is designed to interface with Ekara APIs to display in customized dashboards : |
| 11 | +* Scenarios statuses, |
| 12 | +* Trigger problem event based on scenario status, |
| 13 | +* Get observability KPIs (performance and availability), |
| 14 | + |
| 15 | +## Setup |
| 16 | + |
| 17 | +### Import the template |
| 18 | + |
| 19 | +*Data collection -> Templates -> Import* |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | +### Fill up these macros |
| 24 | + |
| 25 | +*Select the template -> Macros* |
| 26 | + |
| 27 | +### Assign the template to a host |
| 28 | + |
| 29 | +*Data collection -> Hosts -> Select host and assign template* |
| 30 | + |
| 31 | +That host will have items, triggers and graphs created automatically for each scenarios. |
| 32 | + |
| 33 | +### Enjoy (and wait)<br></br> |
| 34 | + |
| 35 | +## Zabbix configuration |
| 36 | + |
| 37 | +You can also modify the {$UPDATE.INTERVAL} macro, which is the number of minutes between each API call for metrics retrieval.<br></br> |
| 38 | + |
| 39 | +## Template links |
| 40 | + |
| 41 | +There are no template links in this template.<br></br> |
| 42 | + |
| 43 | +## Macros used |
| 44 | + |
| 45 | +|Macro|Description|Default value| |
| 46 | +|-|-|-| |
| 47 | +|{$EKARA.INTERVAL}|Define at which frequency to refresh the data|`15m`| |
| 48 | +|{$EKARA.API_KEY}|Put your Ekara API key here|`SECRET_TEXT`| |
| 49 | +|{$EKARA.URL}|Ekara API endpoint URL|`https://ekara.ip-label.net/`| |
| 50 | + |
| 51 | +## Items |
| 52 | + |
| 53 | +|Name|Description|Type|Key|Update Interval|Preprocessing| |
| 54 | +|-|-|-|-|-|-| |
| 55 | +|Get all apps & active scenarios|Get all information of the scenarios|Script|`get.apps.active.scenarios`|10m| - | |
| 56 | +|Get all scenarios statuses|Get the statuses of the scenarios|Script|`get.scenarios.statuses`|10m| - | |
| 57 | +|Get all apps & active scenarios check|Data collection check|Dependent item|`get.apps.active.scenarios.check`| - | </p><ul><li><p> JSON Path: `$.error` </p><p></p></li><li><p> Discard unchanged with heartbeat: `3h` </p></li></ul> | |
| 58 | +|Get all scenarios statuses check|Data collection check|Dependent item|`get.scenarios.statuses.check`| - | </p><ul><li><p> JSON Path: `$.error` </p><p></p></li><li><p> Discard unchanged with heartbeat: `3h` </p></li></ul> | |
| 59 | + |
| 60 | +## Triggers |
| 61 | + |
| 62 | +|Name|Description|Expression|Severity| |
| 63 | +|-|-|-|-| |
| 64 | +|Get all apps & active scenarios: Failed| - |`length(last(/Ekara Template/get.apps.active.scenarios.check))>0`|Warning| |
| 65 | +|Get all scenarios statuses: Failed| - |`length(last(/Ekara Template/get.scenarios.statuses.check))>0`|Warning| |
| 66 | + |
| 67 | +## Discovery rules |
| 68 | + |
| 69 | +### Set Ekara items |
| 70 | + |
| 71 | +|Name|Description|Type|Key| |
| 72 | +|-|-|-|-| |
| 73 | +|Set Ekara items|This will discover the metrics for each scenarios|Dependent Item|`set.ekara.items`| |
| 74 | + |
| 75 | +**LLD Macros** |
| 76 | + |
| 77 | +|Name|JSON Path| |
| 78 | +|-|-| |
| 79 | +|{#SCENARIO.APP}|`$.['applicationName']`| |
| 80 | +|{#SCENARIO.ID}|`$.['id']`| |
| 81 | +|{#SCENARIO.METRIC}|`$.['preferredMetric']`| |
| 82 | +|{#SCENARIO.NAME}|`$.['name']`| |
| 83 | +|{#SCENARIO.STATE}|`$.['active']`| |
| 84 | +|{#SCENARIO.TYPE}|`$.['plugins'][1].['Name']`| |
| 85 | + |
| 86 | +**Filters** |
| 87 | + |
| 88 | +|Macro|| Regular expression| |
| 89 | +|-|-|-| |
| 90 | +|{#SCENARIO.STATE}|matches|`1`| |
| 91 | + |
| 92 | +**Items prototype** |
| 93 | + |
| 94 | +|Name|Description|Type|Key|Update Interval|Preprocessing| |
| 95 | +|-|-|-|-|-|-| |
| 96 | +|{#SCENARIO.NAME}: availability|Get the availability of the scenario|Dependent Item|`get.scenarios.availability[{#SCENARIO.ID}]`|-| <p><ul><li><p> JSON Path: `$.kpis[?(@.label=='availability')].value.first()` </p></li></ul> | |
| 97 | +|{#SCENARIO.NAME}: results|Get the results for each scenarios|Script|`get.scenarios.results[{#SCENARIO.ID}]`|{$UPDATE.INTERVAL}|-| |
| 98 | +|{#SCENARIO.NAME}: results check|Data collection check|Dependent Item|`get.scenarios.results.check[{#SCENARIO.ID}]`|-| <p><ul><li><p> JSON Path: `$.error` </p><p></p></li><li><p> Discard unchanged with heartbeat: `3h` </p></li></ul> | |
| 99 | +|{#SCENARIO.NAME}: {#SCENARIO.METRIC}|Get the metric of the scenario if available|Dependent Item|`get.scenarios.metric[{#SCENARIO.ID}]`|-| <p><ul><li><p> JSON Path: `$.kpis[?(@.label=='{#SCENARIO.METRIC}')].value.first()` </p></li></ul> | |
| 100 | + |
| 101 | +**Triggers prototype** |
| 102 | + |
| 103 | +|Name|Description|Expression|Severity| |
| 104 | +|-|-|-|-| |
| 105 | +|{#SCENARIO.NAME}: Failed to get results| - |`length(last(/Ekara Template/get.scenarios.results.check[{#SCENARIO.ID}]))>0`|Warning| |
| 106 | + |
| 107 | +### Set Ekara status items |
| 108 | + |
| 109 | +|Name|Description|Type|Key| |
| 110 | +|-|-|-|-| |
| 111 | +|Set Ekara status items|This will discover the status for each scenarios|Dependent Item|`set.ekara.status.items`| |
| 112 | + |
| 113 | +**LLD Macros** |
| 114 | + |
| 115 | +|Name|JSON Path| |
| 116 | +|-|-| |
| 117 | +|{#SCENARIO.ID}|`$.['scenarioId']`| |
| 118 | +|{#SCENARIO.NAME}|`$.['scenarioName']`| |
| 119 | + |
| 120 | +**Items prototype** |
| 121 | + |
| 122 | +|Name|Description|Type|Key|Update Interval|Preprocessing| |
| 123 | +|-|-|-|-|-|-| |
| 124 | +|{#SCENARIO.NAME}: status|Get the status of the scenario|Dependent Item|`get.scenarios.statuses[{#SCENARIO.ID}]`|-|`$[?(@.scenarioId=='{#SCENARIO.ID}')].currentStatus.first()`| |
| 125 | + |
| 126 | +**Triggers prototype** |
| 127 | + |
| 128 | +|Name|Description|Expression|Severity| |
| 129 | +|-|-|-|-| |
| 130 | +|{#SCENARIO.NAME}: Status is not success|This will be created for each scenarios and trigger a problem if the scenario's status isn't successful|`last(/Ekara Template/get.scenarios.statuses[{#SCENARIO.ID}])<>1`|Average| |
| 131 | + |
| 132 | +## Feedback |
| 133 | + |
| 134 | +Please report any issues with the template at [https://help.ip-label.net/](https://help.ip-label.net/) |
0 commit comments