[[monitoring-elastic-agent]]
= Collect {kib} monitoring data with {agent}
++++
<titleabbrev>Collect monitoring data with {agent}</titleabbrev>
++++

preview::[]

In 8.5 and later, you can use {agent} to collect data about {kib} and ship it to
the monitoring cluster, rather than <<monitoring-metricbeat,using {metricbeat}>>
or routing data through the production cluster as described in
<<monitoring-kibana>>.

To learn about monitoring in general, see
{ref}/monitor-elasticsearch-cluster.html[Monitor a cluster].

[discrete]
== Prerequisites

* Set up {es} monitoring and optionally create a monitoring cluster as described
in the {ref}/monitoring-production.html[{es} monitoring documentation].

* Create a user on the production cluster that has the
`remote_monitoring_collector` {ref}/built-in-roles.html[built-in role].

[discrete]
== Add {kib} monitoring data

To collect {kib} monitoring data, add a {kib} integration to an {agent} and
deploy it to the host where {kib} is running.

. Go to the {kib} home page and click **Add integrations**.
+
NOTE: If you're using a monitoring cluster, use the {kib} instance connected to
the monitoring cluster.

. In the query bar, search for and select the **Kibana** integration for
{agent}.

. Read the overview to make sure you understand integration requirements and
other considerations.
. Click **Add Kibana**.
+
TIP: If you're installing an integration for the first time, you may be prompted
to install {agent}. Click **Add integration only (skip agent installation)**.

. Configure the integration name and optionally add a description. Make sure you
configure all required settings:
* Under **Collect Kibana logs**, modify the log paths to match your {kib}
environment.
* Under **Collect Kibana metrics**, make sure the hosts setting points to your
Kibana host URLs. By default, the integration collects {kib} monitoring metrics
from `localhost:5601`. If that host and port number are not correct, update the
`hosts` setting. If you configured {kib} to use encrypted communications, you
must access it via HTTPS. For example, use a `hosts` setting like
`https://localhost:5601`.
* If the Elastic {security-features} are enabled, expand **Advanced options**
under the Hosts setting and enter the username and password of a user that has
the `remote_monitoring_collector` role.
. Choose where to add the integration policy. Click **New hosts** to add it to
new agent policy or **Existing hosts** to add it to an existing agent policy.
. Click **Save and continue**. This step takes a minute or two to complete. When
it's done, you'll have an agent policy that contains an integration for
collecting monitoring data from {kib}.
. If an {agent} is already assigned to the policy and deployed to the host where
{kib} is running, you're done. Otherwise, you need to deploy an {agent}. To
deploy an {agent}:
.. Go to **{fleet} -> Agents**, then click **Add agent**.
.. Follow the steps in the **Add agent** flyout to download, install,
and enroll the {agent}. Make sure you choose the agent policy you created
earlier.
. Wait a minute or two until incoming data is confirmed.
. <<monitoring-data,View the monitoring data in {kib}>>.
