Установка InfluxDB для Icinga2

Установка InfluxDB для Icinga2

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Настройка InfluxDB для хранения PerfData сервисов Icinga2 и настройка модуля для отображения графиков из Grafana.

Установка Grafana

Установим актуальную версию Grafana с официального сайта:

1
yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.4.3-1.x86_64.rpm

Либо используя репозиторий /etc/yum.repos.d/grafana.repo:

1
2
3
4
5
6
7
8
9
[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

И ставим пакет:

1
yum install grafana

Добавляем сервис в автозагрузку:

1
systemctl enable grafana-server.service

Запускаем сервис:

1
systemctl start grafana-server

После установки Grafana будет доступна по адресу: http://IP_ADDRESS:3000

Логин/пароль по умолчанию admin/admin.

Установка InfluxDB

Добавим репозиторий /etc/yum.repos.d/influxdb.repo:

1
2
3
4
5
6
[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/centos/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key

Установим пакет influxdb:

1
yum install influxdb

Создаем базу для хранения полученной метрики:

1
2
3
4
5
6
Connected to http://localhost:8086 version 1.3.6
InfluxDB shell version: 1.3.6
> create database icinga2;
> create user icinga2 with password 'secretpassword';
> grant all on icinga2 to icinga2;
> exit

Настройка Icinga2

Включаем InfluxdbWriter модуль:

1
icinga2 feature enable influxdb

Вносим изменения в файл /etc/icinga2/features-enabled/influxdb.conf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
* The InfluxdbWriter type writes check result metrics and
* performance data to an InfluxDB HTTP API
*/

library "perfdata"

object InfluxdbWriter "influxdb" {
host = "127.0.0.1"
port = 8086
database = "icinga2"
username = "icinga2"
password = "secretpassword"
host_template = {
measurement = "$host.check_command$"
tags = {
hostname = "$host.name$"
}
}
service_template = {
measurement = "$service.check_command$"
tags = {
hostname = "$host.name$"
service = "$service.name$"
}
}

enable_send_thresholds = true
enable_send_metadata = true


}

Установливаем модуль для отображения графиков в IcingaWeb2

1
2
cd /usr/share/icingaweb2/modules
git clone https://github.com/Mikesch-mp/icingaweb2-module-grafana.git grafana

И включим модуль:

1
icingacli module enable grafana

Импортируем Dashboard в Grafana, для этого из архива модуля подгружаем файл base-metrics.json и icinga2-default.json

После этого в IcingaWeb2 сможем наблюдать графики для сервисов.