---
title: Metricbeat command reference
description: Metricbeat provides a command-line interface for starting Metricbeat and performing common tasks, like testing configuration files and loading dashboards...
url: https://www.elastic.co/docs/reference/beats/metricbeat/command-line-options
products:
  - Beats
  - Metricbeat
applies_to:
  - Elastic Cloud Serverless: Generally available
  - Elastic Stack: Generally available
---

# Metricbeat command reference
Metricbeat provides a command-line interface for starting Metricbeat and performing common tasks, like testing configuration files and loading dashboards.
The command-line also supports [global flags](#global-flags) for controlling global behaviors.
<tip>
  Use `sudo` to run the following commands if:
  - the config file is owned by `root`, or
  - Metricbeat is configured to capture data that requires `root` access
</tip>

Some of the features described here require an Elastic license. For more information, see [[https://www.elastic.co/subscriptions](https://www.elastic.co/subscriptions)](https://www.elastic.co/subscriptions) and [License Management](https://www.elastic.co/docs/deploy-manage/license/manage-your-license-in-self-managed-cluster).

| Commands                        |                                                                                                                                    |
|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------|
| [`export`](#export-command)     | Exports the configuration, index template, ILM policy, or a dashboard to stdout.                                                   |
| [`help`](#help-command)         | Shows help for any command.                                                                                                        |
| [`keystore`](#keystore-command) | Manages the [secrets keystore](https://www.elastic.co/docs/reference/beats/metricbeat/keystore).                                   |
| [`modules`](#modules-command)   | Manages configured modules.                                                                                                        |
| [`run`](#run-command)           | Runs Metricbeat. This command is used by default if you start Metricbeat without specifying a command.                             |
| [`setup`](#setup-command)       | Sets up the initial environment, including the index template, ILM policy and write alias, and Kibana dashboards (when available). |
| [`test`](#test-command)         | Tests the configuration.                                                                                                           |
| [`version`](#version-command)   | Shows information about the current version.                                                                                       |

Also see [Global flags](#global-flags).

## `export` command

Exports the configuration, index template, ILM policy, or a dashboard to stdout. You can use this command to quickly view your configuration, see the contents of the index template and the ILM policy, or export a dashboard from Kibana.
**SYNOPSIS**
```sh
metricbeat export SUBCOMMAND [FLAGS]
```

**SUBCOMMANDS**
<definitions>
  <definition term="config">
    Exports the current configuration to stdout. If you use the `-c` flag, this command exports the configuration that’s defined in the specified file.
  </definition>
  <definition term="dashboard">
    Exports a dashboard. You can use this option to store a dashboard on disk in a module and load it automatically. For example, to export the dashboard to a JSON file, run:
    ```shell
    metricbeat export dashboard --id="DASHBOARD_ID" > dashboard.json
    ```
    To find the `DASHBOARD_ID`, look at the URL for the dashboard in Kibana. By default, `export dashboard` writes the dashboard to stdout. The example shows how to write the dashboard to a JSON file so that you can import it later. The JSON file will contain the dashboard with all visualizations and searches. You must load the index pattern separately for Metricbeat.
    To load the dashboard, copy the generated `dashboard.json` file into the `kibana/6/dashboard` directory of Metricbeat, and run `metricbeat setup --dashboards` to import the dashboard.
    If Kibana is not running on `localhost:5061`, you must also adjust the Metricbeat configuration under `setup.kibana`.
  </definition>
  <definition term="template">
    Exports the index template to stdout. You can specify the `--es.version` flag to further define what gets exported. Furthermore you can export the template to a file instead of `stdout` by defining a directory via `--dir`.
  </definition>
</definitions>


<definitions>
  <definition term="ilm-policy">
    Exports the index lifecycle management policy to stdout. You can specify the `--es.version` and a `--dir` to which the policy should be exported as a file rather than exporting to `stdout`.
  </definition>
</definitions>

**FLAGS**
<definitions>
  <definition term="--es.version VERSION">
    When used with [`template`](#template-subcommand), exports an index template that is compatible with the specified version.  When used with [`ilm-policy`](#ilm-policy-subcommand), exports the ILM policy if the specified ES version is enabled for ILM.
  </definition>
  <definition term="-h, --help">
    Shows help for the `export` command.
  </definition>
  <definition term="--dir DIRNAME">
    Define a directory to which the template, pipelines, and ILM policy should be exported to as files instead of printing them to `stdout`.
  </definition>
  <definition term="--id DASHBOARD_ID">
    When used with [`dashboard`](#dashboard-subcommand), specifies the dashboard ID.
  </definition>
</definitions>

Also see [Global flags](#global-flags).
**EXAMPLES**
```sh
metricbeat export config
metricbeat export template --es.version 9.4.2
metricbeat export dashboard --id="a7b35890-8baa-11e8-9676-ef67484126fb" > dashboard.json
```


## `help` command

Shows help for any command. If no command is specified, shows help for the `run` command.
**SYNOPSIS**
```sh
metricbeat help COMMAND_NAME [FLAGS]
```

<definitions>
  <definition term="COMMAND_NAME">
    Specifies the name of the command to show help for.
  </definition>
</definitions>

**FLAGS**
<definitions>
  <definition term="-h, --help">
    Shows help for the `help` command.
  </definition>
</definitions>

Also see [Global flags](#global-flags).
**EXAMPLE**
```sh
metricbeat help export
```


## `keystore` command

Manages the [secrets keystore](https://www.elastic.co/docs/reference/beats/metricbeat/keystore).
**SYNOPSIS**
```sh
metricbeat keystore SUBCOMMAND [FLAGS]
```

**SUBCOMMANDS**
<definitions>
  <definition term="add KEY">
    Adds the specified key to the keystore. Use the `--force` flag to overwrite an existing key. Use the `--stdin` flag to pass the value through `stdin`.
  </definition>
  <definition term="create">
    Creates a keystore to hold secrets. Use the `--force` flag to overwrite the existing keystore.
  </definition>
  <definition term="list">
    Lists the keys in the keystore.
  </definition>
  <definition term="remove KEY">
    Removes the specified key from the keystore.
  </definition>
</definitions>

**FLAGS**
<definitions>
  <definition term="--force">
    Valid with the `add` and `create` subcommands. When used with `add`, overwrites the specified key. When used with `create`, overwrites the keystore.
  </definition>
  <definition term="--stdin">
    When used with `add`, uses the stdin as the source of the key’s value.
  </definition>
  <definition term="-h, --help">
    Shows help for the `keystore` command.
  </definition>
</definitions>

Also see [Global flags](#global-flags).
**EXAMPLES**
```sh
metricbeat keystore create
metricbeat keystore add ES_PWD
metricbeat keystore remove ES_PWD
metricbeat keystore list
```

See [Secrets keystore](https://www.elastic.co/docs/reference/beats/metricbeat/keystore) for more examples.

## `modules` command

Manages configured modules. You can use this command to enable and disable specific module configurations defined in the `modules.d` directory. The changes you make with this command are persisted and used for subsequent runs of Metricbeat.
To see which modules are enabled and disabled, run the `list` subcommand.
**SYNOPSIS**
```sh
metricbeat modules SUBCOMMAND [FLAGS]
```

**SUBCOMMANDS**
<definitions>
  <definition term="disable MODULE_LIST">
    Disables the modules specified in the space-separated list.
  </definition>
  <definition term="enable MODULE_LIST">
    Enables the modules specified in the space-separated list.
  </definition>
  <definition term="list">
    Lists the modules that are currently enabled and disabled.
  </definition>
</definitions>

**FLAGS**
<definitions>
  <definition term="-h, --help">
    Shows help for the `modules` command.
  </definition>
</definitions>

Also see [Global flags](#global-flags).
**EXAMPLES**
```sh
metricbeat modules list
metricbeat modules enable apache nginx system
```


## `run` command

Runs Metricbeat. This command is used by default if you start Metricbeat without specifying a command.
**SYNOPSIS**
```sh
metricbeat run [FLAGS]
```

Or:
```sh
metricbeat [FLAGS]
```

**FLAGS**
<definitions>
  <definition term="-N, --N">
    Disables publishing for testing purposes. This option disables all outputs except the [File output](https://www.elastic.co/docs/reference/beats/metricbeat/file-output).
  </definition>
  <definition term="--cpuprofile FILE">
    Writes CPU profile data to the specified file. This option is useful for troubleshooting Metricbeat.
  </definition>
  <definition term="-h, --help">
    Shows help for the `run` command.
  </definition>
  <definition term="--httpprof [HOST]:PORT">
    Starts an http server for profiling. This option is useful for troubleshooting and profiling Metricbeat.
  </definition>
  <definition term="--memprofile FILE">
    Writes memory profile data to the specified output file. This option is useful for troubleshooting Metricbeat.
  </definition>
  <definition term="--system.hostfs MOUNT_POINT">
    Specifies the mount point of the host’s filesystem for use in monitoring a host. This flag is depricated, and an alternate hostfs should be specified via the `hostfs` module config value.
  </definition>
</definitions>

Also see [Global flags](#global-flags).
**EXAMPLE**
```sh
metricbeat run -e
```

Or:
```sh
metricbeat -e
```


## `setup` command

Sets up the initial environment, including the index template, ILM policy and write alias, and Kibana dashboards (when available)
- The index template ensures that fields are mapped correctly in Elasticsearch. If index lifecycle management is enabled it also ensures that the defined ILM policy and write alias are connected to the indices matching the index template. The ILM policy takes care of the lifecycle of an index, when to do a rollover, when to move an index from the hot phase to the next phase, etc.
- The Kibana dashboards make it easier for you to visualize Metricbeat data in Kibana.

This command sets up the environment without actually running Metricbeat and ingesting data. Specify optional flags to set up a subset of assets.
**SYNOPSIS**
```sh
metricbeat setup [FLAGS]
```

**FLAGS**
<definitions>
  <definition term="--dashboards">
    Sets up the Kibana dashboards (when available). This option loads the dashboards from the Metricbeat package. For more options, such as loading customized dashboards, see see [Importing Existing Beat Dashboards](https://www.elastic.co/docs/extend/beats/import-dashboards).
  </definition>
  <definition term="-h, --help">
    Shows help for the `setup` command.
  </definition>
  <definition term="--index-management">
    Sets up components related to Elasticsearch index management including template, ILM policy, and write alias (if supported and configured).
  </definition>
</definitions>

Also see [Global flags](#global-flags).
**EXAMPLES**
```sh
metricbeat setup --dashboards
metricbeat setup --index-management
```


## `test` command

Tests the configuration.
**SYNOPSIS**
```sh
metricbeat test SUBCOMMAND [FLAGS]
```

**SUBCOMMANDS**
<definitions>
  <definition term="config">
    Tests the configuration settings.
  </definition>
  <definition term="modules [MODULE_NAME] [METRICSET_NAME]">
    Tests module settings for all configured modules. When you run this command, Metricbeat does a test run that applies the current settings, retrieves the metrics, and shows them as output. To test the settings for a specific module, specify `MODULE_NAME`. To test the settings for a specific metricset in the module, also specify `METRICSET_NAME`.
  </definition>
  <definition term="output">
    Tests that Metricbeat can connect to the output by using the current settings.
  </definition>
</definitions>

**FLAGS**
<definitions>
  <definition term="-h, --help">
    Shows help for the `test` command.
  </definition>
</definitions>

Also see [Global flags](#global-flags).
**EXAMPLES**
```sh
metricbeat test config
metricbeat test modules system cpu
```


## `version` command

Shows information about the current version.
**SYNOPSIS**
```sh
metricbeat version [FLAGS]
```

**FLAGS**
<definitions>
  <definition term="-h, --help">
    Shows help for the `version` command.
  </definition>
</definitions>

Also see [Global flags](#global-flags).
**EXAMPLE**
```sh
metricbeat version
```


## Global flags

These global flags are available whenever you run Metricbeat.
<definitions>
  <definition term="-E, --E "SETTING_NAME=VALUE"">
    Overrides a specific configuration setting. You can specify multiple overrides. For example:
    ```sh
    metricbeat -E "name=mybeat" -E "output.elasticsearch.hosts=['http://myhost:9200']"
    ```
    This setting is applied to the currently running Metricbeat process. The Metricbeat configuration file is not changed.
  </definition>
  <definition term="-c, --c FILE">
    Specifies the configuration file to use for Metricbeat. The file you specify here is relative to `path.config`. If the `-c` flag is not specified, the default config file, `metricbeat.yml`, is used.
  </definition>
  <definition term="-d, --d SELECTORS">
    Enables debugging for the specified selectors. For the selectors, you can specify a comma-separated list of components, or you can use `-d "*"` to enable debugging for all components. For example, `-d "publisher"` displays all the publisher-related messages.
  </definition>
  <definition term="-e, --e">
    Logs to stderr and disables syslog/file output.
  </definition>
  <definition term="--environment">
    For logging purposes, specifies the environment that Metricbeat is running in. This setting is used to select a default log output when no log output is configured. Supported values are: `systemd`, `container`, `macos_service`, and `windows_service`. If `systemd` or `container` is specified, Metricbeat will log to stdout and stderr by default.
  </definition>
  <definition term="--path.config">
    Sets the path for configuration files. See the [Directory layout](https://www.elastic.co/docs/reference/beats/metricbeat/directory-layout) section for details.
  </definition>
  <definition term="--path.data">
    Sets the path for data files. See the [Directory layout](https://www.elastic.co/docs/reference/beats/metricbeat/directory-layout) section for details.
  </definition>
  <definition term="--path.home">
    Sets the path for miscellaneous files. See the [Directory layout](https://www.elastic.co/docs/reference/beats/metricbeat/directory-layout) section for details.
  </definition>
  <definition term="--path.logs">
    Sets the path for log files. See the [Directory layout](https://www.elastic.co/docs/reference/beats/metricbeat/directory-layout) section for details.
  </definition>
  <definition term="--strict.perms">
    Sets strict permission checking on configuration files. The default is `--strict.perms=true`. See [Config file ownership and permissions](https://www.elastic.co/docs/reference/beats/libbeat/config-file-permissions) for more information.
  </definition>
  <definition term="-v, --v">
    Logs INFO-level messages.
  </definition>
</definitions>