Grafische overhoal & Post sort
modified: components/BlogList.js modified: components/Header.js modified: components/Layout.js deleted: data/info.md new file: data/over.md renamed: pages/info.js -> pages/over.js renamed: posts/24Jun-zabbix-prom.md -> posts/23-06-24-zabbix-prom.md renamed: posts/1Jul-SELinuxMetZabbix.md -> posts/23-07-01-SELinuxMetZabbix.md renamed: posts/9Jul-zabbix-ha-cluster.md -> posts/23-07-09-Zabbix-ha-cluster.md renamed: posts/16Jul-rebranding-zabbix.md -> posts/23-07-16-Rebranding-zabbix.md renamed: posts/21Jul-OpenSSH.md -> posts/23-07-21-OpenSSH.md renamed: posts/22Jul-Permissions.md -> posts/23-07-22-Permissions.md renamed: posts/24Jul-SyncRepo.md -> posts/23-07-24-SyncRepo.md renamed: posts/28Jul-SystemdApps.md -> posts/23-07-28-SystemdApps.md renamed: posts/31Jul-SELinux.md -> posts/23-07-31-SELinux.md renamed: posts/1Aug-Documentatie.md -> posts/23-08-01-Documentatie.md renamed: posts/10Aug-AWK_basis.md -> posts/23-08-10-AWK_basis.md renamed: posts/16Aug-GetAGrep.md -> posts/23-08-16-GetAGrep.md renamed: posts/23Aug-Git_masterclass.md -> posts/23-08-23-Git_masterclass.md renamed: posts/30Aug-ZabbixBackup.md -> posts/23-08-30-ZabbixBackup.md renamed: posts/6Sept-Kickstart.md -> posts/23-09-06-Kickstart.md renamed: posts/27Sept-GitlabUpgrade.md -> posts/23-09-27-GitlabUpgrade.md renamed: posts/4Okt-HashicorpVault.md -> posts/23-10-04-HashicorpVault.md renamed: posts/8Okt-Certbot.md -> posts/23-10-08-Certbot.md renamed: posts/11Okt-HashicorpVault.md -> posts/23-10-11-HashicorpVault.md renamed: posts/12Okt_ACL.md -> posts/23-10-12-ACL.md renamed: posts/18Okt-InABind.md -> posts/23-10-18-InABind.md renamed: posts/23Okt-Autofs.md -> posts/23-10-23-Autofs.md renamed: posts/25Okt-RPM.md -> posts/23-10-25-RPM.md renamed: posts/26Okt-Journald.md -> posts/23-10-26-Journald.md modified: styles/Info.module.css
This commit is contained in:
78
posts/23-06-24-zabbix-prom.md
Normal file
78
posts/23-06-24-zabbix-prom.md
Normal file
@@ -0,0 +1,78 @@
|
||||
---
|
||||
title: "Prometheus en Zabbix"
|
||||
excerpt: 'Leer Prometheus data op te halen vanuit de Zabbix server.'
|
||||
coverImage: '/ZabbixProm/ZabbixProm1.png'
|
||||
date: '2023-06-24T18:00:00.000Z'
|
||||
author: Eli Winderickx
|
||||
hero_image: /ZabbixProm1.png
|
||||
category: Prometheus,Zabbix,Node exporter,Low-level Discovery
|
||||
---
|
||||
|
||||
Zabbix kan heel veel, ook verbinden met de Prometheus clients; `node_exporter` en `blackbox_exporter`. Beide clients bieden namelijk via TCP-poort data aan die Prometheus kan "scrapen" (`node_exporter`: 9100 en blackbox_exporter: 9115). Zabbix kan dan via `HTTP-item` de metrics ophalen. Hiervoor moeten we eerst een Host aanmaken. Deze dient als placeholder en moet buiten een beduidende naam, geen relevante informatie bevatten.
|
||||
|
||||
## Het master-item
|
||||
Het belangrijkste zit in de master-item. Deze gaat namelijk via een `HTTP-item` de pull doen naar de `node_exporter` host. Net als bij de Prometheus server krijgen we ineens alle data binnen van de host. Zabbix kan daarna extra `Dependant items` maken op basis van verschillende entries in het `master`-item. Geef het adres van de host in onder URL en vervolledig met `:9100/metrics`. Voor testdoeleinden kan het interessant zijn om even geschiedenis bij te houden maar daarnaast is dit heel veel data die we niet moeten bijhouden en dus kunnen we onder `history storage period` 0 zetten. Let daarnaast dat `Type of information` Text is.
|
||||
|
||||

|
||||
|
||||
## Dependant item
|
||||
Nu het `master`-item aangevuld wordt, kunnen we een nieuw item aanmaken en die van het type `Dependant item` maken. De naam en key moeten zoals steeds uniek zijn en onder `master`-item kunnen we het item van zonet hier aanvullen.
|
||||
|
||||

|
||||
|
||||
Onder het tab `Preprocessing` gebeurt nu het interessante en gaan we aangeven welke waarde we uit ons Master-item willen halen. In deze context kunnen we enkel gebruik maken van `keys` en `values` en hebben we dus echt enkel de specifieke metrix die we ophalen.
|
||||
|
||||

|
||||
|
||||
## Low-level Discovery
|
||||
Via LLD kunnen we iets gemakkelijker verschillende items op een geautomatiseerde manier ophalen. We hebben nog steeds ons `master`-item nodig als vertrekpunt. Hierna kunnen we enkele leuke zaken definiëren. Nadat we Naam, key en `master`-item hebben opgegeven, kunnen we naar `Preprocessing` gaan en daar `Prometheus to JSON` selecteren. Als Parameter kunnen we nu een `Prometheus pattern` ingeven alsook wat regex om enkele zaken variabel te laten opvullen.
|
||||
|
||||

|
||||
|
||||
Hieronder een voorbeeld van zo’n JSON verwerking
|
||||
````JSON
|
||||
[
|
||||
{
|
||||
"name": "wmi_logical_disk_free_bytes",
|
||||
"help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
|
||||
"type": "gauge",
|
||||
"labels": {
|
||||
"volume": "C:"
|
||||
},
|
||||
"value": "3.5180249088e+11",
|
||||
"line_raw": "wmi_logical_disk_free_bytes{volume=\"C:\"} 3.5180249088e+11"
|
||||
},
|
||||
{
|
||||
"name": "wmi_logical_disk_free_bytes",
|
||||
"help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
|
||||
"type": "gauge",
|
||||
"labels": {
|
||||
"volume": "D:"
|
||||
},
|
||||
"value": "2.627731456e+09",
|
||||
"line_raw": "wmi_logical_disk_free_bytes{volume=\"D:\"} 2.627731456e+09"
|
||||
},
|
||||
{
|
||||
"name": "wmi_logical_disk_free_bytes",
|
||||
"help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
|
||||
"type": "gauge",
|
||||
"labels": {
|
||||
"volume": "HarddiskVolume4"
|
||||
},
|
||||
"value": "4.59276288e+08",
|
||||
"line_raw": "wmi_logical_disk_free_bytes{volume=\"HarddiskVolume4\"} 4.59276288e+08"
|
||||
}
|
||||
]
|
||||
````
|
||||
|
||||
In bovenstaand voorbeeld kunnen we enkele waarden terugvinden zoals `name`, `help` en `labels`. Onder `line_raw` zien we de effectieve lijn die Zabbix heeft ontvangen uit de `node_exporter`. Afhankelijk van welke data we willen opvragen, gaan we ook andere Macro’s willen aanmaken. In bovenstaand voorbeeld zal dat {#METRIC}, {#HELP} en {#VOLUME} zijn.
|
||||
{#VOLUME}=$.labels['volume']
|
||||
{#METRIC}=$['name']
|
||||
{#HELP}=$['help']
|
||||
|
||||
|
||||
|
||||
Tot slot kunnen we nu een `prototype item` aanmaken. Door de LLD Macro’s, kunnen we nu eenvoudig unieke waardes genereren. Onder Preprocessing, kunnen we dan opnieuw die Macro’s gebruiken om de juiste waarde te selecteren.
|
||||
|
||||

|
||||

|
||||
Reference in New Issue
Block a user