Graylog ist ein kostenloses Open-Source-Protokollverwaltungstool, das auf Java, Elasticsearch und MongoDB basiert und zum Sammeln, Indizieren und Analysieren von Serverprotokollen von einem zentralen Ort aus verwendet werden kann. Sie können die SSH-Anmeldungen und ungewöhnliche Aktivitäten zum Debuggen von Anwendungen und Protokollen mit Graylog einfach überwachen. Graylog bietet eine leistungsstarke Abfragesprache, Warnfunktionen, eine Verarbeitungspipeline für die Datentransformation und vieles mehr. Sie können die Funktionalität von Graylog über eine REST-API und Add-ons erweitern.
Graylog besteht aus drei Komponenten:
- Elasticsearch:Es speichert alle eingehenden Nachrichten und bietet eine Suchfunktion.
- MongoDB:Es wird für die Datenbank verwendet, speichert die Konfigurationen und Metainformationen.
- Graylog-Server:Er empfängt und verarbeitet Nachrichten von verschiedenen Eingängen und bietet eine Webschnittstelle für Analyse und Überwachung.
In diesem Tutorial erklären wir, wie man Graylog2 auf Debian 9 Server installiert.
Voraussetzung
- Ein Server mit Debian 9.
- Mindestens 4 GB RAM.
- Eine statische IP-Adresse 192.168.0.187, die auf Ihrem Server eingerichtet ist.
1 Erforderliche Pakete installieren
Bevor Sie beginnen, müssen Sie Java 8 und andere erforderliche Pakete auf Ihrem System installieren. Nicht alle erforderlichen Pakete sind im Standard-Repository von Debian 9 verfügbar, daher müssen Sie Debian Backports zur Liste der Paketquellen hinzufügen. Melden Sie sich zuerst mit dem Root-Benutzer an und erstellen Sie eine backport.list-Datei:
nano /etc/apt/sources.list.d/backport.list
Fügen Sie die folgende Zeile hinzu:
deb http://ftp.debian.org/debian stretch-backports main
Speichern Sie die Datei, wenn Sie fertig sind, und aktualisieren Sie dann Ihr System mit dem folgenden Befehl:
apt-get update -y
apt-get upgrade -y
Sobald Ihr System auf dem neuesten Stand ist, installieren Sie alle Pakete mit dem folgenden Befehl:
apt-get install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen -y
Sobald alle erforderlichen Pakete installiert sind, können Sie mit der Installation von MongoDB fortfahren.
2 Installieren Sie MongoDB
MongoDB ist erforderlich, um die Konfigurations- und Metainformationen zu speichern. MongoDB ist im Standard-Repository von Debian 9 verfügbar, sodass Sie MongoDB installieren können, indem Sie einfach den folgenden Befehl ausführen:
apt-get install mongodb-server -y
Sobald MongoDB installiert ist, können Sie mit der Installation von Elasticsearch fortfahren.
3 Installieren Sie Elasticsearch
Elasticsearch fungiert als Suchserver, der alle vom Graylog-Server gesendeten Protokolle speichert und die Nachrichten anzeigt, wann immer Sie es anfordern. Elasticsearch ist im Standard-Repository von Debian 9 nicht verfügbar. Sie müssen das Elasticsearch-Repository zur Debian-Paketquelle hinzufügen.
Laden Sie zuerst den Elasticsearch GPG-Schlüssel herunter und fügen Sie ihn mit dem folgenden Befehl hinzu:
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Erstellen Sie als Nächstes eine Elasticsearch-Repository-Datei mit dem folgenden Befehl:
nano /etc/apt/sources.list.d/elasticsearch.list
Fügen Sie die folgende Zeile hinzu:
deb https://packages.elastic.co/elasticsearch/2.x/debian stable main
Speichern Sie die Datei, wenn Sie fertig sind, und aktualisieren Sie dann das Repository, indem Sie den folgenden Befehl ausführen:
apt-get update -y
Installieren Sie als Nächstes Elasticsearch, indem Sie den folgenden Befehl ausführen:
apt-get install elasticsearch -y
Sobald Elasticsearch installiert ist, müssen Sie die Hauptkonfigurationsdatei von Elasticsearch ändern:
nano /etc/elasticsearch/elasticsearch.yml
Nehmen Sie die folgenden Änderungen vor:
cluster.name:greylognetwork.host:192.168.0.187discovery.zen.ping.timeout:10sdiscovery.zen.ping.multicast.enabled:falsediscovery.zen.ping.unicast.hosts:["192.168.0.187:9300" ]
Speichern und schließen Sie die Datei, wenn Sie fertig sind, starten Sie dann den Elasticsearch-Dienst und aktivieren Sie ihn für den Start beim Booten:
systemctl startet elastische Suche
systemctl aktiviert elastische Suche
Führen Sie nach einigen Sekunden Folgendes aus, um zu testen, ob Elasticsearch ordnungsgemäß ausgeführt wird:
curl -XGET 'http://192.168.0.187:9200/_cluster/health?pretty=true'
Stellen Sie sicher, dass die Ausgabe den Clusterstatus als „grün“ anzeigt:
{ „cluster_name“ :„graylog“, „status“ :„green“, „timed_out“ :false, „number_of_nodes“ :1, „number_of_data_nodes“ :1, „active_primary_shards“ :1, „active_shards“ :1, „relocating_shards“ :0, „initializing_shards“ :0, „unassigned_shards“ :1, „delayed_unassigned_shards“ :0, „number_of_pending_tasks“ :0, „number_of_in_flight_fetch“ :0, „task_max_waiting_in_queue_millis“ :0, „5_cent“ 5_cent. vor>Sobald Elasticsearch installiert ist und einwandfrei funktioniert, können Sie mit dem nächsten Schritt fortfahren.
4 Graylog installieren
Graylog ist im Standard-Repository von Debian 9 nicht verfügbar, daher müssen Sie zuerst das Graylog 2-Repository herunterladen und installieren. Sie können dies tun, indem Sie den folgenden Befehl ausführen:
wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb
dpkg -i greylog-2.2-repository_latest.debSobald das Repository installiert ist, aktualisieren Sie das Repository und installieren Sie den Graylog-Server mit dem folgenden Befehl:
apt-get update -y
apt-get install Graylog-Server -yNach der Installation von Graylog müssen Sie ein Geheimnis festlegen, um die Benutzerpasswörter zu sichern, und außerdem ein Hash-Passwort (sha256) für den Root-Benutzer festlegen.
Generieren Sie zuerst password_secret mit dem folgenden Befehl:
pwgen -N 1 -s 96Sie sollten die folgende Ausgabe sehen:
TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyCGenerieren Sie als Nächstes mit dem folgenden Befehl ein Hash-Passwort für den Root-Benutzer:
echo -n ihradminpasswort | sha256sumSie sollten die folgende Ausgabe sehen:
e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750eeHinweis:Merken Sie sich beide Passwortschlüssel, da beide Schlüssel in der server.conf konfiguriert werden müssen.
Als nächstes müssen Sie die Hauptkonfigurationsdatei des Graylog-Servers ändern, die sich im Verzeichnis /etc/graylog/server/ befindet:
nano /etc/graylog/server/server.confNehmen Sie die folgenden Änderungen vor:
is_master =truenode_id_file =/etc/graylog/server/node-id########past-your-password-secret-here##########password_secret =TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZWLVqAvW2DcueI6admin_root##NKEzHoeI6admin_root##NKEzHoeI6 #####past-your-root-hash-password-here##########root_password_sha2 =e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750eeroot_timezone =UTCplugin_dir =/usr/share/graylog-server/pluginrest_listen_uri =http://0.0.0.0 :9000 / api / rest_enable_cors =trueweb_listen_uri =http://0.0.0.0:9000/rotation_strategy =countelasticsearch_max_docs_per_index =20000000elasticsearch_max_number_of_indices =7retention_strategy =deleteelasticsearch_shards =4elasticsearch_replicas =1elasticsearch_index_prefix =graylogallow_leading_wildcard_searches =trueallow_highlighting =falseelasticsearch_cluster_name =graylogelasticsearch_discovery_zen_ping_unicast_hosts =192.168.0.187:9300elasticsearch_http_enabled =falseelasticsearch_network_host =0,0 . 00elasticsearch_discovery_initial_state_timeout =3selasticsearch_analyzer =standardoutput_batch_size =500output_flush_interval =1output_fault_count_threshold =5output_fault_penalty_seconds =30processbuffer_processors =5outputbuffer_processors =3processor_wait_strategy =blockingring_size =65536inputbuffer_ring_size =65536inputbuffer_processors =2inputbuffer_wait_strategy =blockingmessage_journal_enabled =truemessage_journal_dir =/ var / lib / graylog-server / journalasync_eventbus_processors =2lb_recognition_period_seconds =3alert_check_interval =60mongodb_uri =mongodb:/ /localhost/graylogmongodb_max_connections =1000mongodb_threads_allowed_to_block_multiplier =5content_packs_dir =/usr/share/graylog-server/contentpackscontent_packs_auto_load =grok-patterns.jsonproxyed_requests_thread_pool_size =32Speichern und schließen Sie die Datei, wenn Sie fertig sind, starten Sie dann den Graylog-Dienst und aktivieren Sie ihn für den Start beim Booten:
systemctl startet Graylog-Server
systemctl aktiviert Graylog-ServerSobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren
5 Firewall konfigurieren
Standardmäßig lauscht die Graylog-Weboberfläche auf Port 9000, daher müssen Sie Port 9000 durch die UFW-Firewall zulassen. Die UFW-Firewall ist in Debian 9 nicht installiert. Sie müssen sie also zuerst installieren. Sie können es installieren, indem Sie den folgenden Befehl ausführen:
apt-get install ufw -ySobald UFW installiert ist, aktivieren Sie es, indem Sie den folgenden Befehl ausführen:
ufw aktivierenLassen Sie als Nächstes Port 9000 durch die UFW-Firewall zu, indem Sie den folgenden Befehl ausführen:
ufw erlaubt 9000Sie können den Status der UFW-Firewall jederzeit überprüfen, indem Sie den folgenden Befehl ausführen.
ufw-StatusSobald die Firewall konfiguriert ist, können Sie mit dem nächsten Schritt fortfahren.
6 Greifen Sie auf die Graylog-Weboberfläche zu
Die Graylog-Weboberfläche überwacht Port 9000. Öffnen Sie nun Ihren Webbrowser und geben Sie die URL http://192.168.0.187:9000 ein , sollten Sie den folgenden Bildschirm sehen:
Melden Sie sich mit dem Benutzernamen "admin an " und das Passwort, das Sie unter root_password_sha2 auf server.conf konfiguriert haben. Sie sollten den folgenden Bildschirm sehen:
Als nächstes müssen Sie die Eingabe hinzufügen, um die Syslog-Nachricht mit UDP zu erhalten. Um die Eingabe hinzuzufügen, klicken Sie auf System -> wählen Sie Eingaben -> Syslog UDP -> klicken Sie auf die Schaltfläche Neue Eingabe starten, Sie sollten den folgenden Bildschirm sehen:
Füllen Sie alle Details wie Titel, Hafen, Bindungsadresse aus und klicken Sie schließlich auf die Schaltfläche Speichern, Sie sollten den folgenden Bildschirm sehen:
Jetzt empfängt der Graylog-Server die Systemprotokolle über den Port 8514 vom Client oder Server.
Auf dem Client-System müssen Sie rsyslog so konfigurieren, dass es die Systemprotokollmeldungen an den Graylog-Server sendet. Sie können dies tun, indem Sie die Datei rsyslog.conf bearbeiten:
nano /etc/rsyslog.confFügen Sie die folgenden Zeilen hinzu:
# stellt UDP-Syslog-Empfang bereit$ModLoad imudp$UDPServerRun 8514$template GRAYLOGRFC5424,"%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n" *.* @192.168.0.187:8514;GRAYLOGRFC5424Speichern Sie die Datei und starten Sie den rsyslog-Dienst neu, um diese Änderungen zu übernehmen:
systemctl startet rsyslog neuAls nächstes klicken Sie auf dem Graylog-Server auf "Graylog-Quellen", Sie können das ssh-Protokoll mit fehlgeschlagenen Anmeldeversuchen im folgenden Bildschirm sehen.
Schlussfolgerung
Herzliche Glückwünsche! Sie haben den Graylog-Server erfolgreich auf Debian 9 installiert und konfiguriert. Sie können jetzt ganz einfach die Protokolle und die Analyse der Systemprotokolle von der zentralen Stelle aus einsehen. Sie können Graylog auch anpassen und je nach Bedarf eine andere Art von Protokollen senden. Weitere Informationen finden Sie auf der Graylog-Dokumentationsseite http://docs.graylog.org/en/2.2/pages/getting_started.html. Fühlen Sie sich frei, mich zu kommentieren, wenn Sie Fragen haben.