Sammeln von Synology LOGs in Elasticsearch und Anzeigen in Grafana

gut, Es gibt einen weiteren Beitrag über das Sammeln von Protokollen und das Anzeigen dieser, um zu verstehen, was in unserer Infrastruktur passiert, Heute haben wir ein Dokument, in dem wir sehen, wie Sie die Logs einer Synology an unseren Logstash senden und dann in Elasticsearch speichern und schließlich mit Grafana anzeigen.

so, Rohrstock zum Affen aus Gummi! (Wie alt bin ich, Agur-Joghurt…) Wille! Wenn wir ein NAS des Herstellers Synology haben und wissen wollen, was darin passiert, am besten werfen wir uns immer ins holz, aber es ist ein bisschen langweilig, Zeilen und Zeilen von Text zu lesen, das geht nicht immer in echtzeit, dass es für uns schwer zu verstehen ist… Gut dafür (Und andere Dinge) tenemos Elastischer Stapel, wohin die Synology die Protokolle an Logstash sendet, dort werden wir sie empfangen und behandeln, Trennen Sie die Informationen, die uns interessieren, in verschiedene Felder und werden dann in Elasticsearch gespeichert. Zur Visualisierung der Daten können wir immer Kibana . verwenden, aber ich bin mehr von Grafana, Verzeihung, also was auch immer für eine wahl es ist, Sie können diese gesammelten Daten in verschiedenen Formaten anzeigen, in Tabellen, Grafik, Fragen, mapamundis… Sie werden also interpretieren, was in der Synology passiert, wer zugreift oder versucht, und was macht er… man sieht es wie immer, in Echtzeit oder im historischen Modus, um Anfragen zu stellen. wir begannen!

 

Zuerst müssen wir natürlich das Elastic Stack-Teil installieren, was warLogstashElasticsearch undKibana; dann wäre es, unsere Synology anzuweisen, die Logs an Logstash zu senden, zum Hafen, den wir wollen, wir werden einen erfinden, von „Aufnahmezentrum" > „Senden von Aufzeichnungen“ > wir ermöglichen „Protokolle an einen Syslog-Server senden“, wir geben die IP von Logstash und den Port und TCP oder UDP der Wahl an. Und wir übernehmen die Änderungen.

 

Eingang {
        tcp {
                Typ => "Synology"
                port => "1516"
                Tags => ["Synology"]
        }
}

Filter {

        ob [Art] == "Synology" {
                        grok {
                            Übereinstimmung => { "Botschaft" => [
                              "^<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{Hostname:host_title} WinFileService-Ereignis: %{WORT:Aktion}, Pfad: %{GREEDYDATA:Pfad}, Aktenordner: %{WORT:Pfadtyp}, Größe: %{BASIS10NUM:Dateigröße} %{WORT:file_size_unit}, Benutzer: %{NUTZERNAME:Nutzername}, IP: %{IP:src_ip}",
                              "^<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{Hostname:host_title} Verbindung: Benutzer \[%{NUTZERNAME:Nutzername}\] von \[%{Hostname:Ausrüstung}\(%{IP:src_ip}\)\] über \[%{DATEN:Protokoll}\] %{GREEDYDATA:Nachricht} \[%{DATEN:freigegebenen Ordner}\]",
                              "^<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{Hostname:host_title} Verbindung: Benutzer \[(%{NUTZERNAME:Nutzername})?\] von \[%{IP:src_ip}\] %{GREEDYDATA:Nachricht}",
                              "^<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{Hostname:host_title} Verbindung[%{INT:Id_proc}\]: SYSTEM: %{GREEDYDATA:Nachricht}",
                              "^<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{Hostname:host_title} System %{NUTZERNAME:Nutzername}: %{GREEDYDATA:Nachricht}"
                                       ]
                            }
                        }
        }
}

Ausgabe {

        ob ([Art]=="Synology"){

                Elasticsearch {
                   Index => "Synologie-%{+JJJJ.MM.tt}"
                   Gastgeber => "DIRECTION_IP_ELASTICSEARCH:9200"
                }

        }
}

Jetzt gehen wir zu unserem Logstash, und dort können wir Filter erstellen, um die verschiedenen Felder der verschiedenen Protokolle zu trennen, die wir erhalten. Kann wie immer verbessert werden, aber diese Grok werden uns zumindest für eine Synology DSM mit Version wert sein 7.0. Also erstellen wir eine Konfigurationsdatei, zum Beispiel ‚/etc/logstash/conf.d/synology.conf‘ und mit diesem Inhalt werden wir etwas tun.

 

Sobald die Konfigurationsdatei erstellt wurde, Denken Sie daran, den Logstash-Dienst neu zu starten, um ihn neu zu laden. Nach wie immer, Wir werden nach Kibana gehen und sobald die Daten eingegeben sind, können wir zu "Management" gehen. > „Stapelverwaltung“ > „Kibana“ > „Indexmuster“ > "Indexmuster erstellen", um das Indexmuster zu erstellen, ich sagte:, wie gewöhnlich (in diesem Fall und ohne die Anführungszeichen) ‚Synology-*‘ und wir haben die Daten bereits in Elasticsearch korrekt gespeichert. Jetzt konnten wir uns verbinden von „Analytik“ > "Entdecken" Sie unseren Synology-Index und sehen Sie, dass er Daten sammelt.

 

Und dann sind wir, nach dem Erstellen des Index in Kibana, Jetzt sollten wir in unserem Grafana eine "Datenquelle" erstellen, die auf unsere Elasticsearch und den Synology-Index verweist. Dann lässt es schon die Fantasie fliegen, ein Dashboard mit verschiedenen Panels erstellen, mit verschiedenen Daten zur Anzeige, einer von stil Sankey um Quell-/Ziel-IPs und den gesendeten Datenverkehr zu sehen, im Spaltenformat, inzeichnen um bestimmte Daten von beispielsweise den richtigen Logins zu sehen, falsch, die Verbindungen, die erstellten Dateien, ändern, sie beseitigen, die Benutzer, die die Aktion ausführen ...

 

Hector Herrero
Letzte Artikel von Hector Herrero (Alle anzeigen)