Graylog ist ein Open-Source-Protokollverwaltungstool, mit dem Sie alle Maschinenprotokolle zentral sammeln, indizieren und analysieren können. Diese Anleitung konzentriert sich auf die Installation von Graylog auf Ubuntu 18.04 / Ubuntu 16.04.
Komponenten
MongoDB – Fungiert als Datenbank, speichert die Konfigurationen und Metainformationen.
Elastische Suche – Es speichert die Protokollmeldungen und bietet eine Suchfunktion. Es wird empfohlen, mehr Arbeitsspeicher zuzuweisen und SAS- oder SAN-Festplatten für Elasticsearch-Knoten zu verwenden. Hier, wo all Ihre Suche stattfindet.
Graylog-Server – Log-Parser. Es sammelt die Protokolle aus verschiedenen Eingaben und liefert die Ausgabe an eine integrierte Webschnittstelle zur Verwaltung der Protokolle.
Voraussetzungen
Wie Sie wissen, ist Elasticsearch eine Java-basierte Anwendung. Installieren Sie entweder OpenJDK oder Oracle JDK auf Ihrem Computer, um fortzufahren.
Hier werde ich mich für OpenJDK 8 entscheiden.
sudo apt update sudo apt install -y apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen curl dirmngr
Überprüfen Sie die Java-Version.
java -version
Ausgabe:
openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Elasticsearch installieren
Elasticsearch ist eine der Hauptkomponenten, für deren Ausführung Graylog erforderlich ist, die als Suchserver fungiert und mit der RESTful-Webschnittstelle eine verteilte Suche und Analyse in Echtzeit bietet.
Elasticsearch speichert alle vom Graylog-Server gesendeten Protokolle und zeigt die Nachrichten an, wann immer der Benutzer sie über die integrierte Weboberfläche anfordert.
Laden Sie den GPG-Signaturschlüssel herunter und installieren Sie ihn.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Richten Sie das Elasticsearch-Repository ein, indem Sie den folgenden Befehl ausführen.
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Aktualisieren Sie den Repository-Cache und installieren Sie das Elasticsearch-Paket.
sudo apt update sudo apt install -y elasticsearch
Lassen Sie den Elasticsearch-Dienst beim Systemstart automatisch starten.
sudo systemctl enable elasticsearch
Wichtig ist nur, einen Clusternamen als graylog festzulegen . Bearbeiten Sie die Konfigurationsdatei von Elasticsearch und aktualisieren Sie sie entsprechend.
sudo nano /etc/elasticsearch/elasticsearch.yml
Legen Sie den Clusternamen wie unten gezeigt fest.
cluster.name: graylog
Starten Sie den Elasticsearch-Dienst, um die neuen Konfigurationen zu lesen.
sudo systemctl restart elasticsearch
Warten Sie mindestens eine Minute, damit Elasticsearch vollständig neu gestartet werden kann. Elastisearch sollte jetzt auf 9200 für die Verarbeitung der HTTP-Anforderung lauschen. Verwenden Sie eine CURL, um die Antwort zu überprüfen.
curl -X GET http://localhost:9200
Ausgabe:
Stellen Sie sicher, dass der Clustername als Graylog angezeigt wird .
{ "name" : "bgVbYrc", "cluster_name" : "graylog", "cluster_uuid" : "-wECQlwnSZWftd_XdWSz-g", "version" : { "number" : "6.6.1", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "1fd8f69", "build_date" : "2019-02-13T17:10:04.160291Z", "build_snapshot" : false, "lucene_version" : "7.6.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
Optional: Testen Sie den Zustand des Elasticsearch-Clusters.
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Ausgabe:
Stellen Sie sicher, dass die Ausgabe den Clusterstatus als grün liefert .
{ "cluster_name" : "graylog", "status" : "green", "timed_out" : false, "number_of_nodes" : 1, "number_of_data_nodes" : 1, "active_primary_shards" : 0, "active_shards" : 0, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 100.0 }
Installieren Sie MongoDB
Laden Sie die neueste Version von MongoDB von der offiziellen Website herunter und installieren Sie sie. Importieren Sie den öffentlichen Schlüssel auf dem Terminal, um zu beginnen.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Fügen Sie das Mongodb-Repository hinzu, indem Sie /etc/apt/sources.list.d/mongodb-org.list
erstellen Datei mit dem folgenden Befehl.
### Ubuntu 18.04 ### echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list ### Ubuntu 16.04 ### echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Installieren Sie MongoDB mit dem folgenden Befehl.
sudo apt update sudo apt install -y mongodb-org
Starten Sie die MongoDB und aktivieren Sie sie beim Systemstart.
sudo systemctl start mongod sudo systemctl enable mongod
Graylog installieren
Graylog Server akzeptiert und verarbeitet die Protokollmeldungen und zeigt sie dann für die Anfragen an, die von der Graylog-Weboberfläche kommen.
Laden Sie das Graylog 3.x-Repository herunter und installieren Sie es.
wget https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.deb sudo dpkg -i graylog-3.0-repository_latest.deb
Aktualisieren Sie den Repository-Cache.
sudo apt update
Installieren Sie den Graylog-Server mit dem folgenden Befehl.
sudo apt install -y graylog-server
Graylog konfigurieren
Sie müssen ein Geheimnis festlegen, um die Benutzerkennwörter zu sichern. Verwenden Sie dazu den Befehl pwgen.
pwgen -N 1 -s 96
Ausgabe:
fGoTI07CooB6xNy5sdPVSKSuq6QSu2QyWf6G9z3haolgwbERTQ9ZbfbF6hxRYbJMMAlEZX7CXHxJLBkNyfM0420u8aFuZy9M
Bearbeiten Sie die server.conf Datei, um mit der Graylog-Konfiguration zu beginnen.
sudo nano /etc/graylog/server/server.conf
Platzieren Sie das Geheimnis wie unten.
password_secret = fGoTI07CooB6xNy5sdPVSKSuq6QSu2QyWf6G9z3haolgwbERTQ9ZbfbF6hxRYbJMMAlEZX7CXHxJLBkNyfM0420u8aFuZy9M
Als nächstes muss ein Hash-Passwort (sha256) für den Root-Benutzer festgelegt werden (nicht zu verwechseln mit dem Systembenutzer, der Root-Benutzer von Graylog ist admin).
Sie benötigen dieses Passwort, um sich bei der Graylog-Weboberfläche anzumelden. Das Passwort des Administrators kann nicht über die Webschnittstelle geändert werden. Sie müssen diese Variable also bearbeiten, um sie zu setzen.
Ersetzen Sie IhrPasswort mit Ihrer Wahl.
echo -n yourpassword | sha256sum
Ausgabe:
e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
Bearbeiten Sie die server.conf Datei erneut.
sudo nano /etc/graylog/server/server.conf
Geben Sie das Hash-Passwort ein.
root_password_sha2 = e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
Sie können einen Administratorbenutzer für die E-Mail-Adresse einrichten.
root_email = "[email protected]"
Legen Sie die Zeitzone des Root-Benutzers (Admin) fest.
root_timezone = UTC
Legen Sie nur einen Master-Knoten fest, indem Sie die folgende Variable definieren. Wenn Sie einen zweiten Graylog-Knoten hinzufügen, setzen Sie dies auf „false“, um den zweiten Knoten als Slave zu machen, da der Master-Knoten einige periodische Aufgaben erledigt, die Slave-Knoten nicht ausführen.
is_master = true
Legen Sie die Anzahl der Protokollmeldungen fest, die pro Index aufbewahrt werden sollen; Es wird empfohlen, statt größerer mehrere kleinere Indizes zu verwenden.
elasticsearch_max_docs_per_index = 20000000
Der folgende Parameter definiert eine Gesamtanzahl von Indizes, wenn diese Anzahl erreicht wird, wird der alte Index gelöscht.
elasticsearch_max_number_of_indices = 20
Die Shards-Einstellung hängt von der Anzahl der Knoten im jeweiligen Elasticsearch-Cluster ab. Wenn Sie nur einen Knoten haben, setzen Sie ihn auf 1.
elasticsearch_shards = 1
Diese Einstellung definiert die Anzahl der Replikate für Ihre Indizes. Wenn Sie nur einen Knoten im Elasticsearch-Cluster haben, setzen Sie ihn auf 0.
elasticsearch_replicas = 0
Graylog-Weboberfläche einrichten
Ab der Version 2.x wird das Webinterface direkt vom Graylog-Server bedient. Konfigurieren Sie die Graylog-Weboberfläche, indem Sie die server.conf bearbeiten Datei.
sudo nano /etc/graylog/server/server.conf
Aktualisieren Sie den folgenden Eintrag mit Ihrer System-IP-Adresse, von der aus Sie auf die Graylog-Webschnittstelle zugreifen.
http_bind_address = your-server-ip:9000
Starten Sie den Graylog-Dienst neu.
sudo systemctl restart graylog-server
Lassen Sie den Graylog-Server beim Systemstart automatisch starten.
sudo systemctl enable graylog-server
Sie können die Server-Startprotokolle überprüfen, und es wird Ihnen bei der Fehlerbehebung bei Graylog im Falle eines Problems nützlich sein.
sudo tail -f /var/log/graylog-server/server.log
Bei erfolgreichem Start des Graylog-Servers sollten Sie folgende Meldung in der Logdatei erhalten.
2019-02-22T10:07:49.398+05:30 INFO [ServerBootstrap] Graylog server up and running.
Graylog aufrufen
Die Webschnittstelle lauscht jetzt auf Port 9000, verweisen Sie Ihren Browser auf
http://ip.add.re.ss:9000Melden Sie sich mit dem Benutzernamen admin an und das Passwort, das Sie unter root_password_sha2 konfiguriert haben aufserver.conf .

Sobald Sie sich angemeldet haben, sehen Sie die Seite „Erste Schritte“.

Klicken Sie auf System>> Übersicht um den Status des Graylog-Servers zu erfahren.

Graylog-Eingaben erstellen
Die Graylog-Eingabe muss konfiguriert werden, um die Protokolle von externen Quellen zu erhalten, d. h. Syslog oder ein beliebiges Protokollierungssystem.
Für dieses Beispiel richten wir eine Eingabe zum Empfangen von Protokollen von Syslog auf Portnummer UDP 1514 ein. Denn wenn Sie versuchen, eine Eingabe an einem der privilegierten Ports, einer beliebigen TCP/UDP-Portnummer unter 1024, vorzunehmen, sehen Sie, dass die Berechtigung verweigert wird Fehler in Graylog-Protokollen.
Also werden wir eine Eingabe erstellen, um auf Port 1514 zu starten.
Klicken Sie auf System>> Eingänge >> wählen Sie Syslog UDP und klicken Sie dann auf Neue Eingabe starten.

Geben Sie die Werte ein und klicken Sie dann auf Speichern.
Knoten: Wählen Sie Ihren Graylog-Knoten aus
Titel: Benennen Sie Ihre Eingabe
Bindungsadresse: 0.0.0.0 (Standardeinstellung beibehalten)
Port: 1514

Rsyslog konfigurieren
Nachdem Sie die Eingaben erstellt haben, konfigurieren Sie Rsyslog oder leiten Sie alle Systemprotokolle an Ihren Graylog-Server weiter.
Bearbeiten Sie die Rsyslog-Konfigurationsdatei.
sudo nano /etc/rsyslog.conf
Eine typische Rsyslog-Konfiguration sieht wie folgt aus, um Protokolle auf UDP 1514 zu senden.
*.info;mail.none;authpriv.none;cron.none @192.168.1.10:1514
Starten Sie den Rsyslog-Dienst neu, um Protokolle zu senden.
systemctl restart rsyslog
Protokolle mit Graylog anzeigen
Warten Sie einige Minuten. Sobald das Ereignis generiert wird, sollten Sie beginnen, Protokollnachrichten vom Client-Computer zu erhalten.
Der folgende Screenshot zeigt die von Graylog empfangenen Protokolle (Graylog-Konsole >>Suchen h ).

Schlussfolgerung
Sie haben Graylog 3.0 erfolgreich auf Ubuntu 18.04 / Ubuntu 16.04 installiert und Graylog so konfiguriert, dass es Rsyslog-Protokolle von externen Quellen empfängt. Als weitere Lektüre können Sie versuchen, Nginx oder Apache als Reverse-Proxy zu konfigurieren und HTTPS für die Graylog-Weboberfläche einzurichten.