So installieren Sie Graylog 1.x unter Ubuntu 14.04

Einführung

In diesem Tutorial erfahren Sie, wie Sie Graylog v1.3.x (manchmal auch als Graylog2 bezeichnet) unter Ubuntu 14.04 installieren und so konfigurieren, dass die Syslogs Ihrer Systeme an einem zentralen Ort erfasst werden. Graylog ist ein leistungsstarkes Tool zur Protokollverwaltung und -analyse, das zahlreiche Anwendungsfälle umfasst, von der Überwachung von SSH-Anmeldungen und ungewöhnlichen Aktivitäten bis hin zum Debuggen von Anwendungen. Es basiert auf Elasticsearch, Java und MongoDB.

Es ist möglich, Graylog zum Sammeln und Überwachen einer Vielzahl von Protokollen zu verwenden. Wir werden den Umfang dieses Lernprogramms jedoch auf das Sammeln von Syslog beschränken. Da wir die Grundlagen von Graylog demonstrieren, werden wir auch alle Komponenten auf einem einzelnen Server installieren.

Informationen zu Graylog-Komponenten

Graylog besteht aus vier Hauptkomponenten:

  • * Graylog-Serverknoten *: Dient als Worker, der Nachrichten empfängt und verarbeitet und mit allen anderen Nicht-Serverkomponenten kommuniziert. Die Leistung ist CPU-abhängig

  • * Elasticsearch-Knoten *: Speichert alle Protokolle / Nachrichten. Die Leistung ist abhängig von RAM und Festplatten-E / A

  • * MongoDB *: Speichert Metadaten und ist nicht stark ausgelastet

  • * Webinterface *: Die Benutzeroberfläche

Hier ist ein Diagramm der Graylog-Komponenten (beachten Sie, dass die Nachrichten von Ihren anderen Servern gesendet werden):

In diesem Lernprogramm wird ein sehr einfaches Graylog-Setup implementiert, bei dem alle Komponenten auf demselben Server installiert sind. Für eine größere Produktionsumgebung ist es aus Leistungsgründen ratsam, die Komponenten auf separaten Servern zu installieren.

Voraussetzungen

Das in diesem Tutorial beschriebene Setup erfordert einen Ubuntu 14.04-Server mit mindestens 2 GB RAM. Sie benötigen auch Root-Zugriff (Schritte 1-4 von Initial Server Setup with Ubuntu 14.04).

Wenn Sie einen VPS mit weniger als 2 GB RAM verwenden, können Sie nicht alle Graylog-Komponenten starten.

Beginnen wir mit der Installation der Software!

Installieren Sie MongoDB

Die MongoDB-Installation ist einfach und schnell. Führen Sie den folgenden Befehl aus, um den öffentlichen GPG-Schlüssel von MongoDB in apt zu importieren:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

Erstellen Sie die MongoDB-Quellliste:

echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Aktualisieren Sie Ihre apt-Paketdatenbank:

sudo apt-get update

Installieren Sie die neueste stabile Version von MongoDB mit diesem Befehl:

sudo apt-get install mongodb-org

MongoDB sollte jetzt laufen. Fahren wir mit der Installation von Java fort.

Installieren Sie Java

Elasticsearch benötigt Java, daher werden wir das jetzt installieren. Wir werden Oracle Java 8 installieren, da dies von Elastic empfohlen wird. Es sollte jedoch gut mit OpenJDK funktionieren, wenn Sie sich für diesen Weg entscheiden.

Fügen Sie den Oracle Java PPA zu apt hinzu:

sudo add-apt-repository ppa:webupd8team/java

Aktualisieren Sie Ihre apt-Paketdatenbank:

sudo apt-get update

Installieren Sie die neueste stabile Version von Oracle Java 8 mit diesem Befehl (und akzeptieren Sie die Lizenzvereinbarung, die angezeigt wird):

sudo apt-get install oracle-java8-installer

Nachdem Java installiert ist, installieren wir Elasticsearch.

Installieren Sie Elasticsearch

Graylog 1.x funktioniert nur mit Elasticsearch-Versionen vor 2.0, daher installieren wir Elasticsearch 1.7.x. Elasticsearch kann mit einem Paketmanager installiert werden, indem die Paketquellenliste von Elastic hinzugefügt wird.

Führen Sie den folgenden Befehl aus, um den öffentlichen GPG-Schlüssel von Elasticsearch in apt zu importieren:

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Wenn Ihre Eingabeaufforderung dort nur hängt, wartet sie wahrscheinlich auf das Kennwort Ihres Benutzers (um den Befehl "+ sudo +" zu autorisieren). In diesem Fall geben Sie Ihr Passwort ein.

Erstellen Sie das Elasticsearch-Orderbuch:

echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.x.list

Aktualisieren Sie Ihre apt-Paketdatenbank:

sudo apt-get update

Installieren Sie Elasticsearch mit diesem Befehl:

sudo apt-get -y install elasticsearch

Elasticsearch ist jetzt installiert. Bearbeiten wir die Konfiguration:

sudo vi /etc/elasticsearch/elasticsearch.yml

Suchen Sie den Abschnitt, der "+ cluster.name" angibt. Kommentieren Sie es aus und ersetzen Sie den Standardwert durch "graylog-development". So sieht es aus:

elasticsearch.yml - 1 von 2

cluster.name: graylog-development

Sie möchten den externen Zugriff auf Ihre Elasticsearch-Instanz (Port 9200) einschränken, damit Außenstehende Ihre Daten nicht lesen oder Ihren Elasticsearch-Cluster über die HTTP-API herunterfahren können. Suchen Sie die Zeile, die "+ network.host +" angibt, entfernen Sie das Kommentarzeichen und ersetzen Sie den Wert durch "localhost".

elasticsearch.yml - 2 von 2

network.host: localhost

Speichern und beenden Sie "+ elasticsearch.yml +".

Starten Sie jetzt Elasticsearch:

sudo service elasticsearch restart

Führen Sie dann den folgenden Befehl aus, um Elasticsearch beim Booten zu starten:

sudo update-rc.d elasticsearch defaults 95 10

Führen Sie nach einigen Augenblicken Folgendes aus, um zu testen, ob Elasticsearch ordnungsgemäß ausgeführt wird:

curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'

Nachdem Elasticsearch nun ausgeführt wird, installieren wir den Graylog-Server.

Installieren Sie Graylog Server

Nachdem wir die andere erforderliche Software installiert haben, installieren wir die Serverkomponente von Graylog, "+ graylog-server +".

Laden Sie zunächst das Graylog-Debian-Paket mit den folgenden Befehlen in Ihr Ausgangsverzeichnis herunter:

cd ~
wget https://packages.graylog2.org/repo/packages/graylog-1.3-repository-ubuntu14.04_latest.deb

Fügen Sie dann das Paket mit dem folgenden Befehl zu Ihrem Paketmanager hinzu:

sudo dpkg -i graylog-1.3-repository-ubuntu14.04_latest.deb

Dann installiere das + graylog-server + Paket mit diesen Befehlen:

sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get install graylog-server

Installiere pwgen, mit dem wir geheime Passwortschlüssel generieren:

sudo apt-get install pwgen

Jetzt müssen wir das admin-Passwort und den geheimen Schlüssel konfigurieren. Der geheime Kennwortschlüssel wird in server.conf mit dem Parameter + password_secret + konfiguriert. Mit den folgenden beiden Befehlen können wir einen zufälligen Schlüssel generieren und in die Graylog-Konfiguration einfügen:

SECRET=$(pwgen -s 96 1)
sudo -E sed -i -e 's/password_secret =.*/password_secret = '$SECRET'/' /etc/graylog/server/server.conf

Das admin-Kennwort wird zugewiesen, indem ein "+ shasum " des gewünschten Kennworts erstellt und dem Parameter " root_password_sha2 +" in der Graylog-Konfigurationsdatei zugewiesen wird. Erstellen Sie mit dem folgenden Befehl eine Liste Ihres gewünschten Passworts, wobei Sie das hervorgehobene "Passwort" durch Ihr eigenes ersetzen. Der Befehl sed fügt es für Sie in die Graylog-Konfiguration ein:

PASSWORD=$(echo -n  | shasum -a 256 | awk '{print $1}')
sudo -E sed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf

Nachdem Sie das Administratorkennwort eingerichtet haben, öffnen Sie die Graylog-Konfiguration, um einige Änderungen vorzunehmen:

sudo vi /etc/graylog/server/server.conf

Sie sollten sehen, dass + password_secret + und + root_password_sha2 + aufgrund der Befehle, die Sie in den obigen Schritten ausgeführt haben, zufällige Zeichenfolgen enthalten.

Jetzt konfigurieren wir das + rest_transport_uri +, mit dem die Graylog-Weboberfläche mit dem Server kommuniziert. Da wir alle Komponenten auf einem einzigen Server installieren, setzen wir den Wert auf "+ 127.0.0.1 " oder " localhost ". Suchen und kommentieren Sie " rest_transport_uri +" und ändern Sie den Wert so, dass er wie folgt aussieht:

/etc/graylog/server/server.conf - 1 von 4

rest_transport_uri = http://127.0.0.1:12900/

Da wir nur einen Elasticsearch-Shard haben (der auf diesem Server ausgeführt wird), ändern wir als Nächstes den Wert von "+ elasticsearch_shards +" auf "1":

/etc/graylog/server/server.conf - 2 von 4

elasticsearch_shards =

Ändern Sie als nächstes den Wert von "+ elasticsearch_cluster_name " in "graylog-development" (der gleiche Wert wie bei "Elasticsearch" " cluster.name +"):

/etc/graylog/server/server.conf - 3 von 4

elasticsearch_cluster_name = graylog-development

Deaktivieren Sie diese beiden Zeilen, um die Elasticsearch-Instanz mithilfe von Unicast anstelle von Multicast zu ermitteln:

/etc/graylog/server/server.conf - 4 von 4

elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300

Speichern und Beenden. Jetzt ist + graylog-server + konfiguriert und kann gestartet werden.

Starten Sie den Graylog-Server mit dem Dienstbefehl:

sudo start graylog-server

Der nächste Schritt ist die Installation der Graylog-Weboberfläche. Machen wir das jetzt!

Installieren Sie Graylog Web

Installieren Sie Graylog Web mit den folgenden Befehlen:

sudo apt-get install graylog-web

Als nächstes möchten wir den geheimen Schlüssel der Weboberfläche konfigurieren, den Parameter "+ application.secret" in "* web.conf *". Wie bei der Graylog-Serverkonfiguration werden wir einen weiteren Schlüssel generieren und ihn mit sed einfügen:

SECRET=$(pwgen -s 96 1)
sudo -E sed -i -e 's/application\.secret=""/application\.secret="'$SECRET'"/' /etc/graylog/web/web.conf

Öffnen Sie nun die Konfigurationsdatei für das Webinterface mit dem folgenden Befehl:

sudo vi /etc/graylog/web/web.conf

Jetzt müssen wir die Konfiguration der Weboberfläche aktualisieren, um den Parameter "+ graylog2-server.uris " anzugeben. Dies ist eine durch Kommas getrennte Liste der Server-REST-URIs. Da wir nur einen Graylog-Serverknoten haben, sollte der Wert mit dem von " rest_listen_uri +" in der Graylog-Serverkonfiguration übereinstimmen (d. H. "Http://127.0.0.1:12900/%22[http://127.0.0.1:12900/"]).

/etc/graylog/web/web.conf Auszug

graylog2-server.uris="http://127.0.0.1:12900/"

Die Graylog-Weboberfläche ist jetzt konfiguriert. Starten Sie die Graylog-Weboberfläche:

sudo start graylog-web

Jetzt können wir die Graylog-Weboberfläche verwenden. Machen wir das jetzt.

Konfigurieren Sie Graylog für den Empfang von Syslog-Nachrichten

Melden Sie sich bei Graylog Web Interface an

Rufen Sie in Ihrem bevorzugten Webbrowser den Port "+ 9000 +" der öffentlichen IP-Adresse Ihres Servers auf:

In a web browser:http://:9000/

Sie sollten einen Anmeldebildschirm sehen. Geben Sie "+ admin +" als Benutzernamen und das zuvor festgelegte Administratorkennwort ein.

Sobald du eingeloggt bist, siehst du Folgendes:

Die rote Zahl oben ist eine Benachrichtigung. Wenn Sie darauf klicken, wird eine Meldung angezeigt, die besagt, dass Sie einen Knoten haben, auf dem keine Eingaben ausgeführt werden. Fügen wir jetzt einen Eingang hinzu, um Syslog-Nachrichten über UDP zu empfangen.

Syslog UDP Input erstellen

Um eine Eingabe für den Empfang von Syslog-Nachrichten hinzuzufügen, klicken Sie im oberen Menü auf die Dropdown-Liste * System *.

Wählen Sie nun aus dem Dropdown-Menü die Option * Eingänge *.

Wählen Sie * Syslog UDP * aus dem Dropdown-Menü und klicken Sie auf die Schaltfläche * Neue Eingabe starten *.

Das modale Fenster "Neue Eingabe starten: Syslog UDP" wird angezeigt. Geben Sie die folgenden Informationen ein (ersetzen Sie die Bindungsadresse durch die private IP-Adresse Ihres Servers):

  • * Titel: * + syslog +

  • * Port: * + 8514 +

  • * Adresse binden: * + graylog_private_IP +

Klicken Sie dann auf * Starten *.

Sie sollten nun eine Eingabe mit dem Namen "syslog" im Abschnitt "Lokale Eingaben" sehen (und ein grünes Kästchen mit der Aufschrift "running" daneben haben), wie folgt:

Jetzt ist unser Graylog-Server bereit, Syslog-Nachrichten von Ihren Servern an Port + 8514 + zu empfangen. Lassen Sie uns Ihre Server so konfigurieren, dass sie jetzt ihre Syslog-Nachrichten an Graylog senden.

Konfigurieren Sie Rsyslog so, dass Syslogs an Graylog Server gesendet werden

Führen Sie auf allen * Client-Servern *, den Servern, die Sie Syslog-Nachrichten an Graylog senden möchten, die folgenden Schritte aus.

Erstellen Sie eine rsyslog-Konfigurationsdatei in /etc/rsyslog.d. Wir werden unsere + 90-graylog.conf + aufrufen:

sudo vi /etc/rsyslog.d/90-graylog.conf

Fügen Sie in dieser Datei die folgenden Zeilen hinzu, um rsyslog so zu konfigurieren, dass Syslog-Nachrichten an Ihren Graylog-Server gesendet werden (ersetzen Sie "+ graylog_private_IP +" durch die private IP-Adresse Ihres Graylog-Servers):

/etc/rsyslog.d/90-graylog.conf

$template GRAYLOGRFC5424,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n"
*.* @:8514;GRAYLOGRFC5424

Speichern und Beenden. Diese Datei wird ab sofort als Teil Ihrer rsyslog-Konfiguration geladen. Jetzt müssen Sie rsyslog neu starten, damit Ihre Änderungen wirksam werden.

sudo service rsyslog restart

Nachdem Sie rsyslog auf allen zu überwachenden Servern konfiguriert haben, kehren Sie zur Graylog-Weboberfläche zurück.

Anzeigen Ihrer Graylog-Quellen

Rufen Sie in Ihrem bevorzugten Webbrowser den Port "+ 9000 +" der öffentlichen IP-Adresse Ihres Servers auf:

In a web browser:http://:9000/

Klicken Sie in der oberen Leiste auf * Quellen *. Sie sehen eine Liste aller Server, auf denen Sie rsyslog konfiguriert haben.

Der Hostname der Quellen befindet sich links, die Anzahl der von Graylog empfangenen Nachrichten rechts.

Durchsuchen Ihrer Graylog-Daten

Nachdem Ihr Graylog einige Zeit lang Nachrichten gesammelt hat, können Sie die Nachrichten durchsuchen. Suchen Sie beispielsweise nach "sshd", um festzustellen, welche Art von SSH-Aktivität auf unseren Servern stattfindet. Hier ist ein Auszug unserer Ergebnisse:

Wie Sie sehen, haben unsere Beispielsuchergebnisse sshd-Protokolle für verschiedene Server und viele fehlgeschlagene Root-Anmeldeversuche ergeben. Ihre Ergebnisse können variieren, aber es kann Ihnen helfen, viele Probleme zu identifizieren, einschließlich der Art und Weise, wie nicht autorisierte Benutzer versuchen, auf Ihre Server zuzugreifen.

Zusätzlich zu den grundlegenden Suchfunktionen für alle Ihre Quellen können Sie die Protokolle eines bestimmten Hosts oder in einem bestimmten Zeitraum durchsuchen.

Das Durchsuchen von Daten in Graylog ist beispielsweise hilfreich, wenn Sie die Protokolle eines Servers oder mehrerer Server nach einem Vorfall überprüfen möchten. Die zentralisierte Protokollierung erleichtert das Korrelieren verwandter Vorfälle, da Sie sich nicht bei mehreren Servern anmelden müssen, um alle aufgetretenen Ereignisse anzuzeigen.

Weitere Informationen zur Funktionsweise der Suchleiste finden Sie in der offiziellen Dokumentation: Graylog Searching

Fazit

Nachdem Sie Graylog eingerichtet haben, können Sie die anderen Funktionen erkunden, die es bietet. Sie können andere Arten von Protokollen an Graylog senden und Extraktoren einrichten (oder Protokolle mit Software wie logstash neu formatieren), um die Protokolle strukturierter und durchsuchbarer zu machen. Sie können auch die Graylog-Umgebung erweitern, indem Sie die Komponenten trennen und Redundanz hinzufügen, um die Leistung und Verfügbarkeit zu erhöhen.

Viel Glück!