-
Add in Grafana a MySQL datasource:
Type: MySQL
Host: icinga:3306
Database: icinga
User: grafanaReader
Password: password
CREATE USER ‘grafanaReader’ IDENTIFIED BY ‘password’;
GRANT SELECT ON icinga.icinga_objects TO ‘grafanaReader’;
GRANT SELECT ON icinga.icinga_hosts TO ‘grafanaReader’;
GRANT EXECUTE ON FUNCTION icinga.icinga_sla_state_availability TO ‘grafanaReader’;
- Create a new dashboard (example: SLA) with 3 variables with mysql as datasource:
$host : SELECT alias FROM icinga_host
$service: SELECT name2 FROM icinga_objects WHERE name1=‘$host’ and is_active=1;
$objectid: SELECT object_id FROM icinga_objects WHERE name1=“$host” AND name2=“$service”;
- Add a Single Stats panel with this query:
SELECT icinga_sla_state_availability( $objectid, 0, DATE_FORMAT($__timeFrom(), ‘%Y-%m-%d’),DATE_FORMAT($__timeTo()
, ‘%Y-%m-%d’), 4747) * 100 AS state_ok FROM icinga_objects WHERE name1=“$host” AND name2=“$service”
- Customize