Metribeat module system output to elasticsearch with incorrect period

I set my metricbeat system module output to elasticsearch hosts('192.168.2.1:9200', '192.168.2.2:9200') with 5s period.
But elasticsearch seems save data every ten seconds:

Here's my metribeat.yaml:

- module: system
  period: 5s
  metricsets: 
    - cpu
    #- load
    - memory
    #- fsstat
    #- network
    #- process
    #- process_summary
    #- core
    #- diskio
    #- socket
  processes: ['.*']
  process.include_top_n:
    by_cpu: 5      # include top 5 processes by CPU
    by_memory: 5   # include top 5 processes by memory

- module: system
  period: 5s
  metricsets:
    #- filesystem
    - fsstat
  processors:
    - drop_event.when.regexp:
       system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib)($|/)'

#- module: system
#  period: 15m
#  metricsets:
#    - uptime

Is ther any way to fix it? Thank you for your help.

Could you please share your full config as text formatted using </>?

Sorry for that. Here is the metricbeat.yml content:

#==========================  Modules configuration ============================

metricbeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/system.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

  #- module: system
  #  metricsets:
  #    - cpu 
  #  enabled: true
  #  period: 1s

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

setup.template.settings:
  index.number_of_shards: 1
  index.codec: best_compression
  #_source.enabled: false

setup.template.name: "metricbeat"
setup.template.pattern: "metricbeat-*"

#================================ General =====================================

# The name of the shipper that publishes the network data. It can be used to group
# all the transactions sent by a single shipper in the web interface.
#name:

# The tags of the shipper are included in their own field with each
# transaction published.
#tags: ["service-X", "web-tier"]

# Optional fields that you can specify to add additional information to the
# output.
#fields:
#  env: staging
#output.elasticsearch:
#  host: ["http://localhost:9200"]
#  index: "metricbeat-test-{+yyyy.MM.dd}"

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

#================================ Process =====================================
processors:
  - drop_fields:
      fields: []

# Configure what output to use when sending the data collected by the beat.

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["192.168.2.1:9200", "192.168.2.2:9200"]
  index: "metricbeat-%{[beat.version]}-%{+yyyy.MM.dd}"  

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"

${path.config} located at ./modules.d. And here is ${path.config}/modules.d/system.yml content:

- module: system
  period: 5s
  metricsets: 
    - cpu
    - memory
  processes: ['.*']
  process.include_top_n:
    by_cpu: 5      # include top 5 processes by CPU
    by_memory: 5   # include top 5 processes by memory

- module: system
  period: 5s
  metricsets:
    - fsstat
  processors:
    - drop_event.when.regexp:
       system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib)($|/)'

#- module: system
#  period: 15m
#  metricsets:
#    - uptime

Metribeat version is '6.2.4', I installed metribeat on ubuntu 16 server by apt-get command.

Thank you for your help!

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.