moved documentation

This commit is contained in:
Sriramajeyam Sugumaran
2023-12-20 07:10:48 +00:00
parent dfe360bf1d
commit 94c5afc5d4
52 changed files with 451 additions and 391 deletions

View File

@@ -661,7 +661,7 @@ option description for more information.
### Changed
- Template query format. New format is `{group}{host}{app}{item}`. It allows to use names with dot. Updated
[templating docs](https://alexanderzobnin.github.io/grafana-zabbix/guides/templating/#query-format),
[templating docs](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/templating#query-format),
[#254](https://github.com/alexanderzobnin/grafana-zabbix/issues/254)
- Update included dashboards. Add templated zabbix datasource and use it for all metrics.
- Improved performance of groupBy() functions (at 6-10x faster than old).

View File

@@ -2,18 +2,18 @@
[![Version](https://badge.fury.io/gh/grafana%2Fgrafana-zabbix.svg)](https://github.com/grafana/grafana-zabbix/releases)
[![Change Log](https://img.shields.io/badge/change-log-blue.svg?style=flat)](https://github.com/grafana/grafana-zabbix/blob/master/CHANGELOG.md)
[![Docs](https://img.shields.io/badge/docs-latest-red.svg?style=flat)](https://grafana.github.io/grafana-zabbix)
[![Docs](https://img.shields.io/badge/docs-latest-red.svg?style=flat)](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/)
![Dashboard](https://user-images.githubusercontent.com/4932851/53799185-e1cdc700-3f4a-11e9-9cb4-8330f501b32e.png)
## Features
- Select multiple metrics [by using Regex](https://grafana.github.io/grafana-zabbix/guides/gettingstarted/#multiple-items-on-one-graph)
- Create interactive and reusable dashboards with [template variables](https://grafana.github.io/grafana-zabbix/guides/templating/)
- Select multiple metrics [by using Regex](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/gettingstarted/#multiple-items-on-one-graph)
- Create interactive and reusable dashboards with [template variables](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/templating/)
- Show events on graphs with [Annotations](http://docs.grafana.org/reference/annotations/)
- Display active problems with Triggers panel
- Transform and shape your data with [metric processing functions](https://grafana.github.io/grafana-zabbix/reference/functions/) (Avg, Median, Min, Max, Multiply, Summarize, Time shift, Alias)
- Find problems faster with [Alerting](https://grafana.github.io/grafana-zabbix/reference/alerting/) feature
- Transform and shape your data with [metric processing functions](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/functions/) (Avg, Median, Min, Max, Multiply, Summarize, Time shift, Alias)
- Find problems faster with [Alerting](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/alerting/) feature
- Mix metrics from multiple data sources in the same dashboard or even graph
- Discover and share [dashboards](https://grafana.com/dashboards) in the official library
@@ -28,20 +28,20 @@ Install by using `grafana-cli`
grafana-cli plugins install alexanderzobnin-zabbix-app
```
Or see more installation options in [docs](https://grafana.github.io/grafana-zabbix/installation/).
Or see more installation options in [docs](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/installation/).
## Getting started
First, [configure](https://grafana.github.io/grafana-zabbix/configuration/) Zabbix data source. Then you can create your first dashboard with step-by-step [Getting started guide](https://grafana.github.io/grafana-zabbix/guides/gettingstarted/).
First, [configure](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/configuration/) Zabbix data source. Then you can create your first dashboard with step-by-step [Getting started guide](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/gettingstarted/).
## Documentation
- [About](https://grafana.github.io/grafana-zabbix)
- [Installation](https://grafana.github.io/grafana-zabbix/installation)
- [Getting Started](https://grafana.github.io/grafana-zabbix/guides/gettingstarted)
- [Templating](https://grafana.github.io/grafana-zabbix/guides/templating)
- [Alerting](https://grafana.github.io/grafana-zabbix/reference/alerting/)
- [Metric processing functions](https://grafana.github.io/grafana-zabbix/reference/functions/)
- [About](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/)
- [Installation](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/installation)
- [Getting Started](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/gettingstarted)
- [Templating](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/templating)
- [Alerting](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/alerting/)
- [Metric processing functions](https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/functions/)
## Community Resources, Feedback, and Support

View File

@@ -63,7 +63,6 @@
"templating",
"singlestat",
"iowait",
"mkdocs",
"submatch",
"Gleb",
"Ivanovsky",

View File

@@ -1,21 +0,0 @@
# Grafana-Zabbix Documentation
## Building docs
To build this docs on your computer you need [git-lfs](https://git-lfs.github.com/) and [mkdocs](http://www.mkdocs.org/) installed.
Clone repo
```
git clone https://github.com/alexanderzobnin/grafana-zabbix
```
Check images in `docs/sources/img/`. If this folder is empty, run
```
git lfs fetch --all
```
Build docs
```
cd docs/
mkdocs build --clean
```
Built docs will be placed in `site/` directory.

View File

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 109 KiB

View File

Before

Width:  |  Height:  |  Size: 596 KiB

After

Width:  |  Height:  |  Size: 596 KiB

View File

Before

Width:  |  Height:  |  Size: 405 KiB

After

Width:  |  Height:  |  Size: 405 KiB

View File

Before

Width:  |  Height:  |  Size: 480 KiB

After

Width:  |  Height:  |  Size: 480 KiB

View File

Before

Width:  |  Height:  |  Size: 535 KiB

After

Width:  |  Height:  |  Size: 535 KiB

View File

Before

Width:  |  Height:  |  Size: 443 KiB

After

Width:  |  Height:  |  Size: 443 KiB

View File

Before

Width:  |  Height:  |  Size: 440 KiB

After

Width:  |  Height:  |  Size: 440 KiB

View File

Before

Width:  |  Height:  |  Size: 705 KiB

After

Width:  |  Height:  |  Size: 705 KiB

View File

Before

Width:  |  Height:  |  Size: 459 KiB

After

Width:  |  Height:  |  Size: 459 KiB

View File

Before

Width:  |  Height:  |  Size: 377 KiB

After

Width:  |  Height:  |  Size: 377 KiB

View File

Before

Width:  |  Height:  |  Size: 530 KiB

After

Width:  |  Height:  |  Size: 530 KiB

View File

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 107 KiB

View File

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 128 KiB

View File

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

View File

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 195 KiB

After

Width:  |  Height:  |  Size: 195 KiB

View File

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 85 KiB

View File

Before

Width:  |  Height:  |  Size: 501 KiB

After

Width:  |  Height:  |  Size: 501 KiB

View File

Before

Width:  |  Height:  |  Size: 626 KiB

After

Width:  |  Height:  |  Size: 626 KiB

View File

@@ -1,42 +0,0 @@
site_name: Grafana-Zabbix Documentation
site_description: Documentation for Grafana-Zabbix, Zabbix monitoring system plugin bundle for Grafana
site_url: https://alexanderzobnin.github.io/grafana-zabbix/
repo_url: https://github.com/alexanderzobnin/grafana-zabbix/
edit_uri: blob/docs/docs/sources/
copyright: Copyright © 2015-2020, Alexander Zobnin
docs_dir: sources
theme:
name: readthedocs
highlightjs: true
hljs_languages:
- yaml
- sql
extra_css:
- css/custom.css
nav:
- Project:
- 'About Grafana-Zabbix': 'index.md'
- 'Feature Highlights': 'features.md'
- Installation:
- 'Installation': 'installation/index.md'
- 'Building from sources': 'installation/run_from_master.md'
- 'Upgrade': 'installation/upgrade.md'
- Configuration:
- 'Configuration': 'configuration/index.md'
- 'Direct DB Connection Configuration': 'configuration/direct_db_datasource.md'
- 'Provisioning': 'configuration/provisioning.md'
- 'Troubleshooting': 'configuration/troubleshooting.md'
- User Guides:
- 'Getting Started': 'guides/gettingstarted.md'
- 'Templating': 'guides/templating.md'
- Reference:
- 'Zabbix Datasource': 'reference/datasource-zabbix.md'
- 'Triggers Panel': 'reference/panel-triggers.md'
- 'Functions': 'reference/functions.md'
- 'Alerting': 'reference/alerting.md'
- 'Direct DB Connection': 'reference/direct-db-connection.md'
# - Tutorials:
# - 'Building Host Dashboard': 'tutorials/host_dashboard.md'

View File

@@ -1,7 +1,17 @@
page_title: About Grafana-Zabbix
page_description: Introduction to Grafana-Zabbix plugin.
# About Grafana-Zabbix plugin
---
title: Grafana Zabbix
menuTitle: About Grafana-Zabbix
description: Introduction to Grafana-Zabbix plugin.
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 100
---
Grafana-Zabbix is a plugin for Grafana allowing to visualize monitoring data from Zabbix
and create dashboards for analyzing metrics and realtime monitoring. Main goals of this project
@@ -25,6 +35,7 @@ a number of ways to get help:
Or you can send me [email](mailto:alexanderzobnin@gmail.com).
## Support Project
I develop this project in my free time, but if you really find it helpful and promising, you can
support me. There are some ways to do this. You can [donate](https://www.paypal.me/alexanderzobnin)
any reasonable amount, or you can request a feature development, interesting for you (for example,
@@ -34,5 +45,5 @@ Triggers panel was sponsored by [Core IT Project](http://coreit.fr/)).
By utilizing this software, you agree to the terms of the included license. Grafana-Zabbix plugin is
licensed under the Apache 2.0 agreement. See
[LICENSE](https://github.com/alexanderzobnin/grafana-zabbix/blob/master/LICENSE) for the full
[LICENSE](https://github.com/alexanderzobnin/grafana-zabbix/blob/min/LICENSE) for the full
license terms.

View File

@@ -1,4 +1,17 @@
# Alerting
---
title: Alerting
menuTitle: Alerting
description: Alerting
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 520
---
## Alerting overview

View File

@@ -1,14 +1,24 @@
page_title: Grafana-Zabbix Configuration
page_description: Plugin configuration instructions for Grafana-Zabbix.
# Configuration
---
title: Configuration
menuTitle: Configuration
description: Plugin configuration instructions for Grafana-Zabbix.
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 300
---
## Enable plugin
Go to the plugins in Grafana side panel, select _Apps_ tab, then select _Zabbix_, open _Config_
tab and enable plugin.
![Enable Zabbix App](../img/installation-enable_app.png)
![Enable Zabbix App](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/installation-enable_app.png)
## Configure Zabbix data source
@@ -16,7 +26,7 @@ After enabling plugin you can add Zabbix data source.
To add new Zabbix data source open _Data Sources_ in side panel, click _Add data source_ and select _Zabbix_ from dropdown list.
![Configure Zabbix data source](../img/installation-datasource_config.png)
![Configure Zabbix data source](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/installation-datasource_config.png)
### HTTP settings
@@ -29,22 +39,22 @@ To add new Zabbix data source open _Data Sources_ in side panel, click _Add data
### Zabbix API details
- **Username** and **Password**: setup login for access to Zabbix API. Also check user's permissions
in Zabbix if you cannot get any groups and hosts in Grafana.
in Zabbix if you cannot get any groups and hosts in Grafana.
- **Trends**: enable if you use Zabbix 3.x or newer. This option is
strictly recommended for displaying long time periods (more than few days, depending of your item's
updating interval in Zabbix), because few days of item history contains tons of points. Using trends
will increase Grafana performance.
strictly recommended for displaying long time periods (more than few days, depending of your item's
updating interval in Zabbix), because few days of item history contains tons of points. Using trends
will increase Grafana performance.
- **After**: time after which trends will be used.
Best practice is to set this value to your history storage period (7d, 30d, etc). Default is **7d** (7 days).
You can set the time in Grafana format. Valid time specifiers are:
Best practice is to set this value to your history storage period (7d, 30d, etc). Default is **7d** (7 days).
You can set the time in Grafana format. Valid time specifiers are:
- **h** - hours
- **d** - days
- **M** - months
- **Range**: Time range width after which trends will be used instead of history.
It's better to set this value in range of 4 to 7 days to prevent loading large amount of history data.
Default is 4 days.
It's better to set this value in range of 4 to 7 days to prevent loading large amount of history data.
Default is 4 days.
- **Cache TTL**: plugin caches some api requests for increasing performance. Set this
value to desired cache lifetime (this option affect data like items list).
value to desired cache lifetime (this option affect data like items list).
- **Timeout**: Zabbix connection timeout in seconds. Default is 30.
### Direct DB Connection
@@ -75,7 +85,7 @@ Then click _Add_ - data source will be added and you can check connection using
You can import dashboard examples from _Dashboards_ tab in the data source config.
![Import dashboards](../img/installation-plugin-dashboards.png)
![Import dashboards](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/installation-plugin-dashboards.png)
## Note about Browser Cache

View File

@@ -1,4 +1,17 @@
# Direct DB Connection
---
title: Direct DB Connection
menuTitle: Direct DB Connection
description: Direct DB Connection
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 530
---
Since version 4.3 Grafana can use MySQL as a native data source. The idea of Direct DB Connection is that Grafana-Zabbix plugin can use this data source for querying data directly from a Zabbix database.
@@ -18,13 +31,14 @@ This chart illustrates how the plugin uses both Zabbix API and the MySQL data so
of data from Zabbix. MySQL data source is used only for pulling history and trend data instead of `history.get`
and `trend.get` API calls.
[![Direct DB Connection](../img/reference-direct-db-connection.svg)](../img/reference-direct-db-connection.svg)
[![Direct DB Connection](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/reference-direct-db-connection.svg)](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/reference-direct-db-connection.svg)
## Query structure
Below is an example query for getting history in the Grafana-Zabbix Plugin:
**MySQL**:
```sql
SELECT itemid AS metric, clock AS time_sec, {aggFunc}(value) as value
FROM {historyTable}
@@ -35,6 +49,7 @@ ORDER BY time_sec ASC
```
**PostgreSQL**:
```sql
SELECT to_char(itemid, 'FM99999999999999999999') AS metric,
clock / {intervalSec} * {intervalSec} AS time,
@@ -53,6 +68,7 @@ When getting trends, the plugin additionally queries a particular value column (
depends on `consolidateBy` function value:
**MySQL**:
```sql
SELECT itemid AS metric, clock AS time_sec, {aggFunc}({valueColumn}) as value
FROM {trendsTable}
@@ -63,6 +79,7 @@ ORDER BY time_sec ASC
```
**PostgreSQL**:
```sql
SELECT to_char(itemid, 'FM99999999999999999999') AS metric,
clock / {intervalSec} * {intervalSec} AS time,
@@ -79,9 +96,11 @@ ORDER BY time ASC
As you can see, the Grafana-Zabbix plugin uses aggregation by a given time interval. This interval is provided by Grafana and depends on the panel width in pixels. Thus, Grafana displays the data in the proper resolution.
## InfluxDB
Zabbix supports loadable modules which makes possible to write history data into an external database. There's a [module](https://github.com/i-ky/effluence) for InfluxDB written by [Gleb Ivanovsky](https://github.com/i-ky) which can export history into InfluxDB in real-time.
#### InfluxDB retention policy
### InfluxDB retention policy
In order to keep database size under control, you should use InfluxDB retention policy mechanism. It's possible to create retention policy for long-term data and write aggregated data in the same manner as Zabbix does (trends). Then this retention policy can be used in plugin for getting data after a certain period ([Retention Policy](../../configuration/#direct-db-connection) option in data source config). Read more about how to configure retention policy for using with plugin in effluence module [docs](https://github.com/i-ky/effluence#database-sizing).
#### InfluxDB Query

View File

@@ -1,4 +1,17 @@
# Direct DB Data Source Configuration
---
title: Direct DB Data Source Configuration
menuTitle: Direct DB Data Source Configuration
description: Direct DB Data Source Configuration
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 310
---
## Security notes
@@ -13,7 +26,7 @@ GRANT SELECT ON zabbix.* TO 'grafana'@'grafana-host' identified by 'password';
In order to use _Direct DB Connection_ feature you should configure SQL data source first.
![Configure MySQL data source](../img/installation-mysql_ds_config.png)
![Configure MySQL data source](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/installation-mysql_ds_config.png)
Select _MySQL_ data source type and provide your database host address and port (3306 is default for MySQL). Fill
database name (usually, `zabbix`) and specify credentials.
@@ -23,11 +36,11 @@ database name (usually, `zabbix`) and specify credentials.
Select _PostgreSQL_ data source type and provide your database host address and port (5432 is default). Fill
database name (usually, `zabbix`) and specify credentials.
![Configure PostgreSQL data source](../img/installation-postgres_ds_config.png)
![Configure PostgreSQL data source](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/installation-postgres_ds_config.png)
## InfluxDB
Select _InfluxDB_ data source type and provide your InfluxDB instance host address and port (8086 is default). Fill
database name you configured in the [effluence](https://github.com/i-ky/effluence) module config (usually, `zabbix`) and specify credentials.
![Configure InfluxDB data source](../img/configuration-influxdb_ds_config.png)
![Configure InfluxDB data source](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/configuration-influxdb_ds_config.png)

View File

@@ -1,7 +1,17 @@
page_title: Feature Highlights
page_description: Grafana-Zabbix Feature Highlights.
# Feature Highlights
---
title: Feature Highlights
menuTitle: Feature Highlights
description: Grafana-Zabbix Feature Highlights.
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 110
---
Grafana in couple with Grafana-Zabbix plugin allows to create great dashboards. There is some
features:

View File

@@ -1,5 +1,17 @@
Functions reference
===================
---
title: Functions reference
menuTitle: Functions reference
description: Functions reference
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 510
---
## Functions Variables
@@ -11,7 +23,8 @@ There are some built-in template variables available for using in functions:
- `$__range_series` - invoke function over all series values
Examples:
```
```sh
groupBy($__range, avg)
percentile($__range_series, 95) - 95th percentile over all values
```
@@ -20,70 +33,85 @@ percentile($__range_series, 95) - 95th percentile over all values
## Transform
### _groupBy_
```
```sh
groupBy(interval, function)
```
Takes each timeseries and consolidate its points fallen in the given _interval_ into one point using _function_, which can be one of: _avg_, _min_, _max_, _median_.
Examples:
```
```sh
groupBy(10m, avg)
groupBy(1h, median)
```
---
### _scale_
```
```sh
scale(factor)
```
Takes timeseries and multiplies each point by the given _factor_.
Examples:
```
```sh
scale(100)
scale(0.01)
```
---
### _delta_
```
```sh
delta()
```
Converts absolute values to delta. This function just calculate difference between values. For the per-second
calculation use `rate()`.
---
### _rate_
```
```sh
rate()
```
Calculates the per-second rate of increase of the time series. Resistant to counter reset. Suitable for converting of
growing counters into the per-second rate.
---
### _movingAverage_
```
```sh
movingAverage(windowSize)
```
Graphs the moving average of a metric over a fixed number of past points, specified by `windowSize` param.
Examples:
```
```sh
movingAverage(60)
calculates moving average over 60 points (if metric has 1 second resolution it matches 1 minute window)
```
---
### _exponentialMovingAverage_
```
```sh
exponentialMovingAverage(windowSize)
```
Takes a series of values and a window size and produces an exponential moving average utilizing the following formula:
`ema(current) = constant * (Current Value) + (1 - constant) * ema(previous)`
@@ -99,50 +127,63 @@ hack: assume, previous N points have the same average values as first N (windowS
in mind and don't rely on first N points interval.
Examples:
```
```sh
movingAverage(60)
calculates moving average over 60 points (if metric has 1 second resolution it matches 1 minute window)
```
---
### _percentile_
```
```sh
percentile(interval, N)
```
Takes a series of values and a window size and consolidate all its points fallen in the given _interval_ into one point by Nth percentile.
Examples:
```
```sh
percentile(1h, 99)
percentile($__range_series, 95) - 95th percentile over all series values
```
---
### _removeAboveValue_
```
```sh
removeAboveValue(N)
```
Replaces series values with `null` if value > N
Examples:
```
```sh
removeAboveValue(1)
```
---
### _removeBelowValue_
```
```sh
removeBelowValue(N)
```
Replaces series values with `null` if value < N
---
### _transformNull_
```
```sh
transformNull(N)
```
Replaces `null` values with N
---
@@ -150,21 +191,25 @@ Replaces `null` values with N
## Aggregate
### _aggregateBy_
```
```sh
aggregateBy(interval, function)
```
Takes all timeseries and consolidate all its points fallen in the given _interval_ into one point using _function_, which can be one of: _avg_, _min_, _max_, _median_.
Examples:
```
```sh
aggregateBy(10m, avg)
aggregateBy(1h, median)
```
---
### _sumSeries_
```
```sh
sumSeries()
```
@@ -173,13 +218,16 @@ This will add metrics together and return the sum at each datapoint. This method
---
### _percentileAgg_
```
```sh
percentileAgg(interval, N)
```
Takes all timeseries and consolidate all its points fallen in the given _interval_ into one point by Nth percentile.
Examples:
```
```sh
percentileAgg(1h, 99)
percentileAgg($__range_series, 95) - 95th percentile over all values
```
@@ -187,25 +235,31 @@ percentileAgg($__range_series, 95) - 95th percentile over all values
---
### _average_
```
```sh
average(interval)
```
**Deprecated**, use `aggregateBy(interval, avg)` instead.
---
### _min_
```
```sh
min(interval)
```
**Deprecated**, use `aggregateBy(interval, min)` instead.
---
### _max_
```
```sh
max(interval)
```
**Deprecated**, use `aggregateBy(interval, max)` instead.
---
@@ -214,37 +268,42 @@ max(interval)
### _top_
```
```sh
top(N, value)
```
Returns top N series, sorted by _value_, which can be one of: _avg_, _min_, _max_, _median_.
Examples:
```
```sh
top(10, avg)
top(5, max)
```
---
### _bottom_
```
```sh
bottom(N, value)
```
Returns bottom N series, sorted by _value_, which can be one of: _avg_, _min_, _max_, _median_.
Examples:
```
```sh
bottom(5, avg)
```
---
## Trends
### _trendValue_
```
```sh
trendValue(valueType)
```
@@ -255,16 +314,20 @@ Specifying type of trend value returned by Zabbix when trends are used (avg, min
## Time
### _timeShift_
```
```sh
timeShift(interval)
```
Draws the selected metrics shifted in time. If no sign is given, a minus sign ( - ) is implied which will shift the metric back in time. If a plus sign ( + ) is given, the metric will be shifted forward in time.
Examples:
```
```sh
timeShift(24h) - shift metric back in 24h hours
timeShift(-24h) - the same result as for timeShift(24h)
timeShift(+1d) - shift metric forward in 1 day
```
---
## Alias
@@ -277,57 +340,66 @@ Following template variables available for using in `setAlias()` and `replaceAli
- `$__zbx_host` - technical name of the host
Examples:
```
```sh
setAlias($__zbx_host_name: $__zbx_item) -> backend01: CPU user time
setAlias(Item key: $__zbx_item_key) -> Item key: system.cpu.load[percpu,avg1]
setAlias($__zbx_host_name) -> backend01
```
### _setAlias_
```
```sh
setAlias(alias)
```
Returns given alias instead of the metric name.
Examples:
```
```sh
setAlias(load)
```
---
### _setAliasByRegex_
```
```sh
setAliasByRegex(regex)
```
Returns part of the metric name matched by regex.
Examples:
```
```sh
setAlias(Zabbix busy [a-zA-Z]+)
```
---
### _replaceAlias_
```
```sh
replaceAlias(pattern, newAlias)
```
Replace metric name using pattern. Pattern is regex or regular string. If regex is used, following special replacement patterns are supported:
|Pattern | Inserts|
----------|---------
|$$ | Inserts a "$". |
|$& | Inserts the matched substring. |
|$` | Inserts the portion of the string that precedes the matched substring. |
|$' | Inserts the portion of the string that follows the matched substring. |
|$n | Where n is a non-negative integer less than 100, inserts the nth parenthesized submatch string, provided the first argument was a RegExp object. |
| Pattern | Inserts |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| $$ | Inserts a "$". |
| $& | Inserts the matched substring. |
| $` | Inserts the portion of the string that precedes the matched substring. |
| $' | Inserts the portion of the string that follows the matched substring. |
| $n | Where n is a non-negative integer less than 100, inserts the nth parenthesized submatch string, provided the first argument was a RegExp object. |
For more details see [String.prototype.replace()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) function.
Examples:
```
```sh
CPU system time
replaceAlias(/CPU (.*) time/, $1) -> system
@@ -340,12 +412,14 @@ replaceAlias(/.*CPU (.*) time/, $1) -> system
backend01: CPU system time
replaceAlias(/(.*): CPU (.*) time/, $1 - $2) -> backend01 - system
```
---
## Special
### _consolidateBy_
```
```sh
consolidateBy(consolidationFunc)
```

View File

@@ -1,55 +1,74 @@
# Getting Started with Grafana-Zabbix
---
title: Getting Started with Grafana-Zabbix
menuTitle: Getting Started with Grafana-Zabbix
description: Getting Started with Grafana-Zabbix
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 400
---
After you [installed and configured](../installation/index.md) Grafana-Zabbix data source let's
create a simple dashboard.
## Simple Graph
Add new Graph panel to dashboard.
Select metrics from dropdown or start to type to filter results
![Metrics filtering](../img/getstarting-metrics_filtering.png)
![Metrics filtering](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/getstarting-metrics_filtering.png)
Let's create _15 min avg processor load_ graph. Select Host Group, Host, Application (optional - you can leave it blank) and Item.
![Processor load](../img/getstarting-processor_load.png)
![Processor load](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/getstarting-processor_load.png)
## Multiple Items On One Graph
You can build graphs with lots of items using Regular Expressions inside metric field. Grafana uses JavaScript regex implementation. For example, if you need to show CPU time (user, system, iowait, etc) you may create graph using this regex in Item field:
You can build graphs with lots of items using Regular Expressions inside metric field. Grafana uses JavaScript regex implementation. For example, if you need to show CPU time (user, system, iowait, etc) you may create graph using this regex in Item field:
```js
/CPU (?!idle).* time/
/CPU (?!idle).* time/;
```
![CPU time](../img/getstarting-regex_cpu_time.png)
![CPU time](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/getstarting-regex_cpu_time.png)
Another case to use regex is comparing the same metrics for different hosts. Use `/.*/` regex for showing all metrics or write your own filter. For example, I want to show _CPU system time_ for all hosts which name started with _backend_ from all host groups. I use `/.*/` for Group, `/^backend/` for Host and `CPU system time` for Item.
![Backend system time](../img/getstarting-regex_backend_system_time.png)
![Backend system time](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/getstarting-regex_backend_system_time.png)
## Bar Chart
Let's create a graph which show queries stats for MySQL database. Select Group, Host, Application (_MySQL_ in my case) and Items. I use `/MySQL .* operations/` regex for filtering different types of operations.
![MySQL operations 1](../img/getstarting-mysql_operations_1.png)
![MySQL operations 1](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/getstarting-mysql_operations_1.png)
To show graph as Bar Chart, go to the **Display** tab, uncheck **Lines** and set **Bars**. Also, enable **Stack** checkbox for showing stacked bars.
![MySQL operations 2](../img/getstarting-mysql_operations_2.png)
![MySQL operations 2](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/getstarting-mysql_operations_2.png)
But this graph doesn't look good because it contains too many bars. We can fix it by using **Max data points** parameter. Go to the **Metrics** tab and set **Max data points** to 50 for example.
![MySQL operations 3](../img/getstarting-mysql_operations_3.png)
![MySQL operations 3](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/getstarting-mysql_operations_3.png)
Ok, looks pretty!
## Singlestat and Gauges
Sometimes you may need to show just a big single value for particular metric. Use Grafana's **Singlestat** panel in this case. Let's create panel which shows _CPU user time_ metric.
![Singlestat 1](../img/getstarting-singlestat_1.png)
![Singlestat 1](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/getstarting-singlestat_1.png)
Suppose that you want to set units as percents and show **Gauge** for this value. Go to the **Options** tab and set units to _percent (0-100)_. Then enable _Show_ option for _Gauge_ and set Min and Max values for your metric (0-100 in our case). Set thresholds if you want to see it on Gauge (`50,80` for example).
![Singlestat 2](../img/getstarting-singlestat_2.png)
![Singlestat 2](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/getstarting-singlestat_2.png)
Great, looks cool. Read more about Singlestat panel in [Grafana docs](http://docs.grafana.org/reference/singlestat/).
And all together:
![Dashboard](../img/getstarting-dashboard_1.png)
![Dashboard](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/getstarting-dashboard_1.png)

View File

@@ -1,7 +1,17 @@
page_title: Grafana-Zabbix Installation
page_description: Installation instructions for Grafana-Zabbix.
# Installation
---
title: Installation
menuTitle: Installation
description: Installation instructions for Grafana-Zabbix.
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 200
---
## Choosing plugin version
@@ -22,6 +32,7 @@ grafana-cli plugins install alexanderzobnin-zabbix-app
```
Restart grafana after installing plugins
```sh
systemctl restart grafana-server
```

View File

@@ -0,0 +1,64 @@
---
title: Provisioning Grafana-Zabbix plugin
menuTitle: Provisioning Grafana-Zabbix plugin
description: Grafana-Zabbix plugin provisioning instructions.
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 320
---
Its now possible to configure datasources using config files with Grafanas provisioning system. You can read more about how it works and all the settings you can set for datasources on the [provisioning docs page](http://docs.grafana.org/administration/provisioning/#datasources)
### Example Datasource Config File
```yaml
apiVersion: 1
datasources:
- name: Zabbix
type: alexanderzobnin-zabbix-datasource
access: proxy
url: http://localhost/zabbix/api_jsonrpc.php
isDefault: true
jsonData:
# Zabbix API credentials
username: zabbix
password: zabbix
# Trends options
trends: true
trendsFrom: '7d'
trendsRange: '4d'
# Cache update interval
cacheTTL: '1h'
# Alerting options
alerting: true
addThresholds: false
alertingMinSeverity: 3
# Direct DB Connection options
dbConnectionEnable: true
# Name of existing datasource for Direct DB Connection
dbConnectionDatasourceName: MySQL Zabbix
# Retention policy name (InfluxDB only) for fetching long-term stored data.
# Leave it blank if only default retention policy used.
dbConnectionRetentionPolicy: one_year
# Disable acknowledges for read-only users
disableReadOnlyUsersAck: true
# Disable time series data alignment
disableDataAlignment: false
# Use value mapping from Zabbix
useZabbixValueMapping: true
version: 1
editable: false
- name: MySQL Zabbix
type: mysql
url: localhost:3306
database: zabbix
user: grafana
password: password
```

View File

@@ -1,7 +1,17 @@
page_title: Run Grafana-Zabbix from master
page_description: Building instructions for Grafana-Zabbix.
# Run from master
---
title: Run Grafana-Zabbix from main branch
menuTitle: Run Grafana-Zabbix from main branch
description: Building instructions for Grafana-Zabbix.
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 210
---
If you want to build a package yourself, or contribute - here is a guide for how to do that.

View File

@@ -1,14 +1,29 @@
# Templating Guide
---
title: Templating Guide
menuTitle: Templating Guide
description: Templating Guide
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 410
---
You can use template variables for creating highly reusable and interactive dashboards. General idea of templating is allow Grafana to get different metrics from data source and provide a way to change it on the fly without modifying dashboard. In case of Zabbix it means that you can get list of Host Groups, Hosts, Applications or Items and add it as a variables.
## Creating Variable
To create template variable click the cog icon on the top navigation bar and choose _Templating_.
![Templating menu](../img/templating-menu.png)
![Templating menu](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/templating-menu.png)
When you click _New_ button, you'll see template variable editor. It contains these sections:
![Variable editor](../img/templating-variable_editor.png)
![Variable editor](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/templating-variable_editor.png)
### Variable
@@ -16,7 +31,7 @@ When you click _New_ button, you'll see template variable editor. It contains th
Name of the variable. You should use this name in queries.
**Label**
Visible label for variable. Use when you want to display different name on dashboard. For instance, _Host Group_ instead *host_group*.
Visible label for variable. Use when you want to display different name on dashboard. For instance, _Host Group_ instead _host_group_.
**Type**
By default _Query_ type is selected. It means that Grafana asks data source for values of variable. But there are some other types: _Interval_ (just a time interval), _Data source_ (You can switch data source, for example, if you have more than one Zabbix instance and each added into Grafana as data source), _Custom_ (you can set any predefined values for variable) and _Constant_.
@@ -43,15 +58,17 @@ Enable, if you want to select multiple values at the same time.
### Value groups/tags (Experimental feature)
## Query Format
Template variable query in Zabbix data source is a string which contains 4 parts wrapped in braces (`{}`). You still can
use a period (`.`), but it's deprecated and will be removed in future.
```
```sh
{host group}{host}{application}{item name}
```
For example,
```
```sh
{Zabbix servers}{Zabbix server}{CPU}{*}
{Frontend}{web01.mydomain.com}{*}{*}
```
@@ -60,15 +77,16 @@ Each part can be a name of corresponding metric or `*`, which means _all metrics
Examples:
- `{*}` returns list of all available Host Groups
- `{*}{*}` all hosts in Zabbix
- `{Network}{*}` returns all hosts in group Network
- `{Linux servers}{*}{*}` returns all applications from hosts in Linux servers group
- `{Linux servers}{backend01}{CPU}{*}` returns all items from backend01 belonging to CPU application.
- `{*}` returns list of all available Host Groups
- `{*}{*}` all hosts in Zabbix
- `{Network}{*}` returns all hosts in group Network
- `{Linux servers}{*}{*}` returns all applications from hosts in Linux servers group
- `{Linux servers}{backend01}{CPU}{*}` returns all items from backend01 belonging to CPU application.
You can use another variable as a part of query. For instance, you have variable _group_, which returns list of
host groups and want to use it for querying hosts in selected group only. Here's a query for this case:
```
```sh
{$group}{*}
```
@@ -76,7 +94,7 @@ host groups and want to use it for querying hosts in selected group only. Here's
When you create a variable, you can use it as a part of data source query. Grafana also supports variables in different places like panel's and row's titles, Text panel's content, etc.
![Query with variables](../img/templating-query_with_variables.png)
![Query with variables](https://raw.githubusercontent.com/grafana/alexanderzobnin-zabbix-app/main/docs/images/templating-query_with_variables.png)
> Note, that you should add `$` sign before variable's name (**$host** for _host_ variable).

View File

@@ -1,4 +1,18 @@
# Troubleshooting
---
title: Troubleshooting
menuTitle: Troubleshooting
description: Troubleshooting guide for Grafana-Zabbix plugin.
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 330
---
See [Grafana troubleshooting](http://docs.grafana.org/installation/troubleshooting/) for general
connection issues. If you have a problem with Zabbix datasource, you should open
a [support issue](https://github.com/alexanderzobnin/grafana-zabbix/issues). Before you do that

20
docs/sources/upgrade.md Normal file
View File

@@ -0,0 +1,20 @@
---
title: Upgrade
menuTitle: Upgrade
description: Upgrade instructions for Grafana-Zabbix.
aliases:
keywords:
- data source
- zabbix
labels:
products:
- oss
- grafana cloud
weight: 220
---
## Upgrade from 2.x
After [enabling](../../configuration/#enable-plugin) Zabbix App go to _Data Sources_, open your configured Zabbix
data source end select _Zabbix_ from _Type_ list again. This is needed because plugin id was changed
in Grafana 3.0.

View File

@@ -1,55 +0,0 @@
page_title: Provisioning Grafana-Zabbix plugin
page_description: Grafana-Zabbix plugin provisioning instructions.
# Provisioning Grafana-Zabbix plugin
Its now possible to configure datasources using config files with Grafanas provisioning system. You can read more about how it works and all the settings you can set for datasources on the [provisioning docs page](http://docs.grafana.org/administration/provisioning/#datasources)
### Example Datasource Config File
```yaml
apiVersion: 1
datasources:
- name: Zabbix
type: alexanderzobnin-zabbix-datasource
access: proxy
url: http://localhost/zabbix/api_jsonrpc.php
isDefault: true
jsonData:
# Zabbix API credentials
username: zabbix
password: zabbix
# Trends options
trends: true
trendsFrom: "7d"
trendsRange: "4d"
# Cache update interval
cacheTTL: "1h"
# Alerting options
alerting: true
addThresholds: false
alertingMinSeverity: 3
# Direct DB Connection options
dbConnectionEnable: true
# Name of existing datasource for Direct DB Connection
dbConnectionDatasourceName: MySQL Zabbix
# Retention policy name (InfluxDB only) for fetching long-term stored data.
# Leave it blank if only default retention policy used.
dbConnectionRetentionPolicy: one_year
# Disable acknowledges for read-only users
disableReadOnlyUsersAck: true
# Disable time series data alignment
disableDataAlignment: false
# Use value mapping from Zabbix
useZabbixValueMapping: true
version: 1
editable: false
- name: MySQL Zabbix
type: mysql
url: localhost:3306
database: zabbix
user: grafana
password: password
```

View File

@@ -1,115 +0,0 @@
@import url('https://fonts.googleapis.com/css?family=Roboto|Source+Code+Pro');
.wy-side-nav-search, .wy-nav-top {
background-color: #8e3030;
}
.wy-side-nav-search input[type=text] {
border-radius: 2px;
width: 100%;
border-color: #e3e3e3;
}
/* Content container */
.wy-nav-content {
max-width: 1200px;
}
.rst-content .section {
color: #404040;
font-family: 'Roboto', 'Lato', 'proxima-nova', 'Helvetica Neue', Arial, sans-serif;
}
.rst-content p {
margin-bottom: 16px;
line-height: 24px;
}
.rst-content li {
margin-top: 6px;
margin-bottom: 6px;
line-height: 24px;
}
.rst-content img {
max-width: 80%;
max-height: 800px;
}
.rst-content blockquote {
max-width: 80%;
margin-left: 0em;
padding: 0 1em;
color: #757575;
border-left: 6px solid #e0e0e0;
}
/* Source code highlighting */
code, .rst-content tt {
font-family: 'Source Code Pro', monospace;
font-size: 90%;
color: #404040;
background-color: #f4f4f4;
padding: 1px 5px;
border-radius: 2px;
border-width: 0;
}
.hljs {
max-width: 100%;
/* Colors are from solarized scheme. */
background-color: #fdf6e3;
color: #657b83;
border-width: 0 0 0 4px;
border-color: #eee8d5;
border-left-color: #268bd2;
font-size: 90%;
line-height: 1.5;
padding: 0.5em 1em;
}
.hljs-keyword {
color: #dc322f;
}
.hljs-built_in {
color: #268bd2;
}
.hljs-string {
color: #859900;
}
.hljs-variable {
color: #6c71c4;
}
.btn-neutral:hover {
background-color: #8e3030 !important;
color: #f4f4f4 !important;
box-shadow:
0px 1px 2px -1px rgba(255,255,255,0.5) inset,
0px -2px 0px 0px rgba(0, 0, 0, 0.2) inset;
}
/* Functions list tweaks */
h3 em {
font-family: 'Source Code Pro', monospace;
line-height: 2;
padding-top: 20px;
font-style: normal;
padding-bottom: 2px;
border-bottom: 2px;
border-bottom-style: solid;
border-bottom-color: #2aa198;
color: #01579b;
}
hr {
margin: 24px 0 48px 0;
}

View File

View File

@@ -1,10 +0,0 @@
page_title: Grafana-Zabbix Upgrade
page_description: Upgrade instructions for Grafana-Zabbix.
# Upgrade
## Upgrade from 2.x
After [enabling](../../configuration/#enable-plugin) Zabbix App go to _Data Sources_, open your configured Zabbix
data source end select _Zabbix_ from _Type_ list again. This is needed because plugin id was changed
in Grafana 3.0.

View File

@@ -2,7 +2,7 @@ import React from 'react';
import { Icon } from '@grafana/ui';
import { MetricFunc } from '../../types';
const DOCS_FUNC_REF_URL = 'https://grafana.github.io/grafana-zabbix/reference/functions/';
const DOCS_FUNC_REF_URL = 'https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/functions/';
export interface FunctionEditorControlsProps {
onMoveLeft: (func: MetricFunc) => void;

View File

@@ -8,9 +8,7 @@
"name": "Grafana Labs",
"url": "https://grafana.com"
},
"keywords": [
"zabbix"
],
"keywords": ["zabbix"],
"logos": {
"small": "img/icn-zabbix-app.svg",
"large": "img/icn-zabbix-app.svg"
@@ -22,11 +20,11 @@
},
{
"name": "Docs",
"url": "https://grafana.github.io/grafana-zabbix"
"url": "https://grafana.com/docs/plugins/alexanderzobnin-zabbix-app/latest/"
},
{
"name": "License",
"url": "https://github.com/grafana/grafana-zabbix/blob/master/LICENSE"
"url": "https://github.com/grafana/grafana-zabbix/blob/main/LICENSE"
}
],
"screenshots": [