Qual è il significato del prefisso @ nei nomi di field logstash?

La seguente configuration logstash consente di accedere ai registri events di Windows come json su una connessione TCP e dopo alcuni filtri inoltrare il risultato alla ricerca elastica (fonte: https://gist.github.com/robinsmidsrod/4215337 ):

input { tcp { type => "syslog" host => "127.0.0.1" port => 3514 } tcp { type => "eventlog" host => "10.1.1.2" port => 3515 format => 'json' } } # Details at http://cookbook.logstash.net/recipes/syslog-pri/ filter { # Incoming data from rsyslog grok { type => "syslog" pattern => [ "<%{POSINT:syslog_pri}>(?:%{SYSLOGTIMESTAMP:syslog_timestamp}|%{TIMESTAMP_ISO8601:syslog_timestamp8601}) %{SYSLOGHOST:syslog_hostname} %{PROG:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" ] add_field => [ "received_at", "%{@timestamp}" ] add_field => [ "received_from", "%{@source_host}" ] } syslog_pri { type => "syslog" } date { type => "syslog" syslog_timestamp8601 => "ISO8601" # RSYSLOG_ForwardFormat syslog_timestamp => [ "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } mutate { type => "syslog" exclude_tags => "_grokparsefailure" replace => [ "@source_host", "%{syslog_hostname}" ] replace => [ "@message", "%{syslog_message}" ] } mutate { type => "syslog" remove => [ "syslog_hostname", "syslog_message", "syslog_timestamp", "syslog_timestamp8601" ] } # Incoming Windows Event logs from nxlog # The EventReceivedTime field must contain only digits, or it is an invalid message grep { type => "eventlog" EventReceivedTime => "\d+" } mutate { # Lowercase some values that are always in uppercase type => "eventlog" lowercase => [ "EventType", "FileName", "Hostname", "Severity" ] } mutate { # Set source to what the message says type => "eventlog" rename => [ "Hostname", "@source_host" ] } date { # Convert timestamp from integer in UTC type => "eventlog" EventReceivedTime => "UNIX" } mutate { # Rename some fields into something more useful type => "eventlog" rename => [ "Message", "@message" ] rename => [ "Severity", "eventlog_severity" ] rename => [ "SeverityValue", "eventlog_severity_code" ] rename => [ "Channel", "eventlog_channel" ] rename => [ "SourceName", "eventlog_program" ] rename => [ "SourceModuleName", "nxlog_input" ] rename => [ "Category", "eventlog_category" ] rename => [ "EventID", "eventlog_id" ] rename => [ "RecordNumber", "eventlog_record_number" ] rename => [ "ProcessID", "eventlog_pid" ] } mutate { # Remove redundant fields type => "eventlog" remove => [ "SourceModuleType", "EventTimeWritten", "EventTime", "EventReceivedTime", "EventType" ] } } output { elasticsearch { embedded => true } graphite { # Ping the graphite server every time a syslog message is received type => "syslog" port => 2023 # carbon-aggregator metrics => [ "syslog.received.%{@source_host}.count", "1" ] } graphite { # Ping the graphite server every time an eventlog message is received type => "eventlog" port => 2023 # carbon-aggregator metrics => [ "eventlog.received.%{@source_host}.count", "1" ] } } 

Qual è il significato del prefisso @ su alcuni nomi di field alle righe 58 e 68? cioè @source_host e @message su questi filtri @message :

  • ELK Stack (Logstash, Elasticsearch e Kibana) con il server syslog remoto concorrente?
  • Utilizzo di Logstash come spedizioniere?
  • "Motivi di indice: specificare un model di indice predefinito" in Kibana
  • Logstash con journald invece di rsyslog
  • Logstash output-http plugin error 500 quando si tenta di submit a webhook slack
  • Logstash non può leggere i file che dovrebbe avere accesso anche
  •  mutate { # Set source to what the message says type => "eventlog" rename => [ "Hostname", "@source_host" ] } 

    e

     mutate { # Rename some fields into something more useful type => "eventlog" rename => [ "Message", "@message" ] rename => [ "Severity", "eventlog_severity" ] rename => [ "SeverityValue", "eventlog_severity_code" ] rename => [ "Channel", "eventlog_channel" ] rename => [ "SourceName", "eventlog_program" ] rename => [ "SourceModuleName", "nxlog_input" ] rename => [ "Category", "eventlog_category" ] rename => [ "EventID", "eventlog_id" ] rename => [ "RecordNumber", "eventlog_record_number" ] rename => [ "ProcessID", "eventlog_pid" ] } 

  • Come submit i contatori di performance di Windows a Logstash + Kibana?
  • logstash: esiste un modo per visualizzare la configuration di esecuzione completa quando si utilizzano più file di configuration in /etc/logstash/conf.d?
  • Niente che appare nel cruscotto di kibana
  • ELK: LogStash per leggere i file di registro dalle unità di networking remoti Samba mappate
  • Invio di registri di Subversion a Logstash
  • get i registri dall'unità systemd in file piatti e logstash
  • One Solution collect form web for “Qual è il significato del prefisso @ nei nomi di field logstash?”

    Credo che sia stata semplicemente una decisione per evitare i collisioni.

    È stato per lo più spazzato dalle nuove versioni di logstash. Rimangono solo @timestamp e @version. Dovresti cercare di aggiornare il logstash ei tuoi spedizionieri.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.