collecting-monitoring-data.asciidoc 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. [role="xpack"]
  2. [testenv="gold"]
  3. [[collecting-monitoring-data]]
  4. == Collecting monitoring data using legacy collectors
  5. ++++
  6. <titleabbrev>Legacy collection methods</titleabbrev>
  7. ++++
  8. [IMPORTANT]
  9. =========================
  10. {metricbeat} is the recommended method for collecting and shipping monitoring
  11. data to a monitoring cluster.
  12. If you have previously configured legacy collection methods, you should migrate
  13. to using {metricbeat} collection methods. Use either {metricbeat} collection or
  14. legacy collection methods; do not use both.
  15. Learn more about <<configuring-metricbeat>>.
  16. =========================
  17. This method for collecting metrics about {es} involves sending the metrics to
  18. the monitoring cluster by using exporters. For the recommended method, see <<configuring-metricbeat>>.
  19. Advanced monitoring settings enable you to control how frequently data is
  20. collected, configure timeouts, and set the retention period for locally-stored
  21. monitoring indices. You can also adjust how monitoring data is displayed.
  22. To learn about monitoring in general, see <<monitor-elasticsearch-cluster>>.
  23. . Configure your cluster to collect monitoring data:
  24. .. Verify that the `xpack.monitoring.elasticsearch.collection.enabled` setting
  25. is `true`, which is its default value, on each node in the cluster.
  26. +
  27. --
  28. NOTE: You can specify this setting in either the `elasticsearch.yml` on each
  29. node or across the cluster as a dynamic cluster setting. If {es}
  30. {security-features} are enabled, you must have `monitor` cluster privileges to
  31. view the cluster settings and `manage` cluster privileges to change them.
  32. For more information, see <<monitoring-settings>> and <<cluster-update-settings>>.
  33. --
  34. .. Set the `xpack.monitoring.collection.enabled` setting to `true` on each
  35. node in the cluster. By default, it is disabled (`false`).
  36. +
  37. --
  38. NOTE: You can specify this setting in either the `elasticsearch.yml` on each
  39. node or across the cluster as a dynamic cluster setting. If {es}
  40. {security-features} are enabled, you must have `monitor` cluster privileges to
  41. view the cluster settings and `manage` cluster privileges to change them.
  42. For example, use the following APIs to review and change this setting:
  43. [source,console]
  44. ----------------------------------
  45. GET _cluster/settings
  46. PUT _cluster/settings
  47. {
  48. "persistent": {
  49. "xpack.monitoring.collection.enabled": true
  50. }
  51. }
  52. ----------------------------------
  53. Alternatively, you can enable this setting in {kib}. In the side navigation,
  54. click *Monitoring*. If data collection is disabled, you are prompted to turn it
  55. on.
  56. For more
  57. information, see <<monitoring-settings>> and <<cluster-update-settings>>.
  58. --
  59. .. Optional: Specify which indices you want to monitor.
  60. +
  61. --
  62. By default, the monitoring agent collects data from all {es} indices.
  63. To collect data from particular indices, configure the
  64. `xpack.monitoring.collection.indices` setting. You can specify multiple indices
  65. as a comma-separated list or use an index pattern to match multiple indices. For
  66. example:
  67. [source,yaml]
  68. ----------------------------------
  69. xpack.monitoring.collection.indices: logstash-*, index1, test2
  70. ----------------------------------
  71. You can prepend `-` to explicitly exclude index names or
  72. patterns. For example, to include all indices that start with `test` except
  73. `test3`, you could specify `test*,-test3`. To include system indices such as
  74. .security and .kibana, add `.*` to the list of included names.
  75. For example `.*,test*,-test3`
  76. --
  77. .. Optional: Specify how often to collect monitoring data. The default value for
  78. the `xpack.monitoring.collection.interval` setting 10 seconds. See
  79. <<monitoring-settings>>.
  80. . Identify where to store monitoring data.
  81. +
  82. --
  83. By default, the data is stored on the same cluster by using a
  84. <<local-exporter,`local` exporter>>. Alternatively, you can use an <<http-exporter,`http` exporter>> to send data to
  85. a separate _monitoring cluster_.
  86. IMPORTANT: The {es} {monitor-features} use ingest pipelines, therefore the
  87. cluster that stores the monitoring data must have at least one
  88. <<ingest,ingest node>>.
  89. For more information about typical monitoring architectures,
  90. see <<how-monitoring-works>>.
  91. --
  92. . If you choose to use an `http` exporter:
  93. .. On the cluster that you want to monitor (often called the _production cluster_),
  94. configure each node to send metrics to your monitoring cluster. Configure an
  95. HTTP exporter in the `xpack.monitoring.exporters` settings in the
  96. `elasticsearch.yml` file. For example:
  97. +
  98. --
  99. [source,yaml]
  100. --------------------------------------------------
  101. xpack.monitoring.exporters:
  102. id1:
  103. type: http
  104. host: ["http://es-mon-1:9200", "http://es-mon-2:9200"]
  105. --------------------------------------------------
  106. --
  107. .. If the Elastic {security-features} are enabled on the monitoring cluster, you
  108. must provide appropriate credentials when data is shipped to the monitoring cluster:
  109. ... Create a user on the monitoring cluster that has the
  110. <<built-in-roles,`remote_monitoring_agent` built-in role>>.
  111. Alternatively, use the
  112. <<built-in-users,`remote_monitoring_user` built-in user>>.
  113. ... Add the user ID and password settings to the HTTP exporter settings in the
  114. `elasticsearch.yml` file and keystore on each node. +
  115. +
  116. --
  117. For example:
  118. [source,yaml]
  119. --------------------------------------------------
  120. xpack.monitoring.exporters:
  121. id1:
  122. type: http
  123. host: ["http://es-mon-1:9200", "http://es-mon-2:9200"]
  124. auth.username: remote_monitoring_user
  125. # "xpack.monitoring.exporters.id1.auth.secure_password" must be set in the keystore
  126. --------------------------------------------------
  127. --
  128. .. If you configured the monitoring cluster to use
  129. <<encrypt-internode-communication,encrypted communications>>, you must use the HTTPS protocol in
  130. the `host` setting. You must also specify the trusted CA certificates that will
  131. be used to verify the identity of the nodes in the monitoring cluster.
  132. *** To add a CA certificate to an {es} node's trusted certificates, you can
  133. specify the location of the PEM encoded certificate with the
  134. `certificate_authorities` setting. For example:
  135. +
  136. --
  137. [source,yaml]
  138. --------------------------------------------------
  139. xpack.monitoring.exporters:
  140. id1:
  141. type: http
  142. host: ["https://es-mon1:9200", "https://es-mon-2:9200"]
  143. auth:
  144. username: remote_monitoring_user
  145. # "xpack.monitoring.exporters.id1.auth.secure_password" must be set in the keystore
  146. ssl:
  147. certificate_authorities: [ "/path/to/ca.crt" ]
  148. --------------------------------------------------
  149. --
  150. *** Alternatively, you can configure trusted certificates using a truststore
  151. (a Java Keystore file that contains the certificates). For example:
  152. +
  153. --
  154. [source,yaml]
  155. --------------------------------------------------
  156. xpack.monitoring.exporters:
  157. id1:
  158. type: http
  159. host: ["https://es-mon1:9200", "https://es-mon-2:9200"]
  160. auth:
  161. username: remote_monitoring_user
  162. # "xpack.monitoring.exporters.id1.auth.secure_password" must be set in the keystore
  163. ssl:
  164. truststore.path: /path/to/file
  165. truststore.password: password
  166. --------------------------------------------------
  167. --
  168. . Configure your cluster to route monitoring data from sources such as {kib},
  169. Beats, and {ls} to the monitoring cluster. For information about configuring
  170. each product to collect and send monitoring data, see <<monitor-elasticsearch-cluster>>.
  171. . If you updated settings in the `elasticsearch.yml` files on your production
  172. cluster, restart {es}. See <<stopping-elasticsearch>> and <<starting-elasticsearch>>.
  173. +
  174. --
  175. TIP: You may want to temporarily {ref}/modules-cluster.html[disable shard
  176. allocation] before you restart your nodes to avoid unnecessary shard
  177. reallocation during the install process.
  178. --
  179. . Optional:
  180. <<config-monitoring-indices,Configure the indices that store the monitoring data>>.
  181. . {kibana-ref}/monitoring-data.html[View the monitoring data in {kib}].