[role="xpack"]
[[monitoring-internal-collection]]
=== Use internal collectors to send monitoring data (Experimental)
experimental[]
++++
Internal collection (Experimental)
++++
Internal collectors send {ls} monitoring data directly to your _monitoring_ cluster.
<> is available as an alternative.
IMPORTANT: All Logstash nodes must share the same setup.
Otherwise, monitoring data might be routed in different ways or to different places.
[[configure-internal-collectors]]
==== Configure {ls} monitoring with internal collectors
experimental[]
++++
Configure internal collection
++++
To monitor Logstash nodes:
. Specify the location of the _monitoring cluster_. For examples of typical
monitoring architectures, see {ref}/how-monitoring-works.html[How monitoring
works] in the {ref}[Elasticsearch Reference].
. Verify that the `xpack.monitoring.collection.enabled` setting is `true` on the
monitoring cluster. If that setting is `false`, the collection of monitoring data
is disabled in {es}, and data is ignored from all other sources.
. Configure your Logstash nodes to send metrics by setting the
`monitoring.elasticsearch.hosts` in `logstash.yml`. If {security-features}
are enabled, you also need to specify the credentials for the
{ref}/built-in-users.html[built-in `logstash_system` user]. For more
information about these settings, see <>.
+
--
[source,yaml]
--------------------------------------------------
monitoring.elasticsearch.hosts: ["http://es-monitoring-node-1:9200", "http://es-monitoring-node-2:9200"]
monitoring.elasticsearch.username: "logstash_system"
monitoring.elasticsearch.password: "changeme"
--------------------------------------------------
If SSL/TLS is enabled on the monitoring cluster, you must connect through HTTPS.
You can specify a single host as a string, or multiple Elasticsearch hosts as an
array. If multiple URLs are specified, Logstash can round-robin requests to
these monitoring nodes.
--
. If SSL/TLS is enabled on the monitoring {es} cluster, specify the trusted
CA certificates that will be used to verify the identity of the nodes
in the cluster.
+
--
To add a CA certificate to a Logstash node's trusted certificates, you
can specify the location of the PEM encoded certificate with the
`certificate_authority` setting:
[source,yaml]
--------------------------------------------------
monitoring.elasticsearch.ssl.certificate_authority: /path/to/ca.crt
--------------------------------------------------
Alternatively, you can configure trusted certificates using a truststore
(a Java Keystore file that contains the certificates):
[source,yaml]
--------------------------------------------------
monitoring.elasticsearch.ssl.truststore.path: /path/to/file
monitoring.elasticsearch.ssl.truststore.password: password
--------------------------------------------------
Also, optionally, you can set up client certificate using a keystore
(a Java Keystore file that contains the certificate):
[source,yaml]
--------------------------------------------------
monitoring.elasticsearch.ssl.keystore.path: /path/to/file
monitoring.elasticsearch.ssl.keystore.password: password
--------------------------------------------------
Set sniffing to `true` to enable discovery of other nodes of the {es} cluster.
It defaults to `false`.
[source,yaml]
--------------------------------------------------
monitoring.elasticsearch.sniffing: false
--------------------------------------------------
--
. Restart your Logstash nodes.
. To verify your monitoring configuration, point your web browser at your {kib}
host, and select **Monitoring** from the side navigation. Metrics reported from
your Logstash nodes should be visible in the Logstash section. When security is
enabled, you must log in to {kib} as a user who has the `kibana_user` and
`monitoring_user` roles.
include::../settings/monitoring-settings.asciidoc[]
[[internal-collector-components]]
==== How {ls} monitoring with internal collectors works
Monitoring {ls} with internal collectors uses these components:
* <>
* <>
These pieces live outside of the default Logstash pipeline in a dedicated
monitoring pipeline. This configuration ensures that all data and processing has
a minimal impact on ordinary Logstash processing.
NOTE: The `elasticsearch` output for Logstash monitoring is configured
exclusively through settings in `logstash.yml`.
The monitoring {es} cluster should be configured to receive {ls} monitoring
data directly from {ls}. For more information about typical monitoring
architectures, see {ref}/how-monitoring-works.html[How monitoring works] in the
{ref}[Elasticsearch Reference].
include::collectors.asciidoc[]
include::monitoring-output.asciidoc[]