
Einführung
Wir werden einrichten Filebeat mit Elasticsearch und Kibana 9.x. Wenn Sie Elasticsearch und Kibana noch nicht eingerichtet haben, dann Befolgen Sie diese Anweisungen.
Basierend auf diesem Dokumentation
Anforderungen
A Running instance of Elasticsearch and Kibana.
Eine Instanz eines anderen Ubuntu 24.04-Servers, auf dem ein beliebiger Dienst ausgeführt wird.
Schritte
Schritt 1 – Filebeat installieren
Führen Sie auf der Ubuntu-Maschine, auf der Filebeat ausgeführt wird, diese Befehle aus, um Abhängigkeiten herunterzuladen:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/9.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-9.x.list
apt-get update;
apt-get install -y apt-transport-https;
apt-get install -y filebeat;
Schritt 2 – Protokollmodule aktivieren
Gehen Sie zum /etc/filebeat/modules.d
Verzeichnis. Wählen Sie aus, für welche Protokolltypen Sie die Protokollierung aktivieren möchten, indem Sie die entsprechenden *.yml.disabled
Zu *.yml
. Für einige dieser Dienste müssen Sie möglicherweise die enabled: true
Option zum *.yml
Datei und geben Sie die entsprechenden Verbindungs- und Konfigurationsdetails ein.
Schritt 3 – Setup-Rolle erstellen
Gehen Sie in Kibana zu Stapelverwaltung > Rollen > Rolle erstellen. Füllen Sie dann diese Felder aus:
Role name: filebeat_setup
Cluster privileges: monitor manage_ilm
Indices: filebeat-*
Privileges: manage
Schritt 4 – Filebeat-Benutzer erstellen
Gehen Sie in Kibana zu Stapelverwaltung > Benutzer > Benutzer erstellen. Füllen Sie dann diese Felder aus:
Username: filebeat_user
Full name: filebeat_user
Email address: anything@anything.com
Password: anything
Roles: filebeat_setup kibana_admin ingest_admin
Drücken Sie Speichern.
Schritt 5 – Filebeat konfigurieren
Bearbeiten Sie diese Felder für die /etc/filebeat.yml
setup.kibana:
host: "https://<kibana-domain>:<kibana-port>"
ssl.certificate_authorities: ["/path/to/http_ca.crt"]
output.elasticsearch:
hosts: ["<elasticsearch-domain-or-ip>:<elasticsearch-port>"]
protocol: "https"
username: "filebeat_user"
password: "<your filebeat_user password>"
ssl.certificate_authorities: ["/path/to/http_ca.crt"]
setup.ilm.check_exists: false
Die fertige Datei filebeat.yml finden Sie hier.
WICHTIG – wir verwenden den Setup-Benutzer für die Ersteinrichtung und Konfiguration. Wir werden die Berechtigungen später ändern.
Testen Sie dann Ihre Konfiguration mit diesen Befehlen:
/usr/share/filebeat/bin/filebeat test config -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat
/usr/share/filebeat/bin/filebeat test output -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat
Bestätigen Sie, dass Sie Erfolgsmeldungen erhalten.
Schritt 6 – Filebeat einrichten
Führen Sie nun diesen Befehl aus, um Filebeat-Datenströme und -Ansichten in Elasticsearch und Kibana einzurichten:
/usr/share/filebeat/bin/filebeat setup -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat
Sobald der Befehl abgeschlossen ist, gehen Sie zu Kibana Speisekarte und besuchen Armaturenbrett um viele vorgefertigte Dashboards anzuzeigen.
Schritt 7 – Erstellen einer Veröffentlichungsrolle
Referenz für die Veröffentlichungsrolle
Gehen Sie in Kibana zu Stapelverwaltung > Rollen > Rolle erstellen. Füllen Sie dann diese Felder aus:
Role name: filebeat_publisher
Cluster privileges: monitor read_ilm read_pipeline
Indices: filebeat-*
Privileges: create_doc auto_configure
Schritt 8 – Filebeat-Rolle ändern
Löschen Sie die vorherigen Rollen für filebeat_user
und stellen Sie einfach Folgendes ein:
Roles: filebeat_publisher
Drücken Sie Speichern.
API-Schlüssel für Benutzer erstellen
Gehen Sie in Kibana zu Entwicklertools > Konsole. Führen Sie dann diesen Befehl aus:
POST /_security/api_key/grant
{
"grant_type": "password",
"username": "filebeat_user",
"password": "anything",
"api_key": {
"name": "filebeat_user"
}
}
Dies sollte zu einem Ergebnis wie diesem führen:
{
"id": "J3oInZgBRvUg0VanE8wj",
"name": "filebeat_user",
"api_key": "6Wwht52HgB-M8reGwXUM6g",
"encoded": "SjNvSW5aZ0JSdlVnMFZhbkU4d2o6Nld3aHQ1MkhnQi1NOHJlR3dYVU02Zw=="
}
Bearbeiten Sie die /etc/filebeat/filebeat.yml
durch Auskommentieren der filebeat_user
Benutzername und Passwort und die Aktivierung der api_key
ungefähr so:
output.elasticsearch:
...etc...
api_key: "${ES_API_KEY}"
#username: "filebeat_user"
#password: ""
...etc...
Wir verwenden den Filebeat-Keystore, um Geheimnisse für die Laufzeit zu laden. Führen Sie nun diesen Befehl aus, um Folgendes festzulegen:ES_API_KEY
Schlüsselspeichervariable:
/usr/share/filebeat/bin/filebeat keystore add ES_API_KEY -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat
Presse eingeben und wenn Sie dazu aufgefordert werden, fügen Sie <id>:<api_key>
wo die <id>
und die <api_key>
sind die Werte aus der Benutzertoken-Antwort, die Sie zuvor erhalten haben.
Schritt 9 – Filebeat ausführen
systemctl enable filebeat;
systemctl start filebeat;
In Kürze sollten Sie in Kibana Ergebnisse sehen, entweder Entdecken, Beobachtbarkeit, Stapelverwaltung > Indexverwaltung > Datenstrom, Dashboard > Wählen Sie ein Filebeat-Dashboard aus.
Schlussbemerkung
Jedes Mal, wenn Sie ein neues Modul aktivieren in modules.d
, müssen Sie laufen systemctl restart filebeat
. systemctl restart filebeat
kann Hintergrundaktionen auslösen, ähnlich wie aufstellen Das bedeutet, dass der Benutzer in Ihrem filebeat.yml
sollte die aufstellen Berechtigungen, die in Schritt 3 erwähnt wurden. Wenn Sie nicht manuell ausführen möchten systemctl restart filebeat
nach Änderungen in der modules.d
Verzeichnis können Sie Filebeat automatisch neu aktivierte Module laden lassen, indem Sie diese Eigenschaft auf true
: filebeat.config.modules.reload.enabled: true
. Stellen Sie erneut sicher, dass der Benutzer in filebeat.yml
hat die aufstellen Berechtigungen.