Chạy ELK Stack với Docker

File instances.yml sẽ nhận diện các phiên cần tạo chứng chỉ và sẽ được sử dụng bởi elasticsearch-certutil để tạo chứng chỉ phù hợp.

Tạo folder chứa các file để sử dụng

mkdir ~/elk-docker-ssl
cd ~/elk-docker-ssl
mkdir elasticsearch
mkdir kibana
mkdir logstash

Tạo các file cần thiết

instances.yml:

instances:
  - name: elastic
    dns:
      - elastic 
    ip:
      - 10.15.242.163 
  - name: my-kibana
    dns:
      - my-kibana
    ip:
      - 10.15.242.163
  - name: logstash
    dns:
      - logstash
    ip:
      - 10.15.242.163

Cấu hình instances.yml chứa thông tin về các phiên bản muốn tạo chứng chỉ TLS. Dựa trên thông tin trong tệp này, có ba phiên bản: "elastic", "my-kibana" và "logstash", được liên kết với địa chỉ IP "10.15.242.163".

File .env đặt biến môi trường để chỉ định phiên bản Elasticsearch và vị trí nơi chứng chỉ Elasticsearch sẽ được tạo.

.env:

COMPOSE_PROJECT_NAME=es
CERTS_DIR=/usr/share/elasticsearch/config/certificates
ELASTIC_PASSWORD=z6GwKILzDTf9bMZiFDfw
ELASTIC_VERSION=7.17.10
  • COMPOSE_PROJECT_NAME=es: Tên dự án Docker Compose sẽ là "es". Điều này sẽ ảnh hưởng đến tên các container được tạo bởi Docker Compose.

  • CERTS_DIR=/usr/share/elasticsearch/config/certificates: Đường dẫn đến thư mục chứa các chứng chỉ TLS, trong trường hợp này là: "/usr/share/elasticsearch/config/certificates". Các chứng chỉ sẽ được tạo và lưu trong thư mục này.

  • ELASTIC_PASSWORD=z6GwKILzDTf9bMZiFDfw: Mật khẩu của người dùng "elastic". Đây là mật khẩu sẽ được sử dụng để truy cập vào Elasticsearch.

  • ELASTIC_VERSION=7.17.10: Phiên bản Elasticsearch được sử dụng, trong trường hợp này là phiên bản "7.17.10".

File create-certs.yml là một tệp Docker Compose khởi chạy một container để tạo chứng chỉ cho Elasticsearch, Kibana và logstash.

create-certs.yml:

version: '2.2'

services:
  create_certs:
    container_name: create_certs
    image: docker.elastic.co/elasticsearch/elasticsearch:7.14.1
    command: >
      bash -c '
        if [[ ! -f /certs/bundle.zip ]]; then
          bin/elasticsearch-certutil cert --silent --pem --in config/certificates/instances.yml -out /certs/bundle.zip;
          unzip /certs/bundle.zip -d /certs; 
        fi;
        chown -R 1000:0 /certs
      '
    user: "0"
    working_dir: /usr/share/elasticsearch
    volumes: ['certs:/certs', '.:/usr/share/elasticsearch/config/certificates']

volumes: {"certs"}

Dưới đây là một phân tích của tệp cấu hình Docker Compose:

  • Phiên bản: version: '2.2': Đây là phiên bản của Docker Compose được sử dụng trong tệp cấu hình. Trong trường hợp này, phiên bản được chỉ định là '2.2'.

  • Dịch vụ "create_certs":

    • container_name: create_certs: Đặt tên cho container được tạo, trong trường này là "create_certs".

    • image: docker.elastic.co/elasticsearch/elasticsearch:7.17.10: Sử dụng hình ảnh Docker của Elasticsearch có phiên bản là 7.17.10. Đây là hình ảnh được sử dụng để tạo chứng chỉ.

    • command: >: Lệnh được thực thi trong container để tạo chứng chỉ TLS. Lệnh này thực hiện một số bước để tạo chứng chỉ từ tệp cấu hình instances.yml và giải nén chúng thành các tệp PEM.

    • user: "0": Sử dụng người dùng root trong container.

    • working_dir: /usr/share/elasticsearch: Đặt thư mục làm thư mục làm việc trong container.

    • volumes: ['certs:/certs', '.:/usr/share/elasticsearch/config/certificates']: Định nghĩa các khối gắn kết (volumes) cho container. Thư mục /certs trong container được gắn kết với volume có tên certs nằm ngoài container. Thư mục hiện tại (.) của máy chủ được gắn kết với thư mục /usr/share/elasticsearch/config/certificates trong container.

  • Volume: volumes: {"certs"}: Định nghĩa một volume có tên certs, được sử dụng để lưu trữ chứng chỉ TLS được tạo.

Quá trình tạo chứng chỉ TLS sẽ được thực hiện khi bạn chạy Docker Compose với tệp cấu hình này. Container "create_certs" sẽ được khởi chạy và thực hiện các bước tạo chứng chỉ dựa trên tệp cấu hình instances.yml. Sau đó, chứng chỉ sẽ được lưu trữ trong thư mục được gắn kết với volume certs.

Tệp PEM (Privacy-Enhanced Mail) là một định dạng tệp được sử dụng để lưu trữ và truyền thông tin mã hóa. Định dạng này thường được sử dụng để lưu trữ chứng chỉ công cộng và chứng chỉ riêng tư trong hệ thống mã hóa SSL/TLS.

Tệp PEM là định dạng văn bản ASCII và có thể mở và xem bằng một trình soạn thảo văn bản thông thường. Nó thường có phần mở rộng tệp là .pem, ví dụ: certificate.pem hoặc private_key.pem.

docker-compose.yml:

version: '2.2'

services:
  elastic:
    container_name: elastic
    image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}
    environment:
      #basic
      - node.name=elastic
      - discovery.type=single-node
      - ELASTIC_PASSWORD=$ELASTIC_PASSWORD 
      - "ES_JAVA_OPTS=-Xmx1g -Xms1g"
      - bootstrap.memory_lock=false
      - xpack.license.self_generated.type=basic
      # ssl settings
      - xpack.security.enabled=true
      - xpack.security.http.ssl.enabled=true
      - xpack.security.transport.ssl.enabled=true
      - xpack.security.transport.ssl.verification_mode=certificate 
      # ssl ca path
      - xpack.security.http.ssl.key=$CERTS_DIR/elastic/elastic.key
      - xpack.security.http.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
      - xpack.security.http.ssl.certificate=$CERTS_DIR/elastic/elastic.crt
      - xpack.security.transport.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
      - xpack.security.transport.ssl.certificate=$CERTS_DIR/elastic/elastic.crt
      - xpack.security.transport.ssl.key=$CERTS_DIR/elastic/elastic.key
    volumes:
      - certs:$CERTS_DIR:z
      # - data01:/usr/share/elasticsearch/data 
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nproc: 65535
      nofile:
        soft: 65535
        hard: 65535
    ports:
      - 9200:9200
    networks:
      - elk

    healthcheck:
      test: curl --cacert $CERTS_DIR/ca/ca.crt -s https://elastic:9200 >/dev/null; if [[ $$? == 52 ]]; then echo 0; else echo 1; fi
      interval: 30s
      timeout: 10s
      retries: 5

  kib01:
    image: docker.elastic.co/kibana/kibana:${ELASTIC_VERSION}
    container_name: kib01
    restart: always
    env_file: .env
    depends_on:
      - elastic
    ports:
      - 5601:5601
    environment:
      SERVERNAME: my-kibana
      ELASTICSEARCH_URL: https://elastic:9200
      ELASTICSEARCH_HOSTS: https://elastic:9200
      ELASTICSEARCH_USERNAME: kibana_system
      ELASTICSEARCH_PASSWORD: changeme
      ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES: $CERTS_DIR/ca/ca.crt
      SERVER_SSL_ENABLED: "true"
      SERVER_SSL_KEY: $CERTS_DIR/my-kibana/my-kibana.key
      SERVER_SSL_CERTIFICATE: $CERTS_DIR/my-kibana/my-kibana.crt
    networks:
      - elk
    volumes:
      - certs:$CERTS_DIR:z
      #- ./kibana/kibana.yml:/usr/share/kibana/config/kibana.yml:z

  logs01:
    image: docker.elastic.co/logstash/logstash:${ELASTIC_VERSION}
    container_name: logs01
    restart: always
    env_file: .env
    depends_on:
      - elastic
    ports:
      - "5044:5044"
      - "50000:50000"
      - "9600:9600"
    volumes:
      - ./logstash/logstash.yml:/usr/share/logstash/config/logstash.yml
      - ./logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
      - certs:$CERTS_DIR:z
      # - ./logstash/ca.crt:/usr/share/logstash/config/ca.crt
      # - lsdata:/usr/share/logstash/data
    environment:
      - "LS_JAVA_OPTS=-Xmx1g -Xms1g"
    networks:
      - elk

  wait_until_ready:
    image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}
    command: /usr/bin/true
    depends_on: {"elastic": {"condition": "service_healthy"}}


networks:
  elk:
    driver: bridge
#volumes: {"data01", "data02", "lsdata", "certs"}
volumes: {"lsdata", "certs"}
  1. Dịch vụ Elasticsearch (elastic):

    • Container_name: Đặt tên cho container Elasticsearch là "elastic".

    • Image: Sử dụng ảnh Docker của Elasticsearch từ địa chỉ "docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}". Biến ${ELASTIC_VERSION} chứa phiên bản Elasticsearch.

    • Environment: Thiết lập các biến môi trường cho Elasticsearch, bao gồm cấu hình cơ bản và các cấu hình bảo mật như mật khẩu, SSL, chứng chỉ và khóa.

    • Volumes: Liên kết thư mục "certs" với "$CERTS_DIR" để chia sẻ chứng chỉ và khóa giữa máy chủ và container Elasticsearch.

    • Ulimits: Thiết lập giới hạn tài nguyên cho container, bao gồm giới hạn bộ nhớ và số lượng file.

    • Ports: Mở cổng 9200 để có thể truy cập Elasticsearch từ bên ngoài.

    • Networks: Liên kết container với mạng "elk".

  2. Dịch vụ Kibana (kib01):

    • Container_name: Đặt tên cho container Kibana là "kib01".

    • Image: Sử dụng ảnh Docker của Kibana từ địa chỉ "docker.elastic.co/kibana/kibana:${ELASTIC_VERSION}". Biến ${ELASTIC_VERSION} chứa phiên bản Kibana.

    • Environment: Thiết lập các biến môi trường cho Kibana, bao gồm cấu hình kết nối với Elasticsearch, SSL, xác thực và cấu hình khác.

    • Volumes: Liên kết thư mục "certs" với "$CERTS_DIR" để chia sẻ chứng chỉ và khóa giữa máy chủ và container Kibana.

    • Ports: Mở cổng 5601 để có thể truy cập Kibana từ bên ngoài.

    • Networks: Liên kết container với mạng "elk".

  3. Dịch vụ Logstash (logs01):

    • Container_name: Đặt tên cho container Logstash là "logs01".

    • Image: Sử dụng ảnh Docker của Logstash từ địa chỉ "docker.elastic.co/logstash/logstash:${ELASTIC_VERSION}". Biến ${ELASTIC_VERSION} chứa phiên bản Logstash.

    • Environment: Thiết lập các biến môi trường cho Logstash, bao gồm cấu hình tài nguyên Java và các cấu hình khác.

    • Ports: Mở các cổng 5044, 50000 và 9600 để có thể truy cập Logstash từ bên ngoài.

    • Volumes: Liên kết thư mục cấu hình Logstash và thư mục "certs" để chia sẻ chứng chỉ và khóa giữa máy chủ và container Logstash.

    • Networks: Liên kết container với mạng "elk".

  4. Dịch vụ wait_until_ready:

    • Image: Sử dụng ảnh Docker của Elasticsearch từ địa chỉ "docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}". Biến ${ELASTIC_VERSION} chứa phiên bản Elasticsearch.

    • Command: Thiết lập lệnh sẽ được thực thi trong container, ở đây là "/usr/bin/true".

    • Depends_on: Chỉ định rằng dịch vụ hiện tại phải chờ đến khi dịch vụ Elasticsearch hoàn tất khởi động.

  5. Networks:

    • Định nghĩa mạng "elk" với driver là "bridge".
  6. Volumes:

    • Định nghĩa các thư mục dữ liệu "certs" để được sử dụng trong các dịch vụ.

Tạo các file cấu hình ELK

File elasticsearch.yml


xpack.monitoring.collection.enabled: true
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.key: certs/elastic.key
xpack.security.transport.ssl.certificate: certs/elastic.crt
xpack.security.transport.ssl.certificate_authorities: [ "certs/ca.crt" ]

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.key:  certs/elastic.key
xpack.security.http.ssl.certificate: certs/elastic.crt
xpack.security.http.ssl.certificate_authorities: [ "certs/ca.crt" ]

node.data : true
discovery.type : single-node
#discovery.seed_hosts : []
#cluster.initial_master_nodes : []

node.name: elastic
discovery.seed_hosts: [ "elastic" ]
  1. xpack.monitoring.collection.enabled: true: Bật tính năng thu thập dữ liệu giám sát của X-Pack để theo dõi và ghi lại các sự kiện và thông tin về hoạt động của Elasticsearch.

  2. xpack.security.enabled: true: Bật tính năng bảo mật của X-Pack để bảo vệ Elasticsearch và các kết nối tới nó.

  3. xpack.security.transport.ssl.enabled: true: Kích hoạt việc sử dụng SSL/TLS cho giao tiếp truyền tải dữ liệu giữa các nút Elasticsearch.

  4. xpack.security.transport.ssl.verification_mode: certificate: Xác thực chứng chỉ SSL/TLS khi thiết lập kết nối giữa các nút Elasticsearch.

  5. xpack.security.transport.ssl.key: certs/elastic.key: Đường dẫn đến khóa (private key) SSL/TLS được sử dụng cho giao tiếp truyền tải dữ liệu.

  6. xpack.security.transport.ssl.certificate: certs/elastic.crt: Đường dẫn đến chứng chỉ SSL/TLS được sử dụng cho giao tiếp truyền tải dữ liệu.

  7. xpack.security.transport.ssl.certificate_authorities: [ "certs/ca.crt" ]: Đường dẫn đến danh sách các chứng chỉ CA (Certificate Authorities) được sử dụng để xác thực chứng chỉ SSL/TLS khi thiết lập kết nối giữa các nút Elasticsearch.

  8. xpack.security.http.ssl.enabled: true: Kích hoạt việc sử dụng SSL/TLS cho giao tiếp HTTP với Elasticsearch.

  9. xpack.security.http.ssl.key: certs/elastic.key: Đường dẫn đến khóa (private key) SSL/TLS được sử dụng cho giao tiếp HTTP.

  10. xpack.security.http.ssl.certificate: certs/elastic.crt: Đường dẫn đến chứng chỉ SSL/TLS được sử dụng cho giao tiếp HTTP.

  11. xpack.security.http.ssl.certificate_authorities: [ "certs/ca.crt" ]: Đường dẫn đến danh sách các chứng chỉ CA (Certificate Authorities) được sử dụng để xác thực chứng chỉ SSL/TLS trong giao tiếp HTTP.

  12. node.data: true: Đánh dấu nút Elasticsearch hiện tại là một nút dữ liệu (data node), có khả năng lưu trữ và xử lý dữ liệu.

  13. discovery.type: single-node: Cấu hình Elasticsearch hoạt động ở chế độ đơn lẻ, không sử dụng tính năng phát hiện nút tự động và không có nút khác để tạo một cụm (cluster) Elasticsearch.

  14. node.name: elastic: Đặt tên cho nút Elasticsearch hiện tại là "elastic".

  15. discovery.seed_hosts: [ "elastic" ]: Xác định danh sách các nút được sử dụng để phát hiện và kết nối với nút Elasticsearch hiện tại. Trong trường hợp này, chỉ có một nút với tên "elastic" được sử dụng.

file kibana.yml

server.host: "0.0.0.0"

server.name: "my-kibana"

elasticsearch.hosts: https://elastic:9200

elasticsearch.username: kibana
elasticsearch.password: 9gFaCsK6bIZ4zo6SrWeW

server.ssl.enabled: true
server.ssl.certificate: /usr/share/elasticsearch/config/certificates/my-kibana/my-kibana.crt
server.ssl.key: /usr/share/elasticsearch/config/certificates/my-kibana/my-kibana.key

elasticsearch.ssl.certificateAuthorities: /usr/share/elasticsearch/config/certificates/ca/ca.crt
  1. server.host: "0.0.0.0": Kibana sẽ lắng nghe các kết nối đến từ mọi địa chỉ IP trên máy chủ.

  2. server.name: "my-kibana": Đặt tên cho máy chủ Kibana là "my-kibana".

  3. elasticsearch.hosts: https://elastic:9200: Xác định địa chỉ và cổng của Elasticsearch mà Kibana sẽ kết nối đến. Trong trường hợp này, Kibana sẽ kết nối tới Elasticsearch thông qua địa chỉ "elastic:9200".

  4. elasticsearch.username: kibana: Xác định tên người dùng (username) được sử dụng để xác thực khi Kibana kết nối đến Elasticsearch. Trong trường hợp này, Kibana sẽ sử dụng người dùng có tên "kibana".

  5. elasticsearch.password: 9gFaCsK6bIZ4zo6SrWeW: Xác định mật khẩu (password) của người dùng được sử dụng để xác thực khi Kibana kết nối đến Elasticsearch. Trong trường hợp này, mật khẩu của người dùng "kibana" là "9gFaCsK6bIZ4zo6SrWeW".

  6. server.ssl.enabled: true: Bật chế độ sử dụng SSL/TLS cho giao tiếp giữa Kibana và các trình duyệt hoặc các yêu cầu đến Kibana.

  7. server.ssl.certificate: /usr/share/elasticsearch/config/certificates/my-kibana/my-kibana.crt: Đường dẫn đến chứng chỉ SSL/TLS được sử dụng bởi Kibana để thiết lập giao tiếp bảo mật. Trong trường hợp này, chứng chỉ SSL/TLS của Kibana được lưu trữ tại "/usr/share/elasticsearch/config/certificates/my-kibana/my-kibana.crt".

  8. server.ssl.key: /usr/share/elasticsearch/config/certificates/my-kibana/my-kibana.key: Đường dẫn đến khóa (private key) SSL/TLS được sử dụng bởi Kibana để mã hóa và giải mã thông tin giao tiếp bảo mật. Trong trường hợp này, khóa SSL/TLS của Kibana được lưu trữ tại "/usr/share/elasticsearch/config/certificates/my-kibana/my-kibana.key".

  9. elasticsearch.ssl.certificateAuthorities: /usr/share/elasticsearch/config/certificates/ca/ca.crt: Đường dẫn đến danh sách các chứng chỉ CA (Certificate Authorities) được sử dụng để xác thực chứng chỉ SSL/TLS khi Kibana kết nối đến Elasticsearch. Trong trường hợp này, danh sách chứng chỉ CA được lưu trữ tại "/usr/share/elasticsearch/config/certificates/ca/ca.crt".

file logstash.yml

xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: changeme
xpack.monitoring.elasticsearch.hosts: https://elastic:9200
xpack.monitoring.elasticsearch.ssl.certificate_authority: /usr/share/elasticsearch/config/certificates/ca/ca.crt
  1. xpack.monitoring.enabled: true: Bật tính năng giám sát của X-Pack trong Elasticsearch.

  2. xpack.monitoring.elasticsearch.username: logstash_system: Xác định tên người dùng (username) được sử dụng để xác thực khi Elasticsearch gửi dữ liệu giám sát tới chính nó. Trong trường hợp này, Elasticsearch sử dụng người dùng có tên "logstash_system".

  3. xpack.monitoring.elasticsearch.password: changeme: Xác định mật khẩu (password) của người dùng được sử dụng để xác thực khi Elasticsearch gửi dữ liệu giám sát tới chính nó. Trong trường hợp này, mật khẩu của người dùng "logstash_system" là "changeme".

  4. xpack.monitoring.elasticsearch.hosts: https://elastic:9200: Xác định địa chỉ và cổng của Elasticsearch nơi dữ liệu giám sát sẽ được gửi đến. Trong trường hợp này, dữ liệu giám sát sẽ được gửi tới Elasticsearch thông qua địa chỉ "elastic:9200".

  5. xpack.monitoring.elasticsearch.ssl.certificate_authority: /usr/share/elasticsearch/config/certificates/ca/ca.crt: Đường dẫn đến chứng chỉ CA (Certificate Authority) được sử dụng để xác thực chứng chỉ SSL/TLS khi Elasticsearch gửi dữ liệu giám sát tới chính nó. Trong trường hợp này, chứng chỉ CA được lưu trữ tại "/usr/share/elasticsearch/config/certificates/ca/ca.crt".

file logstash.conf

input {
        beats {
                port => 5044
        }
        tcp {
                port => 50000
        }
}
filter {
}
output {
  elasticsearch {
        hosts => ["https://elastic:9200"]
        user => "elastic"
        password => "z6GwKILzDTf9bMZiFDfw"
        cacert => "/usr/share/elasticsearch/config/certificates/ca/ca.crt"
        data_stream => "true"
  }
}

Input:

  • Beats: Đây là một input plugin của Logstash được cấu hình để lắng nghe các sự kiện từ Beats, chẳng hạn như Filebeat hoặc Metricbeat. Nó lắng nghe trên cổng 5044.

  • TCP: Đây là một input plugin của Logstash để lắng nghe dữ liệu từ kết nối TCP. Nó lắng nghe trên cổng 50000.

Output:

  • Elasticsearch: Đây là một output plugin của Logstash được cấu hình để gửi dữ liệu tới Elasticsearch. Các thông số cấu hình bao gồm:

    • Hosts: Địa chỉ Elasticsearch và cổng, trong trường hợp này là "elastic:9200".

    • User và Password: Tên người dùng và mật khẩu để xác thực khi gửi dữ liệu tới Elasticsearch.

    • Cacert: Đường dẫn đến chứng chỉ CA (Certificate Authority) để xác thực chứng chỉ SSL/TLS của Elasticsearch.

    • Data Stream: Được đặt là "true" để gửi dữ liệu vào một data stream trong Elasticsearch.

Data Stream là một tính năng trong Elastic Stack (bao gồm Elasticsearch, Logstash và Kibana) giúp tổ chức và quản lý dữ liệu trong Elasticsearch một cách cấu trúc và hiệu quả hơn.

Chạy ELK Stack với Docker

cd ~/elk-docker-ssl
  1. Tạo chứng chỉ:

     docker-compose -f create-certs.yml run --rm create_certs
    

    Lệnh này sử dụng công cụ docker-compose để chạy một container dựa trên cấu hình được chỉ định trong tệp create-certs.yml. Container chạy dịch vụ create_certs, nhiệm vụ của nó là tạo ra các chứng chỉ cần thiết cho Elasticsearch. Cờ --rm đảm bảo rằng container sẽ được tự động xóa sau khi hoàn tất.

  2. Khởi chạy cụm Elasticsearch:

     docker-compose up -d
    

    Lệnh này sử dụng công cụ docker-compose để khởi chạy cụm Elasticsearch dựa trên cấu hình được chỉ định trong tệp docker-compose.yml. Cụm bao gồm ba nút Elasticsearch và cờ -d chạy các container ở chế độ detached, có nghĩa là chúng sẽ chạy ở nền.

  3. Sao chép CA certificate từ volume Docker vào máy chủ:

docker cp elastic:/usr/share/elasticsearch/config/certificates/ca/ca.crt /tmp

Lệnh này sẽ sao chép CA certificate từ container Docker có tên là "elkastic" và đường dẫn "/usr/share/elasticsearch/config/certificates/ca/ca.crt" vào thư mục "/tmp" trên máy chủ.

  1. Kiểm tra Elasticsearch có đang chạy hay không:
curl --cacert /tmp/ca.crt -u elastic:Something https://elastic:9200?pretty

Lệnh này sử dụng CA certificate đã được sao chép vào máy chủ để truy cập Elasticsearch thông qua giao thức HTTPS tại địa chỉ "localhost:9200". Bạn sẽ sử dụng tên người dùng "elastic" và mật khẩu "Something" để xác thực.

  1. Thay đổi mật khẩu cho người dùng kibana_system:
vbnetCopy code$ curl --cacert /tmp/ca.crt -u elastic:something -X POST "https://elastic:9200/_security/user/kibana_system/_password?pretty" -H 'Content-Type: application/json' -d'
{
  "password" : "changeme"
}
'

Lệnh này gửi một yêu cầu POST thông qua HTTPS để thay đổi mật khẩu cho người dùng kibana_system thành "changeme". Cần xác thực bằng người dùng "elastic" và mật khẩu "something", và mật khẩu mới sẽ được áp dụng cho người dùng kibana_system.

  1. Thay đổi mật khẩu cho người dùng logstash_system:
vbnetCopy code$ curl --cacert /tmp/ca.crt -u elastic:something -X POST "https://elastic:9200/_security/user/logstash_system/_password?pretty" -H 'Content-Type: application/json' -d'
{
  "password" : "changeme"
}
'

Lệnh này gửi một yêu cầu POST thông qua HTTPS để thay đổi mật khẩu cho người dùng logstash_system thành "changeme". Tương tự như trên, cần xác thực bằng người dùng "elastic" và mật khẩu "something", và mật khẩu mới sẽ được áp dụng cho người dùng logstash_system.

Truy cập https://10.15.242.163:5601 và test