ArcGIS Enterprise Logdaten

Übersicht

arcgis enterprise log

Ablauf

  1. Konfiguration von Filebeat auf dem ArcGIS Enterprise Host zur regelmäßigen Abfrage der Logdateien

  2. Prüfen der Log-Level-Konfiguration des ArcGIS Servers

Hinweise zur Filebeat-Konfiguration

Für jeden ArcGIS Host, der am Sammeln der Log-Daten beteiligt sein soll, muss die Komponente Filebeat installiert werden. Aktuell wird Filebeat 7.x unterstützt, jedoch konnten auch mit Filebeat 8.x noch keine Probleme festgestellt werden.

Prüfen der Log-Level-Konfiguration des ArcGIS Servers

Die Auswertungen und Analysen der service.monitor Dashboards verlangen einen Log-Level von Fein am ArcGIS Server. Dieser Wert kann über den ArcGIS Server Manager unter Protokolle > Einstellungen angepasst werden.

Konfiguration von Filebeat mit Elasticsearch als Output

FME-Logdateien können von Filebeat in eine Logstash- oder eine Ingest-Pipeline geschrieben werden. Um auf die Logstash-Installation verzichten zu können, kann mit der folgenden Konfiguration auch direkt ein Elasticsearch-Index mit einer Ingest-Pipeline verwendet werden.

###################### Filebeat Configuration Example #########################
env: 'production'

arcgis.base.path: 'c:\arcgisserver\logs'
#arcgis.base.path: 'c:\arcgisportal\logs'
#arcgis.base.path: 'c:\arcgisdatastore\logs'
#arcgis.base.path: '/var/log/arcgis'

filebeat.inputs:
  # ============================== ArcGIS inputs ===============================
  - type: filestream
    id: "arcgis_logfiles-server"
    # Change to "true" to enable this input configuration.
    enabled: true
    # Paths that should be crawled and fetched for ArcGIS Enterprise logs. Glob based paths.
    # Adapt these paths/patterns according to your environment
    paths:
      - ${arcgis.base.path}\*\server\*.log
      - ${arcgis.base.path}\*\services\*\*.log
      - ${arcgis.base.path}\*\services\*\*\*.log
      - ${arcgis.base.path}\*\services\System\*\*.log
    fields_under_root: true
    fields:
      labels:
        env: ${env}
        source: 'arcgis-server'
    ### Multiline options
    # Note: This only needs to be changed if the ArcGIS Server log file structure changes
    parsers:
      - multiline:
          type: "pattern"
          pattern: '^<Msg([^>]*?)>(.*)'
          negate: true
          match: "after"
          skip_newline: false

  - type: filestream
    id: "arcgis_logfiles-portal"
    # Change to "true" to enable this input configuration.
    enabled: true
    # Paths that should be crawled and fetched for ArcGIS Enterprise logs. Glob based paths.
    # Change these paths/patterns according to your environment
    paths:
      - ${arcgis.base.path}\*\portal\*.log
    fields_under_root: true
    fields:
      labels:
        env: ${env}
        source: 'arcgis-portal'
    ### Multiline options
    # Note: This only needs to be changed if the ArcGIS Server log file structure changes
    parsers:
      - multiline:
          type: "pattern"
          pattern: '^<Msg([^>]*?)>(.*)'
          negate: true
          match: "after"
          skip_newline: false

  - type: filestream
    id: "arcgis_logfiles-datastore"
    # Change to "true" to enable this input configuration.
    enabled: true
    # Paths that should be crawled and fetched for ArcGIS Enterprise logs. Glob based paths.
    # Change these paths/patterns according to your environment
    paths:
      - ${arcgis.base.path}\*\server\*.log
    fields_under_root: true
    fields:
      labels:
        env: ${env}
        source: 'arcgis-datastore'
    ### Multiline options
    # Note: This needs only be adopted if the ArcGIS Server log file structure changes
    parsers:
      - multiline:
          type: "pattern"
          pattern: '^<Msg([^>]*?)>(.*)'
          negate: true
          match: "after"
          skip_newline: false

# ============================== Filebeat modules ==============================

filebeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml
  # Set to true to enable config reloading
  reload.enabled: false
  # Period on which files under path should be checked for changes
  reload.period: 10s

# ======================= Elasticsearch template setting =======================

# We handle ILM and templates in Elasticsearch
setup.ilm.enabled: false
setup.template.enabled: false

# ================================== Outputs ===================================

# ------------------------------ Logstash output -------------------------------
# --------------------------- Elasticsearch output -----------------------------
output.elasticsearch:
  # Index can be defined as index pattern, when ILM is activated in Elasticsearch.
  index: "ct-arcgis-logfile"
  # The name of the Ingest pipeline processing the Filebeat input.
  pipeline: "ct-monitor-arcgis-logfile"
  # Elasticsearch host and port
  hosts: ["https://localhost:9200"]
  # Elasticsearch username
  username: ""
  # Elasticsearch password
  password: ""
  ssl:
    enabled: true
    # Elasticsearch SSL fingerprint
    ca_trusted_fingerprint: ""

# ================================= Processors =================================
# The following section needs no adaptation
processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~

Konfiguration von Filebeat mit Elasticsearch als Output, in Kombination mit FME Flow Logdateien

Wenn neben ArcGIS Logdateien auch FME Logdateien mit Filebeat eingelesen werden sollen, kann im Ordner filebeat/arcgis-fme-logfile eine filebeat.yml-Datei für diesen Zweck genutzt werden. Diese kombiniert die beiden Pipelines.

Konfiguration von Filebeat mit Logstash als Output (veraltet)

arcgis enterprise log w logstash

Die Filebeat-Konfiguration erfolgt danach auf Basis der Vorlage filebeat/arcgis-logfile/filebeat.yml.

###################### Filebeat Configuration Example (Logstash) #########################
output.logstash:
  hosts: ["logstash.host:5604"]
Wählen Sie für die Einstellung fields.labels.source einen der Werte arcgis-server, arcgis-portal oder arcgis-datastore, um bessere Filtermöglichkeiten in Kibana zu erhalten. Das Gleiche gilt für fields.labels.env, um unterschiedliche Stages unterscheiden zu können.