Was ist Meerkat? Wie kann man Meerkat installieren, und konfigurieren?
Meerkat ist ein Dienstprogramm, geschrieben in go und javascript, und nicht nur zum Erstellen und Teilen von Dashboards für Icinga 2 geeignet, sondern auch leicht zu installieren und bedienen. Meerkat hat ein Web-Interface, in dem man Dashboards mit beliebigem Hintergrund und Elemente festlegt und aktualisiert, wobei das Meerkat-Backend Abfragen an die Icinga-2-Api zur Darstellung des Status schickt. Hier werden wir Meerkat installieren und konfigurieren und zudem auch Dashboards – als Beispiel für die verschiedenen Visualisierungen und darstellbaren Objekte – bauen.
- Hier wird Meerkat mittels Docker als Container installiert, wofür die Installation von docker und docker-compose erforderlich ist.
- Es gibt auch die Möglichkeit, Meerkat ohne Docker zu installieren.
- Meerkat wird auf Centos7 mit aktiviertem SELinux installiert, weshalb die SELinux-Berechtigungen für Schreiben und Lesen bei den Container–Volumes zu beachten sind.
Installation
Wir laden zuerst die Meerkat-Repository runter und passen die Konfiguration-Datei docker-compose.yml an, wobei hier nur die Mount-Option Z
gesetzt wird, damit das SELInux-Label für private Volumes gesetzt werden und die Volumes lesbar und beschreibbar eingehängt werden können.
Zunächst wird der Meerkat-Zugriff auf das Icinga-2-System konfiguriert – wie vorhin erwähnt, erfolgt dieser über API-Anfragen. Dafür legen wir eine API-User auf dem Icinga-2-System an und starten den Icinga2-Service neu. Danach muss die Datei meerkat.toml auf dem Meerkat-System angepasst werden. Im Anschluss können wir den Meerkat-Container starten!
Auf dem Host für den Meerkat-Container:
$ git clone https:
//gitlab.sol1.net/oss/meerkat.git
$ vim ~centos/meerkat/docker-compose.yml
...
volumes:
- ./config:/meerkat/config:Z
- ./dashboards:/meerkat/dashboards:Z
- ./dashboards-data:/meerkat/dashboards-data:Z
...
Auf dem Icinga-
2
-System:
$ vim cd /etc/icinga2/conf.d/api-user.conf
object ApiUser
"meerkat"
{
password =
"meerkatpassword"
permissions = [
"objects/query/Host"
,
"objects/query/Service"
,
"objects/query/ServiceGroup"
,
"objects/query/HostGroup"
]
}
$ systemctl restart icinga2.service
Auf dem Host für den Meerkat-Container:
$ cd ~centos/meerkat/config
$ cp meerkat.toml.example meerkat.toml
$ vim meerkat.toml
HTTPAddr =
"[::]:8585"
IcingaURL =
"https://icinga.example.com:5665"
IcingaUsername =
"meerkat"
IcingaPassword =
"meerkatpassword"
IcingaInsecureTLS =
true
$ cd ~centos/meerkat
$ docker-compose up
$ docker exec -it meerkat_app_1 /bin/sh
/meerkat $ ps -ef
PID USER TIME COMMAND
1
9001
0
:
00
/meerkat/meerkat -config /meerkat/config/meerkat.toml
27
9001
0
:
00
/bin/sh
33
9001
0
:
00
ps -ef
$ sudo useradd -u
9001
meerkat
$ sudo chown meerkat:meerkat dashboards/ dashboards-data/
Meerkat Web-Interface
Nachdem der Meerkat-Container installiert und aktiviert ist, rufen wir das Meerkat-Webinterface auf. Hier habe ich ein paar Dashboards zum Testen gebaut.
- Create New Dashboard: Dashboardsname eingeben.
- Background Image: Hintergrund hochladen – hier kann man jedes Bild-Format hochladen, welches im Browser angezeigt werden kann. Getestet wurden die Formate PNP,JPEG,WebP und GIF.
- Global Status Alerts: Hier kann man den status-alert festlegen – Meerkat bietet neben Visual-Aufbau auch die Möglichkeit, einen status-alert-sound für verschiedene Status festzulegen. In diesem Projekt habe ich diese auf Mute eingestellt.
- Element: Hier werden die Element–Eigenschaften festgelegt, wie Visual-Type (also in welcher Form das Element auf dem Hintergrund angezeigt werden soll) und Element-Type (für Host, Service, Groups oder Filter).
- Linking URL: Man kann das Element zu einer URL linken.
- Performance Data: Es gibt die Möglichkeit, Abfragen, die einen Performance-Wert haben, anzeigen zu lassen.
Icinga SVG (für Hosts)
Icinga Card (für Hosts und Services)
Icinga Image, static Image und Text, Icinga Line
Im folgenden Beispiel sieht man die restlichen Element-Typen wie Icinga-Image (Status-Element für Hosts), static-Image (Logo), static-Text (IP-Adressen) und Icinga-Line (SSh-Verbindung Status).

0 Kommentare