Tableau-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Tableau-Logs mit Bindplane in Google Security Operations aufnehmen.
Tableau ist eine Business Intelligence- und Datenvisualisierungsplattform, die Protokolle für Nutzeraktivitäten, Authentifizierung und Prüfungen generiert. Tableau Server speichert Protokolldateien im Dateisystem des Servers. Daher ist die dateibasierte Erfassung ideal für die Aufnahme.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Windows Server 2016 oder höher oder Linux-Host mit
systemd - Netzwerkverbindung zwischen dem Bindplane-Agent und dem Tableau Server-Host
- Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
- Privilegierter Zugriff auf Tableau Server mit Administratorberechtigungen
- Zugriff auf Tableau Server-Protokolldateien im Dateisystem des Servers
Authentifizierungsdatei für die Google SecOps-Datenaufnahme abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
Laden Sie die Authentifizierungsdatei für die Aufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Profile auf.
Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.
Fenstereinbau
- Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
Führen Sie dazu diesen Befehl aus:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietWarten Sie, bis die Installation abgeschlossen ist.
Überprüfen Sie die Installation mit folgendem Befehl:
sc query observiq-otel-collector
Der Dienst sollte als RUNNING (Wird ausgeführt) angezeigt werden.
Linux-Installation
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
Führen Sie dazu diesen Befehl aus:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shWarten Sie, bis die Installation abgeschlossen ist.
Überprüfen Sie die Installation mit folgendem Befehl:
sudo systemctl status observiq-otel-collector
Der Dienst sollte als aktiv (wird ausgeführt) angezeigt werden.
Zusätzliche Installationsressourcen
Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.
BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
Konfigurationsdatei suchen
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Konfigurationsdatei bearbeiten
Ersetzen Sie den gesamten Inhalt von
config.yamldurch die folgende Konfiguration:receivers: filelog: include: - /var/opt/tableau/tableau_server/data/tabsvc/logs/httpd/access.*.log - /var/opt/tableau/tableau_server/data/tabsvc/logs/vizqlserver/*.log - /var/opt/tableau/tableau_server/data/tabsvc/logs/backgrounder/*.log start_at: beginning exporters: chronicle/tableau: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: TABLEAU raw_log_field: body ingestion_labels: env: production service: pipelines: logs/tableau_to_chronicle: receivers: - filelog exporters: - chronicle/tableau
Konfigurationsparameter
Ersetzen Sie die folgenden Platzhalter:
Empfängerkonfiguration:
filelog: Der Empfängertyp zum Erfassen von Logdateien vom Laufwerkinclude: Liste der zu überwachenden Dateipfade oder Glob-Muster:- Linux:
/var/opt/tableau/tableau_server/data/tabsvc/logs/ - Windows:
C:\ProgramData\Tableau\Tableau Server\data\tabsvc\logs\ - Wichtige Logdateien sind
httpd/access.*.log(Apache-Zugriffslogs),vizqlserver/*.log(VizQL-Serverlogs) undbackgrounder/*.log(Logs für Hintergrundaufgaben). - Pfade an Ihre Tableau Server-Installation anpassen
- Linux:
start_at: Aufbeginningsetzen, um vorhandene Logdateien von Anfang an zu lesen, oder aufend, um nur neue Einträge zu lesen.
Exporter-Konfiguration:
tableau: Beschreibender Name für den Exportercreds_file_path: Vollständiger Pfad zur Datei für die Authentifizierung bei der Aufnahme:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
<customer_id>: Kunden-ID aus dem vorherigen Schrittendpoint: Regionale Endpunkt-URL:- USA:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asien:
asia-southeast1-malachiteingestion-pa.googleapis.com - Eine vollständige Liste finden Sie unter Regionale Endpunkte.
- USA:
TABLEAU: Logtyp genau wie in Chronicleingestion_labels: Optionale Labels im YAML-Format (z. B.env: production)
Pipelinekonfiguration:
* tableau_to_chronicle: aussagekräftiger Name für die Pipeline
Konfigurationsdatei speichern
- Speichern Sie die Datei nach der Bearbeitung:
- Linux: Drücken Sie
Ctrl+O, dannEnterund dannCtrl+X. - Windows: Klicken Sie auf Datei > Speichern.
- Linux: Drücken Sie
Bindplane-Agent neu starten, um die Änderungen zu übernehmen
So starten Sie den Bindplane-Agent unter Linux neu:
Führen Sie dazu diesen Befehl aus:
sudo systemctl restart observiq-otel-collectorPrüfen Sie, ob der Dienst ausgeführt wird:
sudo systemctl status observiq-otel-collectorLogs auf Fehler prüfen:
sudo journalctl -u observiq-otel-collector -f
So starten Sie den Bindplane-Agent unter Windows neu:
Wählen Sie eine der folgenden Optionen aus:
- Eingabeaufforderung oder PowerShell als Administrator:
net stop observiq-otel-collector && net start observiq-otel-collector- Dienste-Konsole:
- Drücken Sie
Win+R, geben Sieservices.mscein und drücken Sie die Eingabetaste. - Suchen Sie nach observIQ OpenTelemetry Collector.
- Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
- Drücken Sie
Prüfen Sie, ob der Dienst ausgeführt wird:
sc query observiq-otel-collectorLogs auf Fehler prüfen:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Speicherorte der Tableau Server-Protokolldateien überprüfen
- Melden Sie sich mit Administratorberechtigungen auf dem Tableau Server-Host an.
- Prüfen Sie die Verzeichnisse der Protokolldateien:
- Linux:
/var/opt/tableau/tableau_server/data/tabsvc/logs/ - Windows:
C:\ProgramData\Tableau\Tableau Server\data\tabsvc\logs\
- Linux:
- Wichtige Unterverzeichnisse und Dateien für Protokolle:
httpd/access.*.log: Apache-Zugriffsprotokolle mit Details zur HTTP-Anfragevizqlserver/*.log: VizQL-Serverlogs mit Visualisierungsabfrageaktivitätbackgrounder/*.log: Hintergrundaufgaben-Logs mit geplanten Jobaktivitäten
Optional: Generieren Sie mit dem TSM-Befehlszeilentool ein Logarchiv zur Überprüfung:
tsm maintenance ziplogs -a -t -o -f tableau-logs.zipAktualisieren Sie die
include-Pfade im Bindplane-Agentenconfig.yaml, wenn sich das Logverzeichnis von den Standardeinstellungen unterscheidet.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| dataserver_permissions, local_dataserver, saved_credentials_viewerid, locale, server_oauth, :id, server_viewerid, dataserver_version, tablename, ElapsedTime, LastStatus, Timeszone | additional.fields | Zusammengeführte Schlüssel/Wert-Paare aus angegebenen Feldern |
| Inhalt | metadata.description | Wert direkt nach dem Entfernen von „_“ kopiert |
| ID, RemoteHost | metadata.event_type | Auf USER_UNCATEGORIZED festgelegt, wenn die ID nicht leer ist, auf STATUS_UPDATE, wenn RemoteHost vorhanden ist, und auf GENERIC_EVENT, wenn keines der beiden zutrifft. |
| Protokoll | network.application_protocol | Wert direkt kopiert |
| http_version | network.application_protocol_version | Wert direkt kopiert |
| method | network.http.method | Wert direkt nach dem Entfernen von „“ kopiert |
| SizeBytes | network.received_bytes | In „uinteger“ konvertiert |
| session_id | network.session_id | Wert direkt kopiert |
| Workername | principal.asset.hostname | Wert direkt kopiert |
| RemoteHost | principal.asset.ip | Wert direkt kopiert |
| Workername | principal.hostname | Wert direkt kopiert |
| RemoteHost | principal.ip | Wert direkt kopiert |
| Port | principal.nat_port | In Ganzzahl konvertiert |
| ID | principal.user.product_object_id | Wert direkt kopiert |
| RemoteUser | principal.user.userid | Wert wird direkt kopiert, wenn er nicht leer oder „_“ ist. |
| logging_ctx | security_result.detection_fields | Zusammengeführtes Schlüssel/Wert-Paar aus „logging_ctx“ |
| Pfad | target.file.full_path | Wert direkt kopiert |
| dbname | target.resource.name | Wert direkt kopiert |
| metadata.product_name | Auf „Tableau“ festgelegt | |
| metadata.vendor_name | Auf „TABLEAU“ festgelegt | |
temp_user |
event.idm.read_only_udm.principal.user.userid |
Aus dem Änderungsprotokoll zugeordnet |
user_name |
event.idm.read_only_udm.principal.user.userid |
Aus dem Änderungsprotokoll zugeordnet |
temp_domain |
event.idm.read_only_udm.principal.administrative_domain |
Aus dem Änderungsprotokoll zugeordnet |
temp_role |
event.idm.read_only_udm.principal.user.attribute.roles |
Aus dem Änderungsprotokoll zugeordnet |
source_info |
event.idm.read_only_udm.additional.fields |
Aus dem Änderungsprotokoll zugeordnet |
user_application |
event.idm.read_only_udm.principal.application |
Aus dem Änderungsprotokoll zugeordnet |
temp_http_uri |
event.idm.read_only_udm.target.url |
Aus dem Änderungsprotokoll zugeordnet |
temp_api_call |
event.idm.read_only_udm.target.url |
Aus dem Änderungsprotokoll zugeordnet |
temp_site_id |
event.idm.read_only_udm.target.resource.name |
Aus dem Änderungsprotokoll zugeordnet |
java_method |
event.idm.read_only_udm.target.resource.name |
Aus dem Änderungsprotokoll zugeordnet |
java_class |
event.idm.read_only_udm.target.resource.type |
Aus dem Änderungsprotokoll zugeordnet |
temp_http_method |
event.idm.read_only_udm.network.http.method |
Aus dem Änderungsprotokoll zugeordnet |
temp_http_status |
event.idm.read_only_udm.network.http.response_code |
Aus dem Änderungsprotokoll zugeordnet |
"Computer" |
event.idm.read_only_udm.principal.hostname |
Aus dem Änderungsprotokoll zugeordnet |
"TimeGenerated" |
event.idm.read_only_udm.security_result.first_discovered_time |
Aus dem Änderungsprotokoll zugeordnet |
"_TimeReceived" |
event.idm.read_only_udm.security_result.last_discovered_time |
Aus dem Änderungsprotokoll zugeordnet |
"_IsBillable" |
event.idm.read_only_udm.additional.fields |
Aus dem Änderungsprotokoll zugeordnet |
"_BilledSize" |
event.idm.read_only_udm.additional.fields |
Aus dem Änderungsprotokoll zugeordnet |
"_Internal_WorkspaceResourceId" |
event.idm.read_only_udm.additional.fields |
Aus dem Änderungsprotokoll zugeordnet |
"_ItemId" |
event.idm.read_only_udm.additional.fields |
Aus dem Änderungsprotokoll zugeordnet |
"TenantId" |
event.idm.read_only_udm.additional.fields |
Aus dem Änderungsprotokoll zugeordnet |
"_SubscriptionId" |
event.idm.read_only_udm.additional.fields |
Aus dem Änderungsprotokoll zugeordnet |
"_ResourceId" |
event.idm.read_only_udm.principal.resource.id |
Aus dem Änderungsprotokoll zugeordnet |
"FilePath" |
event.idm.read_only_udm.additional.fields |
Aus dem Änderungsprotokoll zugeordnet |
"Type" |
event.idm.read_only_udm.additional.fields |
Aus dem Änderungsprotokoll zugeordnet |
"temp_message" |
event.idm.read_only_udm.metadata.description |
Aus dem Änderungsprotokoll zugeordnet |
"temp_logger_name" |
event.idm.read_only_udm.principal.application |
Aus dem Änderungsprotokoll zugeordnet |
"temp_pid" |
event.idm.read_only_udm.principal.process.pid |
Aus dem Änderungsprotokoll zugeordnet |
"temp_thread_name" |
event.idm.read_only_udm.principal.process.file.full_path |
Aus dem Änderungsprotokoll zugeordnet |
"temp_log_level" |
event.idm.read_only_udm.security_result.severity |
Aus dem Änderungsprotokoll zugeordnet |
appname |
event.idm.read_only_udm.metadata.product_event_type |
Aus dem Änderungsprotokoll zugeordnet |
id2 |
event.idm.read_only_udm.metadata.product_log_id |
Aus dem Änderungsprotokoll zugeordnet |
pid |
event.idm.read_only_udm.observer.process.pid |
Aus dem Änderungsprotokoll zugeordnet |
timestamp |
event.idm.read_only_udm.metadata.event_timestamp |
Aus dem Änderungsprotokoll zugeordnet |
user |
event.idm.read_only_udm.principal.user.userid |
Aus dem Änderungsprotokoll zugeordnet |
id1 |
event.idm.read_only_udm.network.session_id |
Aus dem Änderungsprotokoll zugeordnet |
logger |
event.idm.read_only_udm.observer.process.command_line |
Aus dem Änderungsprotokoll zugeordnet |
loglevel |
event.idm.read_only_udm.security_result.severity |
Aus dem Änderungsprotokoll zugeordnet |
user_id |
event.idm.read_only_udm.target.user.userid |
Aus dem Änderungsprotokoll zugeordnet |
site_id |
event.idm.read_only_udm.target.resource.id |
Aus dem Änderungsprotokoll zugeordnet |
message |
event.idm.read_only_udm.metadata.description |
Aus dem Änderungsprotokoll zugeordnet |
script_type |
event.idm.read_only_udm.target.resource.name |
Aus dem Änderungsprotokoll zugeordnet |
id3 |
event.idm.read_only_udm.additional.fields |
Aus dem Änderungsprotokoll zugeordnet |
thread |
event.idm.read_only_udm.additional.fields |
Aus dem Änderungsprotokoll zugeordnet |
function_name |
event.idm.read_only_udm.security_result.summary |
Aus dem Änderungsprotokoll zugeordnet |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten