Ficture IT is druk in de weer met allerlei Opensource software. In sommige gevallen was het nodig om e.a. aan te passen of uit te breiden.
Op deze pagina zijn deze bijdragen te vinden en te downloaden.
Opsview scripts
Omschrijving | Script | |
---|---|---|
Check Nortel/Avaya stack unit status | check_snmp_nortel_stacksize | |
Check Cisco stack unit status (StackWise MIB) | check_snmp_cisco_stacksize | |
Check_snmp_interfaces patched for Thomson/Speedtouch | check_snmp_interfaces | |
veo-stream.cgi to allow MJPEG streaming from a Veo Observer webcam | veo-stream.cgi |
Kibana/Logstash/Elasticsearch
Edit 26-11: In Kibana 4 zijn deze zaken opgelost. Deze versie kan zelfs in de eigen configuratie op https draaien. Ook zijn de maps nu op https en worden er geen security meldingen meer gegenereerd. Advies is dan ook om over te stappen op Kibana 4.
Om Kibana 3 met Logstash en Elasticsearch op een https server te kunnen draaien (met authenticatie) de hier beschreven stappen noodzakelijk.
Elasticsearch
Als eerste dient Elasticsearch op dezelfde host te draaien als Kibana en dient deze alleen op de localhost gebind te zijn.
Open /etc/elasticsearch/elasticsearch.yml
Zorg dat de volgende statements actief zijn (commentaar teken verwijderd en aangepast naar 127.0.0.1):
network.bind_host: 127.0.0.1
network.publish_host: 127.0.0.1
network.host: 127.0.0.1
Kibana/Apache
Om Kibana met authenticatie te laten werken op https is het het mooiste om in de /etc/httpd/conf.d/ssl.conf een aparte Virtual Host te maken.
Voor authenticatie zijn de volgende statements nodig:
<Location />
AuthType Digest
AuthName "Kibana"
AuthDigestProvider file
AuthUserFile /etc/httpd/kibana.digest
Require valid-user
</Location>
Gebruikers kunnen worden toegevoegd met : htdigest [-c] /etc/httpd/kibana.digest Kibana <userid>
De -c is alleen de eerste keer nodig als het bestand nog niet bestaat.
Om nu het verkeer richting Elasticsearch via Kibana te laten lopen moeten er 2 zaken gebeuren.
Als eerste moet in de Kibana het verkeer voor Elasticsearch via de Kibana server geleid worden. Dit kan door in de config.js de volgende parameter aan te passen:
elasticsearch: "https://<ip adres of FQDN van de Kibana virtual host>"
Om nu te zorgen dat de Elasticsearch statements via de Kibana Virtual Host richting de locale Elasticsearch gaat moeten er een aantal proxy statements aangemaakt worden. Dit zijn de volgende :
ProxyPassMatch ^/(_aliases)$ http://127.0.0.1:9200/$1
ProxyPassMatch ^/(.*/_aliases)$ http://127.0.0.1:9200/$1
ProxyPassMatch ^/(_nodes)$ http://127.0.0.1:9200/$1
ProxyPassMatch ^/(.*/_search)$ http://127.0.0.1:9200/$1
ProxyPassMatch ^/(.*/_mapping)$ http://127.0.0.1:9200/$1
ProxyPassMatch ^/(kibana-int/dashboard/.*)$ http://127.0.0.1:9200/$1
ProxyPassMatch ^/(kibana-int/temp.*)$ http://127.0.0.1:9200/$1
Bettermap in Kibana
Nu blijft er 1 probleem over en dat is dat de bettermap plugin http requests doet onder de https Kibana site. Dit geeft beveiligings problemen in de browser. Om dit op te lossen kan dit verkeer ook via de Kibana Virtual Host geleid worden. Dit moet in 2 stappen:
UPDATE: De vorige oplossing gaf ook Authorization headers en Cookies door aan de externe site! Volg deze nieuwe oplossing ASAP!
Stap 1: Voeg de volgende regel toe in de Virtual Host definitie voor Kibana
<Location /bettermap/>
RequestHeader unset Authorization
RequestHeader unset Cookie
RewriteEngine on
RewriteRule ^/.*/bettermap/(.*)$ http://otile1.mqcdn.com/$1 [P]
</Location>
Stap 2: Pas de bettermap module aan zodat het verkeer op de Kibana URL blijft op het in stap 1 gemaakte pad. Open hievoor de module.js in de bettermap directory onder app/panels/bettermap en verander het begin van de URL dat start met 'http://otile1.mqcdn.com' in '/bettermap' en laat de rest van de URL in tact.