Was ist Consul und wozu dient es?

Eine Beschreibung in einem Wort ist hier Service Mesh. Was jemanden, der sich zuerst mit Consul beschäftigt, ebenfalls nicht wirklich weiterhilft. Dieser Blogpost zeigt die Features von Consul auf und gibt Hinweise zu deren Anwendung.

Consul verwaltet Services und Knoten in der Art eines “Verzeichnisdienstes”, also in der Form was läuft wo? Zugegriffen wird dabei über DNS oder alternativ mittels HTTP(s). Consul wird entweder im Modus Server oder Agent betrieben. Die Server speichern die Daten, kommen mehrere zum Einsatz werden die Daten automatisch synchronisiert.

Auf die Daten kann man direkt auf den Servern mittels DNS oder HTTP(s) zugreifen oder über den eh benötigten Agenten. Über den Agenten meldet sich jeder beliebige Knoten bzw. Host in Consul an und wird als Node registriert. Ebenfalls können dann auch Services registriert werden. Ein Webserver z.B. registriert sich so zum Beispiel als neues Cluster-Mitglied zu einem bereits bestehenden Services. Zusätzlich können auch Tags gesetzt werden, die sich via DNS-Abfrage dann als Aliases darstellen.

Nur was macht man nun mit diesen Informationen? Einfach wäre es nun seinen eigentlichen DNS auf diese Informationen weiterzuleiten. Dies geht wie oben schon angedeutet mit Anfragen entweder direkt an die Server oder über einen auf den DNS-Servern betriebenen Agenten. Damit ist leicht ein DNS-Round-Robin zu realisieren.

Möchte man hingegen einen Load-Balancer als Proxy für seinen Dienst betreiben, kommt Consul-Templates als eigenständiges Produkt ins Spiel. Es handelt sich hierbei um eine Template-Engine, die die Informationen aus Consul in Konfigurationsdateien überführt. Die Konfiguration kann dabei noch um zusätzliche Konfigurationsparamter, aus dem in Consul integrierten Key-Value-Store, angereichert werden.

Abschließend bietet Consul als weiteres Feature die Verwaltung einer Certificate Authority (CA). Die ausgestellten Zertifikate können sogleich mit Hilfe des Agents via Proxy (sidecar proxy) zur Absicherung der betriebenen Dienste mittels TLS eingesetzt werden. Das geschieht völlig transparent und Konfigurationsdateien müssen nicht angepasst werden.

Lennart Betz
Lennart Betz
Senior Consultant

Der diplomierte Mathematiker arbeitet bei NETWAYS im Bereich Consulting und bereichert seine Kunden mit seinem Wissen zu Icinga, Nagios und anderen Open Source Administrationstools. Im Büro erleuchtet Lennart seine Kollegen mit fundierten geschichtlichen Vorträgen die seinesgleichen suchen.
Vom Messwert zur Alarmierung

Vom Messwert zur Alarmierung

Unternehmen können heutzutage gar nicht von Überwachungsmaßnahmen ihrer Umgebung entkommen, da wir als Menschen den aktuellen Stand von hunderten von Geräten nicht im Griff haben können. Deshalb werden Tools und Equipment im Überwachungsbereich dauernd entwickelt. Aus dem vorherigen erwähnten Bedarf möchte ich ein paar Informationen über zwei Geräte teilen und zwar AKCP sensorProbe2+ und SMSEagle.

AKCP sensorProbe2+

Das AKCP sensorProbe2+ ist ein Messgerät, an das verschiedene Arten von Sensoren angeschlossen werden können. Beispielhaft sind Bewegungs-, Gas-, Schall-, Temperatur, Feuchtigkeit- und Spannungssensoren. Stecken Sie einen beliebigen Sensor in die sensorProbe2+ und eine Autosense-Funktion erkennt den Typ und konfiguriert ihn automatisch. Standardmäßig hat das SP2+ die IP-Adresse 192.168.0.100. Es ist über einen Webbrowser konfigurierbar – sogar die IP-Adresse lässt sich ändern unter Einstellungen  => IP-Einstellungen. Aber der angeschlossene PC muss im gleichen Netz wie der SP2+ sein, um die Verbindung herstellen zu können. Das Gerät kann in einem beliebigen Intervall sowohl seine Verfügbarkeit als auch sämtliche Messwerte durch SMS, Mail oder SNMP Trap mitteilen.

SMSEagle

SMSEagle ist ein SMS Gateway, das SMS und Mails schickt bzw. empfängt. Mails können in SMS umgewandelt werden und umgekehrt. Darüber hinaus gibt es eine eingebaute Überwachungsfunktion, die die Verfügbarkeit von Geräten und Ports überprüft (ICMP, SNMP, TCP, UDP) und beim Ausfall eine SMS oder Mail sendet. SMS können sogar weitergeleitet werden mit Nutzung von Filtern oder ohne. Zusätzlich können wir eine automatische Antwortregel konfigurieren. LDAP-Autentifizierung kommt auch als Feature mit.

Kombination von beiden Geräten:

Beide Geräte müssen nicht im gleichen Netzwerk sein, sondern es reicht, wenn beide einander anhand von einem SMTP-Server sehen. SMSEagle besitzt sogar einen integrierten SMTP-Server, der dafür benutzt werden kann. Dessen IP-Adresse habe ich beim SP2+ eingetragen. SMSEagle akzeptiert nur Mails, die an ihn gesendet sind und lehnt den Rest ab. In SMSEagle muss “Mail to sms” Plugin aktiviert werden, um eingehende Benachrichtigungsmails von SP2+ in SMS zu wandeln und an die gewünschte Nummer zu senden. Im SensorProbe2+ muss man eine Mail-Aktion unter Hauptmenü erstellen, in dem man Zieltelefonnumme@SMSEgale-FQDN als Zielmail einträgt. Zieltelefonnummer könnte man durch gespeicherte Kontaktnamen im Telefonbuch vom SMSEagle ersetzen, wenn es keine Leerzeichnen enthält. SP2+ akzeptiert nur FQDN als Zieladresse. Deswegen muss man folgende Konfigurationseinträge durchführen plus einen DNS-Eintrag für SMSEagle :

[ NXS Geräte unter]
/etc/postfix/main.cf

[NPE Geräte unter]
/mnt/nand-user/postfix/etc/postfix/main.cf

1. folgende Zeile finden “myhostname = localhost.localdomain” und ändern in “myhostname = yourdomain.com”

2. Konfiguration von  Postfix reloaden
postfix reload

Wir können eine Testmail von SP2+ schicken und im Eventslog nachschauen, ob sie versendet werden konnte , oder ob es eine Fehlermeldung gibt. Außerdem können wir unter “notification rules” einstellen, bei welchem erreichten Schwellenwert eine Mail geschickt werden soll. Hier haben wir fünf einstellbare Schwellenwerte Normal, High Warning, High Critical, Low Warning und Low Critical. Wir können auf der anderen Seite in den Maillog von SMSEagle unter /etc/var/log/mail.info, in Systemlog oder unter Einstellungen => sysinfo nachschauen, ob die gesendeten Mails vom SP2+ angekommen sind und als SMS weitergeschickt wurden.

Man kann SP2+ mit Icinga 2 verbinden, wofür man lediglich das entsprechende Plugin benötigt: check_sensorProbe2plus

Ansonsten helfen wir bei Fragen rund um die Hardware von AKCP und SMSEagle gerne weiter – wir sind erreichbar per Mail oder telefonisch unter der 0911 92885-44. Wer uns gerne bei der Arbeit ein bisschen über die Schulter schauen oder den Shop und die angebotenen Produkte verfolgen möchte, kann uns seit kurzem auch auf Twitter folgen – über @NetwaysShop twittert das NETWAYS Shop Team!

 

 

Afeef Ghannam
Afeef Ghannam
Junior Consultant

Afeef macht seit September 2017 eine Ausbildung zum Fachinformatiker für Systemintegration bei NETWAYS. Nachdem der gebürtige Syrer erfolgreich Deutsch gelernt hat, stellt er sich jetzt der Herausforderung Programmiersprache. Neben der IT schätzt er vielfältiges Essen. Sein Motto lautet يد واحدة لا تصفق لوحدها , was so viel bedeutet wie „Eine Hand wird nie allein klatschen“.
A journey with Vault – Teil 1

A journey with Vault – Teil 1

This entry is part of 1 in the series a journey with vault

Hello fellow blog readers!

Heute möchte ich euch auf die Reise mit Vault by Hashicorp mitnehmen.

Zunächst was ist Vault? Bei Vault handelt es sich stumpf gesagt, um einen Passwortspeicher. Vermutlich kommen da jetzt bei dem einen oder anderen Projekte wie Keypass oder Enpass in den Sinn. Die Richtung ist schon mal gut. Jedoch kennt auch jeder das Hauptproblem der oben genannten Lösungen nur zu gut.

Teamfähigkeit.

Das eine Projekt beherrscht es, andere nur teilweise oder vieleicht sogar garnicht. Frustrierend könnte man die Situation auch gerne umschreiben. Fakt ist auf jeden Fall das es sich bei Vault um eine Lösung handelt, die wirklich das Zeug dazu hat ein Teamfähiger Passwortspeicher zu sein. Wie so alles in der Welt haben Dinge leider ihren Preis. Man wird mit Teamfähigkeit gesegnet, aber Satan bestraft uns indirekt mit der Komplexität des ganzen Konstrukts, weswegen ich das Abenteuer Vault in eine kleine Serie verpacke. Genug Worte für den Einstieg, legen wir los mit dem neuen Abenteuer in der Hautprolle: Vault.

Part Uno widment sich der grundlegenden Inbetriebnahme von Vault.

Wie immer benutzte ich eine mit Vagrant provisionierte höchst aktuelle CentOS 7 Box der Marke Eigenbau mit VirtualBox als Provider.

Die Reise beginnt mit dem Download eines ZIP-Archivs welche das Vault binary enthält. Den legen wir einfach unter /tmp ab und entpacken ihn direkt nach /usr/local/bin

wget https://releases.hashicorp.com/vault/1.3.0/vault_1.3.0_linux_amd64.zip -P /tmp
unzip /tmp/vault_1.3.0_linux_amd64.zip -d /usr/local/bin
chown root. /usr/local/bin/vault

Damit das aufrufen von Vault direkt gelingt müssen wir unsere PATH Variable noch um /usr/local/bin ergänzen. Ich hab das ganze in meinem ~/.bash_profile hinterlegt:

PATH=$PATH:$HOME/bin:/usr/local/bin

Wenn alles korrekt ausgeführt wurde, können wir jetzt die Autocompletion nachziehen und anschließend die Shell neustarten:

vault -autocomplete-install
complete -C /usr/local/bin/vault vault
exec $SHELL

Um das ganze abzurunden lassen wir Vault als Daemon laufen.

Zunächst müssen wir es Vault gestatten mlock syscalls ohne der Notwendigkeit von root ausführen zu dürfen:

setcap cap_ipc_lock=+ep /usr/local/bin/vault

Danach legen wir einen nicht priviligierten Systembenutzer an, unter dem der Vault Daemon später laufen soll:

useradd --system --home /etc/vault.d --shell /bin/false vault

Jetzt kommt die systemd Unit:

touch /etc/systemd/system/vault.service

… mit folgenden Inhalt:

[Unit]
Description="HashiCorp Vault - A tool for managing secrets"
Documentation=https://www.vaultproject.io/docs/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/vault.d/vault.hcl
StartLimitIntervalSec=60
StartLimitBurst=3

[Service]
User=vault
Group=vault
ProtectSystem=full
ProtectHome=read-only
PrivateTmp=yes
PrivateDevices=yes
SecureBits=keep-caps
AmbientCapabilities=CAP_IPC_LOCK
Capabilities=CAP_IPC_LOCK+ep
CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK
NoNewPrivileges=yes
ExecStart=/usr/local/bin/vault server -config=/etc/vault.d/vault.hcl
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGINT
Restart=on-failure
RestartSec=5
TimeoutStopSec=30
StartLimitInterval=60
StartLimitIntervalSec=60
StartLimitBurst=3
LimitNOFILE=65536
LimitMEMLOCK=infinity

[Install]
WantedBy=multi-user.target

Bevor wir den Daemon starten können, müssen wir ein paar Verzeichnisse sowie eine Konfigurationsdatei anlegen:
mkdir -pv /etc/vault.d/
mkdir -pv /usr/local/share/vault/data/
chown -R vault. /usr/local/share/vault/

touch /etc/vault.d/vault.hcl

Meine Konfigurationsdatei ist als Beispielhaft anzusehen. Sie behinhaltet das nötigste um den Vault Server grundsätzlich starten zu können. Diese sollte entsprechend an das eigene Szenario angepasst werden und unbedingt mit Zertifikaten ausgestattet sein!

storage "file" {
path = "/usr/local/share/vault/data"
}

ui = true

listener "tcp" {
address = "172.28.128.25:8200"
tls_disable = "true"
}

api_addr = "http://172.28.128.25:8200"
cluster_addr = "http://172.28.128.25:8201"

systemd neuladen und den Vault Daemon starten:

systemctl daemon-reload
systemctl start vault

Wenn uns alles geglückt ist, sollten wir unter der Adresse des Servers, mit Angabe des Ports 8200 nun die UI von Vault vorfinden. Damit geht es nun in der Bildstrecke weiter:

Das wars für den ersten Teil der Serie, im zweiten Teil werden wir uns den Aufbau von Vault genauer anschauen und uns der integration von SSH widment. Vault bietet nämlich viele Integrationsmöglichkeiten mit denen sich am Ende die Authentifizierung von sämtlichen Dienste Zentralisiert über Vault steuern lassen. Bis dahin wünsche ich wie immer viel Spass beim Basteln!

Photo from: https://devopscube.com/setup-hashicorp-vault-beginners-guide/

Max Deparade
Max Deparade
Consultant

Max ist seit Januar als Consultant bei NETWAYS und unterstützt tatkräftig unser Professional Services Team. Zuvor hat er seine Ausbildung zum Fachinformatiker für Systemintegration bei der Stadtverwaltung in Regensburg erfolgreich absolviert. Danach hat der gebürtige Schwabe, der einen Teil seiner Zeit auch in der Oberpfalz aufgewachsen ist ein halbes Jahr bei einem Managed Hosting Provider in Regensburg gearbeitet, ehe es ihn zu NETWAYS verschlagen hat. In seiner Freizeit genießt Max vor allem die Ruhe, wenn...

NETWAYS stellt sich vor – Justin Müller

This entry is part 1 of 16 in the series NETWAYS stellt sich vor

Name: Justin Müller

Alter: 19

Position bei NETWAYS: Junior Developer

Ausbildung: Fachinformatiker im Bereich Anwendungsentwicklung

Bei NETWAYS seit: September 2019

 

 

Wie bist du zu NETWAYS gekommen und was genau gehört zu Deinem Aufgabenbereich?

In meiner damaligen Abiturklasse lernte ich einen Jungen namens Niko kennen, der dieselben Interessen wie ich teilt. Auch wenn sich unsere schulischen Wege nach gerade mal einem halben Jahr trennten, blieben wir in Kontakt und sind schlussendlich außerhalb vom Unterricht sehr gute Freunde geworden.

Nachdem ich mein Fachabitur dieses Jahr abgeschlossen hatte, entschied ich mich dazu eine Ausbildung zu suchen. Es musste auf jeden Fall ein Beruf sein, der etwas mit Programmieren zu tun hat. Folglich habe ich mich schlau gemacht und bin auf den Beruf des Fachinformatikers gestoßen. Mir fiel auf, dass sich mein Freund Niko vor einem Jahr für denselben Beruf bewarb. Ich kam auf ihn zu und er empfahl mir die Firma, bei der er seine Ausbildung macht und kurz darauf schickte ich meine Bewerbung an NETWAYS. Nach dem kurz darauffolgenden angenehmen Bewerbungsgespräch mit Eric und Marius war mir klar, ich muss in diese Firma. Am selben Tag des Bewerbungsgespräches erhielt ich die Zusage und nahm die Stelle ohne zu zögern an.

Mein Aufgabenbereich ist sehr vielfältig. Im Moment arbeite ich mich anhand von gegebenen Aufgaben in golang und Icinga ein. Neben dem Einarbeiten sind Henrik und ich außerdem für den Check Scheduler und den Process Spawner zuständig.

Was macht Dir an Deiner Arbeit am meisten Spaß?

Unbekannte Softwarte entdecken, eigene Programme entwickeln, Schulungen und die firmeninterne Kommunikation und Offenheit. Das sind alles Dinge, die sehr viel Spaß in meiner Ausbildung garantieren. Am meisten Spaß macht es jedoch, selbständig an einem eigenen Arbeitsplatz arbeiten zu dürfen.

Welche größeren, besonders interessanten Projekte stehen künftig an?

Wie oben schon erwähnt, sind Henrik und ich für den Check Scheduler und Process Spawner zuständig. Bis diese Aufgabe gemeistert ist, wird noch viel Zeit vergehen. Danach freue ich mich auf verschiedenste Abteilungswechsel und Schulungen zur Weiterbildung. Die Mitarbeit an Icinga bedeutet mir sehr viel und ich freue mich auf zukünftige Aufgaben, die das Ziel haben, Icinga besser zu machen.

Was machst Du, wenn Du mal nicht bei NETWAYS bist?

Wie man sich denken kann, verbringe ich viel Zeit zuhause vor dem Computer. Neben dem Fakt, dass ich gerne Computerspiele spiele und das auch sehr oft und lange, lasse ich meiner Kreativität in der Musik freien Lauf. Natürlich spiele ich nicht nur PC, sondern verbringe auch viel Zeit mit meinen Freunden. In dem Bereich bin ich sehr vielfältig, da mir immer Dinge einfallen, die man zusammen unternehmen kann. Auch nennenswert ist, dass ich sehr gerne mit Freunden andere Städte besuche.

Wie geht es in Zukunft bei Dir weiter?

Ich hoffe im Moment, dass ich die Probezeit bestehe und meine Ausbildung gut abschließe. Natürlich werde ich im Laufe der nächsten Jahre sehr viel Neues lernen, deswegen will ich soviel wie möglich davon im Kopf behalten, um dann zukünftig ein guter Fachinformatiker zu werden. Außerdem denke ich darüber nach, nach meiner Ausbildung, Ausbilder bei NETWAYS zu werden. Aber das sei mal dahin gestellt ;).

Justin Müller
Justin Müller
Junior Developer

Nachdem er genug von der Schule hatte, hat sich Justin dazu entschieden eine Ausbildung bei NETWAYS zu beginnen. Die Zeit, die er bis jetzt in der Firma verbracht hat, war für ihn sehr lehrreich und spaßig. Als Frühaufsteher freut er sich täglich auf die Arbeit bei NETWAYS und hofft zudem, dass er noch viel als Fachinformatiker im Bereich Anwendungsentwicklung lernen und erleben wird. Natürlich ist Arbeit nicht alles. In seiner Freizeit betreibt er neben dem...
Monthly Snap November 2019

Monthly Snap November 2019

The NETWAYS-November was, as usual, all about the OSMC. And, as usual, it was a splendid event with interesting talks, great food and the best attendees! But what else was on our minds?

The Juniors

Our Junior Consultant Aleksander started the month with Windows Passwort mit Linux zurücksetzen, wherein he described useful tools for resetting your Windows-password.  Artur wrote about his first project in Azubiprojekt für das erste Lehrjahr: Framadate!

SHOP

What does IoT mean, and which products do we offer with it? Nicole let us know in HW group: IoT mit Modbus und MQTT. She also gave us an overview on the various AKCP products in our shop in AKCP sensorProbe: 2, 4 oder 8 Sensoren, potentialfreie Kontakte und PoE. Our apprentices get to visit our different departments to learn more about the company. Artur visited the NETWAYS shop for a week and learnt about our offered products. Read what he found out about AKCP in AKCP sensorProbeX+: Individuelle Monitoring-Lösungen für IoT. A new product will soon be available in our shop: Leonie presented the SMSEAGLE MHD-8100-3G/4G.

Tipps from techies

Our consultants travel a lot, mostly by train. Christoph recommends a website that helps travellers find the best train wagon for their needs and informs of delays and technical Problems in Wie bekomme ich bessere Informationen über Züge als die DB. In SSH – Der Schlüssel zum Erfolg, David gave us a few tips on how to use SSH. According to Johannes Text-Utils can be of importance. Read Text-Utils unter Linux – Wer kennt sie?

OpenStack

Martin wrote his very first NETWAYS- blogpost this month! OpenStack made easy – Sicherheitsgruppen verwalten und zuweisen, which was also his first contribution to the blog series OpenStack made easy. And the next contribution came from Fabian: In OpenStack made easy… Mit Icinga 2-Master Maschinen überwachen he explains how to easily monitor Icinga 2 Master machines with OpenStack. Now it was Martins turn again! Read OpenStack made easy – Snapshots erstellen, rotieren, einspielen, where he taught us how to program Open Stack to create backup snapshots regularly.

#lifeatnetways

This month, two employees shared a bit about themselves in our series NETWAYS stellt sich vor. Read about our junior consultant Tobias, and the newest member of team-marketing Anke!

Keep developing

Florian proudly presented the new Icinga DB user interface: Das neue User Interface von Icinga DB. Check it out! Noah shared his knowledge on GitLab in GitLab-CI / YAML – Write less with Anchors, Extends and Hidden Keys. What is this SVG Feu is talking about? Read the Introduction to SVG: The Basics.

The OSMC after-effect

Dirk reported live from the OSMC! Read his thoughts on OSMC 2019 – Day 1. And what did Dirk do on the next day? Of course, he kept us up to date on talks, the evening event and delicious food in OSMC 2019 – Day 2. After the OSMC we traditionally have on Open Source Camp, where an open source project can be treated thoroughly. This year was all about Foreman. Alexander gave us his personal recap of the Open Source Camp on Foreman. For some attendees the hackathon after the OSMC is the highlight of the conference. Henrik enjoyed the Hackathon immensely, and highly recommends that we all attend next year! OSMC Hackathon – Share your impressions!

Catharina Celikel
Catharina Celikel
Office Manager

Catharina unterstützt seit März 2016 unsere Abteilung Finance & Administration. Die gebürtige Norwegerin ist Fremdsprachenkorrespondentin für Englisch. Als Office Manager kümmert sie sich deshalb nicht nur um das Tagesgeschäft sondern übernimmt nebenbei zusätzlich einen Großteil der Übersetzungen. Privat ist der bekennende Bücherwurm am liebsten mit dem Fahrrad unterwegs.