Diese Anwendung ist als Ersatz für udplogbeat gedacht. Obwohl es recht ähnlich ist, weist es einige Verbesserungen auf und ermöglicht den Start entweder über UDP oder TCP. Es kann Klartext- oder JSON-Protokolle akzeptieren und auch als Ersatz für ein Syslog-Ziel fungieren.
Stellen Sie sicher, dass sich dieser Ordner am folgenden Speicherort befindet: ${GOPATH}/github.com/harfordfive
protologbeat.protocol
: Entweder tcp oder udp (Standard: udp)protologbeat.address
: Die Adresse, an der der Prozess lizenziert wird (Standard: 127.0.0.1)protologbeat.port
: Der Port, auf dem der Prozess lauscht (Standard = 5000)protologbeat.max_message_size
: Die maximal akzeptierte Nachrichtengröße (Standard = 4096)protologbeat.json_mode
: Protokollierung nur von JSON-formatierten Nachrichten aktivieren (Standard = false)protolog.merge_fields_to_root
: Wenn json_mode aktiviert ist, ob analysierte Felder auf der Root-Ebene zusammengeführt werden sollen. (Standard = falsch)protologbeat.default_es_log_type
: Elasticsearch-Typ, der einem Ereignis zugewiesen werden soll, wenn keiner angegeben ist (Standard: protologbeat)protologbeat.enable_syslog_format_only
: Boolescher Wert, der angibt, ob nur Syslog-Meldungen akzeptiert werden sollen. (Standard = falsch)protologbeat.enable_gelf
: Boolescher Wert, der angibt, ob der Prozess nur Nachrichten im GELF-Format akzeptieren sollprotologbeat.enable_json_validation
: Boolescher Wert, der angibt, ob die JSON-Schemavalidierung für Nachrichten json
-Format angewendet werden soll (Standard = false)protologbeat.validate_all_json_types
: Wenn json_mode aktiviert ist, gibt es an, ob für ALLE Typen ein Schema angegeben werden muss. Protokolleinträge mit Typen ohne Schema werden nicht veröffentlicht. (Standard = falsch)protologbeat.json_schema
: Ein Hash, der aus dem Elasticsearch-Typ als Schlüssel und dem absoluten lokalen Schemadateipfad als Wert besteht. Im Folgenden finden Sie Beispiele für Konfigurationsblöcke für den protologbeat
-Abschnitt.
JSON-Schemas können hier automatisch aus einem Objekt generiert werden: http://jsonschema.net/. Sie können sich auch die Schemata email_contact und stock_item als Beispiele ansehen.
Beispiele für Clients in verschiedenen Sprachen finden Sie im Verzeichnis _samples/
.
Um Protologbeat zum Laufen zu bringen und auch die Abhängigkeiten zu installieren, führen Sie den folgenden Befehl aus:
make setup
Es wird für jeden wichtigen Schritt ein sauberer Git-Verlauf erstellt. Beachten Sie, dass Sie den Verlauf bei Bedarf jederzeit neu schreiben können, bevor Sie Ihre Änderungen übertragen.
Führen Sie die folgenden Befehle aus, um Protologbeat im Git-Repository zu pushen:
git remote set-url origin https://github.com/harfordfive/protologbeat
git push origin master
Weitere Informationen zur Weiterentwicklung finden Sie im Beat-Entwicklerleitfaden.
Um die Binärdatei für Protologbeat zu erstellen, führen Sie den folgenden Befehl aus. Dadurch wird im selben Verzeichnis eine Binärdatei mit dem Namen protologbeat generiert.
make
Wenn Sie die Binärdatei für OSX, Linux und/oder Windows erstellen möchten, können Sie Folgendes ausführen:
./build-bin [TAG_VERSION]
Die resultierenden Binärdateien werden im Verzeichnis bin/
abgelegt
Um Protologbeat mit aktivierter Debugging-Ausgabe auszuführen, führen Sie Folgendes aus:
./protologbeat -c protologbeat.yml -e -d "*"
Führen Sie den folgenden Befehl aus, um Protologbeat zu testen:
make testsuite
alternativ:
make unit-tests
make system-tests
make integration-tests
make coverage-report
Die Testabdeckung wird im Ordner ./build/coverage/
gemeldet.
Jeder Beat verfügt über eine Vorlage für die Zuordnung in Elasticsearch und eine Dokumentation für die Felder, die automatisch basierend auf etc/fields.yml
generiert wird. Um etc/protologbeat.template.json und etc/protologbeat.asciidoc zu generieren
make update
Führen Sie die folgenden Befehle aus, um den Protologbeat-Quellcode zu bereinigen:
make fmt
make simplify
Führen Sie Folgendes aus, um das Build-Verzeichnis und die generierten Artefakte zu bereinigen:
make clean
Führen Sie die folgenden Befehle aus, um Protologbeat aus dem Git-Repository zu klonen:
mkdir -p ${GOPATH}/github.com/harfordfive
cd ${GOPATH}/github.com/harfordfive
git clone https://github.com/harfordfive/protologbeat
Weitere Informationen zur Weiterentwicklung finden Sie im Beat-Entwicklerleitfaden.
Die Docker-Bilder für diesen Beat finden Sie hier. Bitte beachten Sie, dass der Container mit einer Grundkonfiguration beginnt, die das Standardprotokoll/die Standardadresse/den Standardport abhört und Klartextnachrichten akzeptiert. Für etwaige Anpassungen ändern Sie bitte die Beispielkonfiguration protologbeat.full.yml und erstellen Sie Ihre eigene Docker-Datei, die das Original überschreibt.
Die Beat-Frameworks bieten Tools zum Crosskompilieren und Packen Ihres Beats für verschiedene Plattformen. Dies erfordert Docker und Vendoring wie oben beschrieben. Führen Sie den folgenden Befehl aus, um Pakete Ihres Beats zu erstellen:
make package
Dadurch werden alle für den Erstellungsprozess erforderlichen Bilder abgerufen und erstellt. Der Abschluss des gesamten Vorgangs kann mehrere Minuten dauern.