Sammeln von Synology LOGs in Elasticsearch und Visualisieren in Grafana

Brunnen, In einem weiteren Beitrag geht es darum, Protokolle zu sammeln und zu visualisieren, um zu verstehen, was in unserer Infrastruktur passiert, heute haben wir ein Dokument, in dem wir sehen werden, wie wir die Logs einer Synology an unseren Logstash senden und sie dann in Elasticsearch speichern und schließlich mit Grafana visualisieren können.

Also, Stock für den Affen, der aus Gummi besteht! (Ich bin so alt, Joghurt…) geht! Wenn wir ein NAS des Herstellers Synology haben und wissen wollen, was darin passiert, Am besten wirft man sich immer in die Baumstämme, Aber es ist irgendwie langweilig, zeilenweise Text zu lesen, die nicht immer in Echtzeit ablaufen, die wir nur schwer verstehen können… Nun, das ist es, was (und andere Dinge) wir haben Elastic Stack, wo Synology die Protokolle an Logstash sendet, Dort werden wir sie empfangen und behandeln, die Informationen, an denen wir interessiert sind, in verschiedene Felder zu unterteilen und sie dann in Elasticsearch zu speichern. Um die Daten zu visualisieren, können wir immer Kibana verwenden, aber ich bin eher ein Grafana-Fan, Es tut mir leid, Also, welche Wahl es auch immer ist, Sie werden in der Lage sein, diese gesammelten Daten in verschiedenen Formaten zu visualisieren, in Tabellen, Grafik, Käsesorten, Weltkarte… So interpretieren Sie, was in Synology passiert, wer darauf zugreift oder dies versucht, und was es bewirkt… Sie können es wie gewohnt sehen, in Echtzeit oder im historischen Modus, um Abfragen durchzuführen. Gestartet!

 

Zuerst müssen wir natürlich den Elastic Stack-Teil installiert haben, Was wurdeLogstashElasticsearch (Englisch) undKibana; dann wäre es, unsere Synology anzuweisen, die Protokolle an Logstash zu senden, zum Hafen unserer Wahl, Wir erfinden einen, vom “Datenarchiv" > “Senden von Protokollen” > Wir ermöglichen “Senden von Protokollen an einen Syslog-Server”, Wir geben die Logstash-IP und den Port und TCP oder UDP Ihrer Wahl an. Und wir wenden die Änderungen an.

 

Eingabe {
        TCP {
                Typ => "Synologie"
                Anschluss => "1516"
                -Tags => ["Synologie"]
        }
}

Filter {

        wenn [Art] == "Synologie" {
                        Begreifen {
                            Übereinstimmung => { "Nachricht" => [
                              "^<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{HOSTNAME:host_title} WinFileService-Ereignis: %{WORT:Aktion}, Pfad: %{GIERIGE DATEN:Pfad}, Datei/Ordner: %{WORT:path_type}, Größe: %{BASE10NUM:file_size} %{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:Mannschaft}\(%{IP:src_ip}\)\] Via \[%{DATUM:Protokoll}\] %{GIERIGE DATEN:Nachricht} \[%{DATUM:shared_folder}\]",
                              "^<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{HOSTNAME:host_title} Verbindung: Benutzer \[(%{NUTZERNAME:Nutzername})?\] Von \[%{IP:src_ip}\] %{GIERIGE DATEN:Nachricht}",
                              "^<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{HOSTNAME:host_title} Verbindung[%{INT:Id_proc}\]: SYSTEM: %{GIERIGE DATEN:Nachricht}",
                              "^<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{HOSTNAME:host_title} System %{NUTZERNAME:Nutzername}: %{GIERIGE DATEN:Nachricht}"
                                       ]
                            }
                        }
        }
}

Ausgabe {

        wenn ([Art]=="Synologie"){

                ElasticSearch (Englisch) {
                   Index => "Synology-%{+JJJJ. MM.dd}"
                   hosts=> "DIRECCION_IP_ELASTICSEARCH:9200"
                }

        }
}

Nun gehen wir zu unserem Logstash, Und dort können wir Filter erstellen, um die verschiedenen Felder der verschiedenen Protokolle, die wir erhalten, zu trennen. Wie immer verbesserungswürdig, aber diese Groks werden gut für uns sein, zumindest für eine Synology DSM mit einer Version 7.0. Also haben wir eine Konfigurationsdatei erstellt, 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. Danach wie immer, Wir gehen zu Kibana und sobald die Daten eintreffen, können wir zu "Management" gehen. > "Stack-Verwaltung" > "Kibana" > "Index-Muster" > "Indexmuster erstellen", um das Indexmuster zu erstellen, Wie ich schon sagte, wie gewöhnlich (In diesem Fall und ohne die Anführungszeichen) 'synology-*' und wir werden die Daten bereits korrekt in Elasticsearch gespeichert haben. Jetzt konnten wir uns von “Analytik” > "Entdecken" Sie unseren Synology-Index und visualisieren Sie, dass er Daten sammelt.

 

Und dann, nach dem Erstellen des Index in Kibana, nun sollten wir in unserem Grafana eine "Datenquelle" erstellen, die gegen unsere Elasticsearch und den Synology-Index verweist. Dann heißt es, Ihrer Fantasie freien Lauf zu lassen, Erstellen eines Dashboards mit verschiedenen Dashboards, mit unterschiedlichen Daten zur Visualisierung, Einer des Stils Sankey um Ursprungs-/Ziel-IPs und den gesendeten Datenverkehr anzuzeigen, im Spaltenformat, inPatt um bestimmte Daten einzusehen, z. B. die korrekten Logins, Unrichtig, Die Verbindungen, die Dateien, die erstellt werden, Modifizieren, Eliminieren, Die Benutzer, die die Aktion ausführen...

 

Empfohlene Beiträge

Verfasser

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Zögern Sie nicht, mich zu kontaktieren, Ich werde versuchen, dir zu helfen, wann immer ich kann, Teilen ist Leben ;) . Genießen Sie Dokumente!!!

GLPI-Installation

21 Oktober 2021