Ubuntu 24.04
Sponsored Link

Elastic Stack 8 : Install Metricbeat2024/08/02

 

Install Metricbeat that collects metrics from System or Services.

For Metricbeat details, refer to the official site.
⇒ https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-modules.html

[1] Install Metricbeat. Configure Elasticsearch repository before it.
root@dlp:~#
apt -y install metricbeat
[2] Configure basic settings and start Metricbeat.
root@dlp:~#
vi /etc/metricbeat/metricbeat.yml
# line 67 : if use Kibana, uncomment and specify output host
# if SSL is enabled on Kibana, hostname should be the same with the hostname in certs
# [username] and [password] is the admin user's one
# if using self-signed certificate, specify [ssl.verification_mode: none]

setup.kibana:
.....
  host: "https://dlp.srv.world:5601"
  protocol: "https"
  username: "elastic"
  password: "password"
  ssl.enabled: true
  ssl.verification_mode: none

# line 99 : specify output of Elasticsearch
# [username] and [password] is the admin user's one
# [ssl.certificate_authorities] is the cacert generated by Elasticsearch installation

output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["https://dlp.srv.world:9200"]

  protocol: "https"
  username: "elastic"
  password: "password"
  ssl.certificate_authorities: "/etc/elasticsearch/certs/http_ca.crt"

.....
.....

root@dlp:~#
vi /etc/metricbeat/metricbeat.reference.yml
# line 61 : set items to collect data
# enable and disable to comment out and uncomment

- module: system
  metricsets:
    - cpu             # CPU usage
    - load            # CPU load averages
    - memory          # Memory usage
    - network         # Network IO
    - process         # Per process metrics
    - process_summary # Process summary
    - uptime          # System Uptime
    - socket_summary  # Socket summary
    #- core           # Per CPU core usage
    #- diskio         # Disk IO
    #- filesystem     # File system usage for each mountpoint
    #- fsstat         # File system summary metrics
    #- raid           # Raid
    #- socket         # Sockets and connection info (linux only)
    #- service        # systemd service information
  enabled: true
  period: 10s
  processes: ['.*']

# line 2831 : if use Kibana, uncomment and specify output host
# if SSL is enabled on Kibana, uncomment ssl related lines
# [username] and [password] is the admin user's one
# if using self-signed certificate, specify [ssl.verification_mode: none]

setup.kibana:

  # Kibana Host
  # Scheme and port can be left out and will be set to the default (http and 5601)
  # In case you specify and additional path, the scheme is required: http://localhost:5601/path
  # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
  host: "https://dlp.srv.world:5601"

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

  # Optional HTTP path
  #path: ""

  # Optional Kibana space ID.
  #space.id: ""

  # Use SSL settings for HTTPS.
  ssl.enabled: true
  
.....
.....

  # after very careful consideration. It is primarily intended as a temporary
  # diagnostic mechanism when attempting to resolve TLS errors; its use in
  # production environments is strongly discouraged.
  # The default value is full.
  ssl.verification_mode: none

root@dlp:~#
systemctl enable --now metricbeat
[3] Verify status the data has been collected normally.
# index list

root@dlp:~#
curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt https://127.0.0.1:9200/_cat/indices?v

Enter host password for user 'elastic'
health status index                                                              uuid                   pri rep docs.count docs.deleted store.size pri.store.size dataset.size
green  open   .internal.alerts-transform.health.alerts-default-000001            3MDAnVqWRkC_ucXp_f-dRg   1   0          0            0       249b           249b         249b
green  open   .internal.alerts-observability.logs.alerts-default-000001          virq6rX_TAadxqKMrIr4tQ   1   0          0            0       249b           249b         249b
green  open   .internal.alerts-observability.uptime.alerts-default-000001        46XZFk5FRl28WLwbzBCRCw   1   0          0            0       249b           249b         249b
green  open   .internal.alerts-ml.anomaly-detection.alerts-default-000001        03VHbmGgSIOuhotRgmO1Yw   1   0          0            0       249b           249b         249b
green  open   .internal.alerts-observability.slo.alerts-default-000001           IaTLW9hYRIm8y1ikEzlN2g   1   0          0            0       249b           249b         249b
green  open   .internal.alerts-default.alerts-default-000001                     XpCXm0SYQa2o_uT14iMPyw   1   0          0            0       249b           249b         249b
green  open   .internal.alerts-observability.apm.alerts-default-000001           0OrsLwbDRVWozBNNt1RAOA   1   0          0            0       249b           249b         249b
green  open   .internal.alerts-observability.metrics.alerts-default-000001       yQqehuwnTN-ndP0O-YoqYg   1   0          0            0       249b           249b         249b
green  open   .kibana-observability-ai-assistant-conversations-000001            ctEkgFQkTc-2Fec_91qYJA   1   0          0            0       249b           249b         249b
green  open   .internal.alerts-ml.anomaly-detection-health.alerts-default-000001 34FcMwC0S26Gw6PQlsAgHA   1   0          0            0       249b           249b         249b
green  open   .internal.alerts-observability.threshold.alerts-default-000001     b9DylGvaSp6Glf8y8lKITA   1   0          0            0       249b           249b         249b
green  open   .kibana-observability-ai-assistant-kb-000001                       bde5sw2OTaO0TX18GPGY8Q   1   0          0            0       249b           249b         249b
green  open   .internal.alerts-security.alerts-default-000001                    09-NNzj9SBK7QC9yzpFreQ   1   0          0            0       249b           249b         249b
yellow open   test_index                                                         KB7PcAnESd6F8Gz4BJz7AA   1   1          1            0      6.5kb          6.5kb        6.5kb
yellow open   .ds-metricbeat-8.14.3-2024.08.02-000001                            3QM_SeQkRZG-Um9Dopq9Iw   1   1         83            0    458.8kb        458.8kb      458.8kb
green  open   .internal.alerts-stack.alerts-default-000001                       yh_lotA4Q0KsZAx4iIGNig   1   0          0            0       249b           249b         249b

# document list on the index

root@dlp:~#
curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt https://127.0.0.1:9200/.ds-metricbeat-8.14.3-2024.08.02-000001/_search?pretty

Enter host password for user 'elastic'
{
  "took" : 2,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 292,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : ".ds-metricbeat-8.14.3-2024.08.02-000001",
        "_id" : "arCxEJEBh42v6JiLyeYb",
        "_score" : 1.0,
        "_source" : {
          "@timestamp" : "2024-08-02T01:26:02.459Z",
          "agent" : {
            "name" : "dlp.srv.world",
            "type" : "metricbeat",
            "version" : "8.14.3",
            "ephemeral_id" : "a3ab7284-f542-40df-bef7-6019fdafc888",
            "id" : "7654b86e-2a63-4239-8278-1a100d051793"
          },
          "ecs" : {
            "version" : "8.0.0"
          },
          "event" : {
            "duration" : 31693106,
            "dataset" : "system.process",
            "module" : "system"
          },
          "metricset" : {
            "name" : "process",
            "period" : 10000
          },
          "system" : {
            "process" : {
              "num_threads" : 135,
.....
.....
[4] If Kibana is running, it's possible to import data to sample Dashboards.
root@dlp:~#
metricbeat setup --dashboards

Loading dashboards (Kibana must be running and reachable)
Loaded dashboards

Matched Content