Simovits

Kibana-visualisering i React för visning av extern html-sida

I Kibana finns fina möjligheter till att skapa egna visualiseringsplugin exempelvis genom React-kod. I denna bloggpost publicerar jag ett litet visualiseringsplugin för Kibana som laddar ned en extern webbsida och visar den direkt i Kibana-gränssnittet. Detta kan exempelvis vara nyttigt då man vill se information från ett annat system i en Kibana-dashboard (se exempel i figuren nedan).

Projektet kan hittas här: https://github.com/jamesrep/yellowiframeviz

Filer i projektet:


Kibana.yml:
Vi behöver göra några mindre inställningar i Kibana.yml för att få visualiseringen att fungera som vi vill. Nedan beskrivs möjliga inställningar.

Konfigurera CSP
Eftersom vi vill att kod ska kunna visas i en frame behöver vi lätta upp lite på Kibanas Content-Security-Policy.

csp.rules: 
 - "frame-src 'self'" 


Specificera den host där sidan ska hämtas ifrån.

yellowiframeviz.displayHost: "torstatus.blutmagie.de" 


specificerar path-delen av url:en som ska användas för api-anropet (som vi skapat en route för).

yellowiframeviz.displayPath: "/as-by-routers.php" 


Specificera vilka anrop mot displayHost-servern som kommer kunna routas genom Kibana.

yellowiframeviz.restArray: ["index.html", "main.css"] 

Specificera vilken port som ska användas.

yellowiframeviz.displayPort: 443 

Specificerar att HTTPS ska användas.

yellowiframeviz.useHttps: true

Tanken med visualiseringskoden är endast att kunna integrera med egna system. Därav är host-namnet hårt låst till vad som står specificerat i konfigurationsfilen. Det är dock enkelt att bygga om visualiseringen så att den kan anropa godtyckliga webbsidor. Det finns dock viss säkerhetsproblematik som följer med det förstås… så det blir kanske en annan bloggpost. All kod hittas här: https://github.com/jamesrep/yellowiframeviz