Graylog ist ein Open-Source-Protokollverwaltungstool, mit dem Sie alle Maschinenprotokolle zentral sammeln, indizieren und analysieren können. Diese Anleitung hilft Ihnen bei der Installation von Graylog auf CentOS 7 / RHEL 7.
Komponenten
- MongoDB – Eine Datenbank zum Speichern der Konfigurationen und Metainformationen.
- Elasticsearch – Es speichert die vom Graylog-Server empfangenen Protokollnachrichten und bietet eine Möglichkeit, sie bei Bedarf zu durchsuchen. Elasticsearch ist ein Ressourcen-Monger, da es Daten indiziert, also weisen Sie mehr Speicher zu und verwenden Sie SAS- oder SAN-Festplatten.
- Graylog-Server – Dieser parst Protokolle, die aus verschiedenen Eingaben stammen, und bietet eine integrierte Webschnittstelle zur Handhabung dieser Protokolle.
Voraussetzungen
Stellen Sie sicher, dass Ihr System mit dem EPEL-Repository konfiguriert ist.
Installieren Sie die erforderlichen Pakete für die Graylog-Installation.
yum -y install wget pwgen
Für Elasticsearch muss Java auf dem Computer installiert sein. Installieren Sie also entweder OpenJDK oder Oracle JDK.
yum install -y java-1.8.0-openjdk-headless
Überprüfen Sie die Java-Version.
Java-Version
Ausgabe:
openjdk-Version „1.8.0_191“OpenJDK-Laufzeitumgebung (Build 1.8.0_191-b12)OpenJDK 64-Bit-Server-VM (Build 25.191-b12, gemischter Modus)
Elasticsearch installieren
Elasticsearch ist eine der wichtigen Komponenten im Graylog-Setup. Es speichert die Daten aus der Graylog-Eingabe und zeigt die Meldungen immer dann an, wenn eine Benutzeranfrage über die integrierte Graylog-Webschnittstelle gestellt wird.
Elasticsearch wird hier hauptsächlich verwendet, um die Daten/Protokolle zu indizieren und die Suchfunktion bereitzustellen, wenn die Graylog-Webschnittstelle Informationen anfordert.
Dieses Handbuch behandelt die grundlegende Konfiguration, die für Graylog erforderlich ist.
Importieren Sie den GPG-Signaturschlüssel vor der Installation.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Erstellen Sie eine Repository-Datei, um die neueste Version des Elasticsearch-Pakets aus dem offiziellen Repository zu erhalten.
vi /etc/yum.repos.d/elasticsearch.repo
Fügen Sie den folgenden Inhalt der obigen Datei hinzu.
[elasticsearch-6.x]name=Elasticsearch-Repository für 6.x-Paketebaseurl=https://artifacts.elastic.co/packages/6.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/ GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md
Installieren Sie nun das Elasticsearch-Paket mit dem Befehl yum.
yum install -y elasticsearch
Laden Sie den systemctl-Daemon neu und aktivieren Sie Elasticsearch, damit es beim Systemstart automatisch gestartet wird.
systemctl daemon-reloadsystemctl enable elasticsearch
Damit Elasticsearch mit dem Graylog-Setup funktioniert, müssen wir den Clusternamen auf graylog
setzen . Bearbeiten Sie die Datei elasticsearch.yml.
vi /etc/elasticsearch/elasticsearch.yml
Aktualisieren Sie es wie unten gezeigt.
cluster.name:Graylog
Starten Sie Elasticsearch neu.
systemctl startet Elasticsearch neu
Warten Sie eine Minute, bis Elasticsearch vollständig neu gestartet wurde. Elastisearch sollte jetzt 9200 für die Verarbeitung von HTTP-Anforderungen überwachen. Verwenden Sie den CURL-Befehl, um die Antwort zu überprüfen.
curl -X GET http://localhost:9200
Der Clustername sollte graylog. sein
{ "name" :"DF8QK3-", "cluster_name" :"graylog", "cluster_uuid" :"_wAgUfN9RJeQ0npCKBswVA", "version" :{ "number" :"6.6.0", "build_flavor" :"default “, „build_type“ :„rpm“, „build_hash“ :„a9861f4“, „build_date“ :„2019-01-24T11:27:09.439740Z“, „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"}
Führen Sie eine Zustandsprüfung des Elasticsearch-Clusters durch.
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Stellen Sie sicher, dass der Clusterstatus grün ist .
{ „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, „peractive_shards“ 0,0_cent. vor>Installieren Sie MongoDB
MongoDB fungiert als Datenbank zum Speichern der Konfigurationen und Metainformationen. Wir werden das offizielle Repository von MongoDB verwenden, um die neueste Version von MongoDB zu erhalten.
vi /etc/yum.repos.d/mongodb-org-4.0.repoFügen Sie der obigen Datei Repository-Informationen hinzu.
[mongodb-org-4.0]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/gpgcheck=1enabled=1gpgkey=https:// www.mongodb.org/static/pgp/server-4.0.ascInstallieren Sie die Community Edition von MongoDB mit dem folgenden Befehl.
yum install -y mongodb-orgStarten Sie den MongoDB-Dienst und aktivieren Sie ihn beim Systemstart.
systemctl startet mongodsystemctl aktiviert mongodGraylog installieren
Der Graylog-Server akzeptiert und verarbeitet die Protokollmeldungen, die von den verschiedenen Eingängen kommen, zeigt Daten zu Anfragen an, die von der Graylog-Weboberfläche kommen.
Laden Sie das Graylog 3.x-Repository herunter und installieren Sie es.
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.rpmInstallieren Sie den Graylog-Server mit dem folgenden Befehl.
yum -y installiere den Graylog-ServerBearbeiten Sie die server.conf-Datei, um mit der Graylog-Konfiguration zu beginnen.
vi /etc/graylog/server/server.confVerwenden Sie den folgenden Befehl, um ein Geheimnis zu erstellen
pwgen -N 1 -s 96Ausgabe:
OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gPPlatzieren Sie das Geheimnis wie unten in server.conf
password_secret = OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gPLegen Sie das Hash-Passwort für den Root-Benutzer fest, d. h. den Administrator von Graylog. Sie benötigen dieses Passwort, um sich im Graylog-Web anzumelden.
Wenn Sie jemals das vergessene Passwort von admin ändern/zurücksetzen möchten, können Sie die server.conf bearbeiten/aktualisieren mit einem gehashten Passwort.
Generieren Sie mit dem folgenden Befehl ein Hash-Passwort. Ersetzen Sie IhrPasswort mit Ihrer Wahl.
echo -n IhrPasswort | sha256sumAusgabe:
e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951Geben Sie das Hash-Passwort ein.
root_password_sha2 = e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951Sie können eine E-Mail-Adresse für den Admin-Benutzer einrichten.
root_email ="[email protected] "Legen Sie die Zeitzone des Root-Benutzers (Admin) fest.
root_timezone =UTCLegen Sie nur einen Master-Knoten fest, indem Sie die folgende Variable definieren, die Standardeinstellung ist wahr.
Wenn dieser Server Ihr zweiter Graylog-Knoten in Ihrer Umgebung ist, setzen Sie ihn auf „false“, um diesen Knoten als Slave zu machen. Der Master-Knoten führt einige periodische Aufgaben aus, die Slave-Knoten nicht ausführen.
is_master =trueLegen Sie die Anzahl der Protokollmeldungen fest, die pro Index aufbewahrt werden sollen. Es wird empfohlen, mehrere kleinere Indizes anstelle von größeren zu haben.
elasticsearch_max_docs_per_index =20000000Der folgende Parameter definiert eine Gesamtzahl von Indizes. Ist diese Zahl erreicht, wird der alte Index gelöscht.
elasticsearch_max_number_of_indices =20Die 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 =1Dies 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 =0Graylog-Weboberfläche installieren
Ab der Graylog-Version 2.x wird das Webinterface direkt vom Graylog-Server bedient. Aktivieren Sie die Graylog-Webschnittstelle, indem Sie die Datei server.conf bearbeiten.
vi /etc/graylog/server/server.confÄndern Sie die Einträge, damit sich das Graylog-Webinterface mit dem Graylog-Server verbinden kann. Ersetzen Sie 192.168.1.10 durch Ihre System-IP-Adresse.
http_bind_address =192.168.1.10 :9000Starten Sie den Graylog-Dienst neu.
systemctl-Daemon-reloadsystemctl-Neustart des Graylog-ServersLassen Sie den Graylog-Server beim Systemstart automatisch starten.
systemctl aktiviert Graylog-ServerSie können die Startprotokolle des Servers überprüfen; Es ist hilfreich für Sie, Graylog bei Problemen zu beheben.
tailf /var/log/graylog-server/server.logWenn alles gut geht, sollten Sie die folgende Meldung in der server.log-Datei sehen.
2019-02-25T21:00:23.157+05:30 INFO [ServerBootstrap] Graylog-Server läuft.Firewall
In CentOS 7 / RHEL 7 sind Firewall-Regeln so eingestellt, dass sie standardmäßig den größten Teil des Datenverkehrs blockieren, der von externen Computern kommt. Sie müssten Zulassungsregeln hinzufügen, damit Graylog korrekt funktioniert.
firewall-cmd --permanent --add-port=9000/tcpFirewalld neu laden, um die neuen Regeln zu übernehmen.
firewall-cmd --reloadGreifen Sie auf die Graylog-Weboberfläche zu
Die Webschnittstelle lauscht nun auf Port 9000. Richten 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 auf server.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 514 ein.
Aber es gibt ein Problem. Wenn Sie versuchen, eine Eingabe an einem der privilegierten Ports, einer beliebigen TCP/UDP-Portnummer unter 1024, vorzunehmen, wird in den Graylog-Protokollen der Fehler „Berechtigung verweigert“ angezeigt.
Um das Problem zu lösen, erstellen wir eine Eingabe, die auf Port 1514 beginnt, und leiten den Datenverkehr von 514 auf 1514 mit Firewall-Regeln um.
Klicken Sie auf System>> Eingänge >> wählen Sie Syslog UDP und klicken Sie dann auf Neue Eingabe starten.
![]()
Füllen Sie die unten angezeigten Werte aus.
Knoten: Wählen Sie Ihren Graylog-Knoten aus
Titel: Benennen Sie Ihre Eingabe
Bindungsadresse: 0.0.0.0 (Standardeinstellung beibehalten)
Port: 1514
![]()
Stellen Sie sicher, dass sich die erstellte Syslog-Eingabe im Ausführungsstatus befindet.
![]()
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.
vi /etc/rsyslog.confEine typische Rsyslog-Konfiguration sieht wie folgt aus, um Protokolle auf UDP 514 zu senden.
Wenn Sie UDP 514 nicht verwenden möchten und Protokolle direkt an UDP 1514 von Graylog senden möchten, können Sie die Portnummer in der Rsyslog-Konfigurationsdatei*.info;mail.none;authpriv.none;cron ändern. keine @192.168.1.10:514Starten Sie den Rsyslog-Dienst neu, um Protokolle zu senden.
systemctl startet rsyslog neuFirewall
Konfigurieren Sie die Firewall basierend auf der Rsyslog-Konfiguration, die Sie im vorherigen Schritt vorgenommen haben.
Port 514
Führen Sie die folgenden Befehle auf dem Graylog-Server aus, um den Datenverkehr, der auf Port UDP 514 kommt, an UDP 1514 der Graylog-Eingabe umzuleiten.
firewall-cmd --add-masquerade --permanentfirewall-cmd --add-forward-port=port=514:proto=udp:toport=1514 --permanentfirewall-cmd --reloadPort 1514
Führen Sie die folgenden Befehle auf dem Graylog-Server aus, damit die Portnummer UDP 1514 auf der Firewall Protokolle von Rsyslog empfangen kann.
firewall-cmd --permanent --add-port=1514/udpfirewall-cmd --reloadProtokolle 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 CentOS 7 / RHEL 7 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.