Лучшая практика Docker: Docker развертывает практику ElasticSearch с одним узлом
Лучшая практика Docker: Docker развертывает практику ElasticSearch с одним узлом

Лучшая практика Docker: Docker развертывает практику ElasticSearch с одним узлом

2024 Год эксплуатации и обслуживания облачных сервисов Настоящий бой Документация 99 оригинальный проект Нет. 015 Глава |Docker оптимальный Настоящий бой「2024」Сериал Нет. 010 Глава

Привет,добро пожаловать вКвалифицирован в эксплуатации и обслуживании

Контент, которым сегодня поделились, Docker оптимальный Настоящий бой「2024」 в серии документов Docker Развертывание одного узла ElasticSearch Настоящий бой

В этой статье будет подробно описано, как использовать Docker Контейнеры и Docker Compose Развертывание одного узла ElasticSearch и настройка на основе x-pack сертификация и TLS шифрование.

Настоящий бой Служитьустройство Конфигурация (Архитектура 1:1 Реплицируйте мелкомасштабную производственную среду, конфигурация немного другая)

имя хоста

IP

ЦП (ядро)

Память (ГБ)

Системный диск (ГБ)

Диск с данными (ГБ)

использовать

docker-node-1

192.168.9.81

4

16

40

100

Докер-узел 1

docker-node-2

192.168.9.82

4

16

40

100

Докер-узел 2

docker-node-3

192.168.9.83

4

16

40

100

Докер-узел 3

общий

3

12

48

120

300

Настоящий бойсвязанные с окружающей средойи软件版本信息

  • 操作系统:openEuler 22.03 LTS SP3
  • Docker:24.0.7
  • ElasticSearch:7.17.20

1. Предварительные условия

  • Конфигурация параметров ядра системы
Язык кода:bash
копировать
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -w vm.max_map_count=262144
  • Подготовьте пароль

Во всех конфигурациях, включающих пароли в этой статье, используются общие пароли. PleaseChangeMe

производственная среда,Пожалуйста, сгенерируйте парольустройствогенерировать20 человек и болеебез специальных символовСодержит только прописные и строчные буквы и цифры.Смешанный составпароль。

2. Подготовьте предварительные данные

2.1 Создать каталог данных

Язык кода:bash
копировать
mkdir -p /data/containers/elasticsearch/{data,plugins,logs}
chown 1000:0 /data/containers/elasticsearch/{data,logs}
mkdir -p /data/containers/elasticsearch/config/certs

2.2 Создание пользовательского файла конфигурации ElasticSearch

Существует два варианта реализации пользовательской конфигурации службы ElasticSearch:

  • Установите переменные среды в Docker-compose
  • писать elasticsearch.yml Конфигурационный файл, смонтированный в контейнер Конфигурациядокумент Оглавление

В этой статье выбраны два типа Нет., премьер elasticsearch.yml Конфигурационный файл, смонтированный в контейнер /usr/share/elasticsearch/config Схема каталогов.

создавать Конфигурациядокумент,vi /data/containers/elasticsearch/config/elasticsearch.yml

Язык кода:yaml
копировать
# базовый Конфигурация
cluster.name: es-cluster
discovery.type: single-node
network.host: 0.0.0.0
http.port: 9200

# давать возможность xpack и TLS
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

# Сертификат Конфигурация
xpack.security.transport.ssl.keystore.type: PKCS12
xpack.security.transport.ssl.truststore.type: PKCS12
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
#xpack.security.transport.ssl.keystore.password: PleaseChangeMe
#xpack.security.transport.ssl.truststore.password: PleaseChangeMe

# другой Конфигурация
# Запрещать geoip
ingest.geoip.downloader.enabled: false

# давать возможностьаудит
xpack.security.audit.enabled: true

2.3 Создать файл CA

  1. Выполните следующую команду, чтобы создать файл CA
Язык кода:bash
копировать
cd /data/containers/elasticsearch
docker run -it --rm \
-v ./config/certs:/usr/share/elasticsearch/config/certs \
elasticsearch:7.17.20 \
bin/elasticsearch-certutil ca --out config/certs/elastic-stack-ca.p12 --pass "PleaseChangeMe"

проиллюстрировать:

--pass Производственную среду необходимо заменить собственным паролем.

После правильного выполнения результат вывода будет следующим:

Язык кода:bash
копировать
[root@docker-node-1 elasticsearch]# docker run -it --rm \
> -v ./config/certs:/usr/share/elasticsearch/config/certs \
> elasticsearch:7.17.20 \
> bin/elasticsearch-certutil ca --out config/certs/elastic-stack-ca.p12 --pass "PleaseChangeMe"
This tool assists you in the generation of X.509 certificates and certificate
signing requests for use with SSL/TLS in the Elastic stack.

The 'ca' mode generates a new 'certificate authority'
This will create a new X.509 certificate and private key that can be used
to sign certificate when running in 'cert' mode.

Use the 'ca-dn' option if you wish to configure the 'distinguished name'
of the certificate authority

By default the 'ca' mode produces a single PKCS#12 output file which holds:
    * The CA certificate
    * The CA's private key

If you elect to generate PEM format certificates (the -pem option), then the output will
be a zip file containing individual files for the CA certificate and private key
  1. Проверьте, создан ли сертификат
Язык кода:bash
копировать
[root@docker-node-1 elasticsearch]# ls config/certs/
elastic-stack-ca.p12

2.4 Создание сертификата elastic-certificates.p12

  1. Выполните следующую команду, чтобы создать сертификат elastic-certificates.p12.
Язык кода:bash
копировать
docker run -it --rm \
-v ./config/certs:/usr/share/elasticsearch/config/certs \
elasticsearch:7.17.20 \
bin/elasticsearch-certutil cert --silent --ca config/certs/elastic-stack-ca.p12 --out config/certs/elastic-certificates.p12 --ca-pass "PleaseChangeMe" --pass "PleaseChangeMe"

проиллюстрировать:

--ca-pass CA Пароль сертификата

--pass p12 Пароль сертификата

После правильного выполнения результат вывода будет следующим:

Язык кода:bash
копировать
[root@docker-node-1 elasticsearch]# docker run -it --rm \
> -v ./config/certs:/usr/share/elasticsearch/config/certs \
> elasticsearch:7.17.20 \
> bin/elasticsearch-certutil cert --silent --ca config/certs/elastic-stack-ca.p12 --out config/certs/elastic-certificates.p12 --ca-pass "PleaseChangeMe" --pass "PleaseChangeMe"
[root@docker-node-1 elasticsearch]# ls config/certs/
elastic-certificates.p12  elastic-stack-ca.p12
  1. Разрешения ConfigurationCertificateDocument
Язык кода:bash
копировать
chown -R 1000.0 config/certs/

2.5 Создать зашифрованный файл хранилища ключей

По умолчанию Elasticsearch 自动генерировать用于安全设置的密钥存储库документelasticsearch.keystore

Целью этого файла является хранение данных, которые необходимо зашифровать. key/value Данные конфигурации. Однако по умолчанию документ просто запутан, и команда шифрования отсутствует. elasticsearch-keystore list можно легко прочитатьдокументсодержание。Рекомендуется шифровать производственную среду.

  1. Выполните следующую команду, чтобы создать elasticsearch.keystore документ
Язык кода:bash
копировать
docker run -it --rm \
-v ./config:/usr/share/elasticsearch/config \
elasticsearch:7.17.20 \
bin/elasticsearch-keystore create -p

После правильного выполнения результат вывода будет следующим:

Язык кода:bash
копировать
[root@docker-node-1 elasticsearch]# docker run -it --rm \
> -v ./config:/usr/share/elasticsearch/config \
> elasticsearch:7.17.20 \
> bin/elasticsearch-keystore create -p
Enter new password for the elasticsearch keystore (empty for no password):
Enter same password again:
Created elasticsearch keystore in /usr/share/elasticsearch/config/elasticsearch.keystore
[root@docker-node-1 elasticsearch]# ls config/
certs  elasticsearch.keystore  elasticsearch.yml

Уведомление: Во время выполнения команды,Нужно нажатьнамекатьВведите пароль дважды

  1. добавить в p12 Пароль сертификата Конфигурациядобавить в прибыть keystore документ
Язык кода:bash
копировать
# keystore.secure_password
docker run -it --rm \
-v ./config:/usr/share/elasticsearch/config \
elasticsearch:7.17.20 \
bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password

# truststore.secure_password
docker run -it --rm \
-v ./config:/usr/share/elasticsearch/config \
elasticsearch:7.17.20 \
bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

После правильного выполнения результат вывода будет следующим:

Язык кода:bash
копировать
# Правильное выполнение без какого-либо вывода
[root@docker-node-1 elasticsearch]# docker run -it --rm \
> -v ./config:/usr/share/elasticsearch/config \
> elasticsearch:7.17.20 \
> bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
Enter password for the elasticsearch keystore :
Enter value for xpack.security.transport.ssl.keystore.secure_password:

[root@docker-node-1 elasticsearch]# docker run -it --rm \
> -v ./config:/usr/share/elasticsearch/config \
> elasticsearch:7.17.20 \
> bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
Enter password for the elasticsearch keystore :
Enter value for xpack.security.transport.ssl.truststore.secure_password:

Уведомление:

Во время выполнения команды,Пожалуйста, нажмитенамекатьВведите пароль дважды Нет.Одноразовый пароль elasticsearch.keystore документпароль, Нет. Вторичный пароль. secure_password пароль

  1. Убедитесь, что elasticsearch.keystore зашифрован.
Язык кода:bash
копировать
docker run -it --rm \
-v ./config/:/usr/share/elasticsearch/config \
elasticsearch:7.17.20 \
bin/elasticsearch-keystore list

После правильного выполнения результат вывода будет следующим:

Язык кода:bash
копировать
[root@docker-node-1 elasticsearch]# docker run -it --rm \
> -v ./config/:/usr/share/elasticsearch/config \
> elasticsearch:7.17.20 \
> bin/elasticsearch-keystore list
Enter password for the elasticsearch keystore :
keystore.seed
xpack.security.transport.ssl.keystore.secure_password
xpack.security.transport.ssl.truststore.secure_password

Уведомление: намекать Enter password for the elasticsearch keystore : После ввода правильного пароля отображается содержимое документа, указывающее, что документ был зашифрован.

3. Установите и разверните ElasticSearch.

3.1 Создайте файл docker-compose.yml.

создавать Конфигурациядокумент,vi /data/containers/elasticsearch/docker-compose.yml

Язык кода:yaml
копировать
name: 'elasticsearch'
services:
  elasticsearch:
    restart: always
    image: elasticsearch:7.17.20
    container_name: es-single
    ulimits:
      nproc: 65535
      memlock:
        soft: -1
        hard: -1
    environment:
      - TZ=Asia/Shanghai
      - ES_JAVA_OPTS=-Xms2048m -Xmx2048m
      - KEYSTORE_PASSWORD=PleaseChangeMe
    volumes:
      - ./data:/usr/share/elasticsearch/data
      - ./plugins:/usr/share/elasticsearch/plugins
      - ./logs:/usr/share/elasticsearch/logs
      - ./config/certs/:/usr/share/elasticsearch/config/certs
      - ./config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./config/elasticsearch.keystore:/usr/share/elasticsearch/config/elasticsearch.keystore
    networks:
      - app-tier
    ports:
      - 9200:9200
      - 9300:9300
networks:
  app-tier:
    name: app-tier
    driver: bridge
    #external: true
    #ipam:
    #  config:
    #    - subnet: 172.22.1.0/24

проиллюстрировать:

ES_JAVA_OPTS Необходимо настроить в соответствии с фактической конфигурацией сервера. JAVA_OPTS Конфигурация

KEYSTORE_PASSWORD Должен быть зашифрован с помощью сгенерированного elasticsearch.keystore Используйте пароль последовательно, когда документ, в противном случае ES Запуск не удастся

ipam Конфигурация Понятно app-tier сетевой адрес,Эта статья аннотирует,производственная среда Рекомендуется правильное планирование Конфигурация。

external: true, Другие службы на том же сервере уже создали сеть. app-tier когда, создать elasticsearch Во время обслуживания будет сообщено об ошибке. Вы можете включить этот параметр.

3.2 Создайте и запустите службу ElasticSearch

  • Запустить службу
Язык кода:bash
копировать
cd /data/containers/elasticsearch
docker compose up -d
  • После правильного выполнения результат вывода будет следующим:
Язык кода:bash
копировать
[root@docker-node-1 elasticsearch]# docker compose up -d
[+] Running 1/2
 ⠸ Network app-tier     Created                                                                                                                                 0.4s
 ✔ Container es-single  Started 

3.3 Проверка статуса контейнера

  • Просмотр статуса контейнера ElasticSearch
Язык кода:bash
копировать
[root@docker-node-1 elasticsearch]# docker compose ps
NAME        IMAGE                   COMMAND                  SERVICE         CREATED          STATUS                  PORTS
es-single   elasticsearch:7.17.20   "/bin/tini -- /usr/l…"   elasticsearch   16 seconds ago   Up Less than a second   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp
  • Просмотр журнала службы ElasticSearch
Язык кода:bash
копировать
# По журналу elasticsearch Есть ли какие-либо отклонения? Результаты опущены.
docker compose logs -f

4. Настройка пароля

4.1 Автоматически генерировать начальные пароли для зарезервированных пользователей

Выполните следующую команду:

Язык кода:bash
копировать
docker exec -it es-single bin/elasticsearch-setup-passwords auto

После правильного выполнения результат вывода будет следующим:

Язык кода:bash
копировать
[root@docker-node-1 elasticsearch]# docker exec -it es-single bin/elasticsearch-setup-passwords auto
Enter password for the elasticsearch keystore :
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y


Changed password for user apm_system
PASSWORD apm_system = dFeUZ5kSgq3Gh4GNVZSJ

Changed password for user kibana_system
PASSWORD kibana_system = YUuHRRQ9NX7ZbdGj40hY

Changed password for user kibana
PASSWORD kibana = YUuHRRQ9NX7ZbdGj40hY

Changed password for user logstash_system
PASSWORD logstash_system = oCqLt1l1ZWCB9eWkKoMS

Changed password for user beats_system
PASSWORD beats_system = iMGY5hLUJBCBHPUrBm2k

Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = 7YJ8pTA1fIiTJEGKcHIT

Changed password for user elastic
PASSWORD elastic = Uhfiv3zGRvGsNN58shT0

проиллюстрировать:

Обязательный ввод при выполнении команды elasticsearch keystore документпароль Пожалуйста, запишите и правильно сохраните автоматически сгенерированный пароль.

4.2 Создание пользовательского администратора

Создайте пользовательского администратора для ежедневного управления.

Выполните следующую команду:

Язык кода:bash
копировать
docker exec -it es-single bin/elasticsearch-users useradd elasticadmin -p PleaseChangeMe -r superuser

5. Проверочный тест ElasticSearch

5.1 Просмотр узлов кластера с помощью командной строки

Выполните следующую команду:

Язык кода:bash
копировать
curl -X GET -u elasticadmin "localhost:9200/_cat/nodes?v=true&pretty"

После правильного выполнения результат вывода будет следующим:

Язык кода:bash
копировать
[root@docker-node-1 elasticsearch]# curl -X GET -u elasticadmin "localhost:9200/_cat/nodes?v=true&pretty"
Enter host password for user 'elasticadmin':
ip         heap.percent ram.percent cpu load_1m load_5m load_15m node.role   master name
172.20.0.2           16          45   0    0.04    0.14     0.34 cdfhilmrstw *      5e53c312d114

проиллюстрировать: Введите пользователя намекать elasticadmin пароль。

6. Часто задаваемые вопросы

6.1 Вопрос 1

Язык кода:bash
копировать
es-single  | {"type": "server", "timestamp": "2024-05-07T10:00:22,991+08:00", "level": "ERROR", "component": "o.e.i.g.GeoIpDownloader", "cluster.name": "es-cluster", "node.name": "163ac8cb28d7", "message": "exception during geoip databases update", "cluster.uuid": "BenkNlbKQ3a7IiqU5shtOw", "node.id": "iu7VycUqTXyXbsjSGpotVw" ,
es-single  | "stacktrace": ["java.net.UnknownHostException: geoip.elastic.co",
es-single  | "at sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567) ~[?:?]",
es-single  | "at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[?:?]",
es-single  | "at java.net.Socket.connect(Socket.java:751) ~[?:?]",
es-single  | "at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) ~[?:?]",
es-single  | "at sun.net.NetworkClient.doConnect(NetworkClient.java:178) ~[?:?]",
es-single  | "at sun.net.www.http.HttpClient.openServer(HttpClient.java:531) ~[?:?]",
es-single  | "at sun.net.www.http.HttpClient.openServer(HttpClient.java:636) ~[?:?]",
es-single  | "at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264) ~[?:?]",
es-single  | "at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:377) ~[?:?]",
es-single  | "at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) ~[?:?]",
es-single  | "at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1237) ~[?:?]",
es-single  | "at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1123) ~[?:?]",
es-single  | "at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) ~[?:?]",
es-single  | "at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1675) ~[?:?]",
es-single  | "at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1599) ~[?:?]",
es-single  | "at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:531) ~[?:?]",
es-single  | "at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:307) ~[?:?]",
es-single  | "at org.elasticsearch.ingest.geoip.HttpClient.lambda$get$0(HttpClient.java:55) ~[ingest-geoip-7.17.20.jar:7.17.20]",
es-single  | "at java.security.AccessController.doPrivileged(AccessController.java:571) ~[?:?]",
es-single  | "at org.elasticsearch.ingest.geoip.HttpClient.doPrivileged(HttpClient.java:97) ~[ingest-geoip-7.17.20.jar:7.17.20]",
es-single  | "at org.elasticsearch.ingest.geoip.HttpClient.get(HttpClient.java:49) ~[ingest-geoip-7.17.20.jar:7.17.20]",
es-single  | "at org.elasticsearch.ingest.geoip.HttpClient.getBytes(HttpClient.java:40) ~[ingest-geoip-7.17.20.jar:7.17.20]",
es-single  | "at org.elasticsearch.ingest.geoip.GeoIpDownloader.fetchDatabasesOverview(GeoIpDownloader.java:159) ~[ingest-geoip-7.17.20.jar:7.17.20]",
es-single  | "at org.elasticsearch.ingest.geoip.GeoIpDownloader.updateDatabases(GeoIpDownloader.java:147) ~[ingest-geoip-7.17.20.jar:7.17.20]",
es-single  | "at org.elasticsearch.ingest.geoip.GeoIpDownloader.runDownloader(GeoIpDownloader.java:284) [ingest-geoip-7.17.20.jar:7.17.20]",
es-single  | "at org.elasticsearch.ingest.geoip.GeoIpDownloaderTaskExecutor.nodeOperation(GeoIpDownloaderTaskExecutor.java:100) [ingest-geoip-7.17.20.jar:7.17.20]",
es-single  | "at org.elasticsearch.ingest.geoip.GeoIpDownloaderTaskExecutor.nodeOperation(GeoIpDownloaderTaskExecutor.java:46) [ingest-geoip-7.17.20.jar:7.17.20]",
es-single  | "at org.elasticsearch.persistent.NodePersistentTasksExecutor$1.doRun(NodePersistentTasksExecutor.java:42) [elasticsearch-7.17.20.jar:7.17.20]",
es-single  | "at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777) [elasticsearch-7.17.20.jar:7.17.20]",
es-single  | "at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) [elasticsearch-7.17.20.jar:7.17.20]",
es-single  | "at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [?:?]",
es-single  | "at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) [?:?]",
es-single  | "at java.lang.Thread.run(Thread.java:1583) [?:?]"] }
  • решение

Не используется в автономной среде geoip функция, в elasticsearch.ymlсерединадобавить вследующее Конфигурация Запрещать geoip downloader

Язык кода:css
копировать
ingest.geoip.downloader.enabled: false

6.2 Вопрос 2

  • Проблемное явление

При добавлении нового пользователя-администратора ошибка следующая:

Язык кода:bash
копировать
[root@1--2--3--1--2--3--0006 elasticsearch]# docker run -it --rm \
> -v ./config:/usr/share/elasticsearch/config \
> elasticsearch:7.17.20 \
> bin/elasticsearch-users useradd elastic -p elasticPWD -r superuser

ERROR: Invalid username [elastic]... Username [elastic] is reserved and may not be used.
  • решение

elastic принадлежать elasticsearch Встроенные имена учетных записей не допускаются. Просто измените свое имя пользователя.

6.3 Вопрос 3

  • Проблемное явление

Ошибка возникает при запуске контейнера ElasticSearch.

Язык кода:bash
копировать
es-single  | Exception in thread "main" java.lang.IllegalStateException: Keystore passphrase required but none provided.
es-single  |    at org.elasticsearch.bootstrap.Bootstrap.readPassphrase(Bootstrap.java:305)
es-single  |    at org.elasticsearch.bootstrap.Bootstrap.loadSecureSettings(Bootstrap.java:261)
es-single  |    at org.elasticsearch.bootstrap.Bootstrap.loadSecureSettings(Bootstrap.java:247)
es-single  |    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:364)
es-single  |    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169)
es-single  |    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160)
es-single  |    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
es-single  |    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
es-single  |    at org.elasticsearch.cli.Command.main(Command.java:77)
es-single  |    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125)
es-single  |    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80)
  • решение

редактировать docker-compose.yml,существовать environment Добавлен в пункт Конфигурация. KEYSTORE_PASSWORD=PleaseChangeMe

Вышеупомянутое — это то, чем мы поделились сегодня. В следующем выпуске мы расскажем, как использовать Docker для развертывания Kibana и подключения к кластеру ElasticSearch. Пожалуйста, продолжайте обращать внимание! ! !

Отказ от ответственности:

  • Уровень автора ограничен,Несмотря на множество проверок и проверок,Мы прилагаем все усилия для обеспечения точности содержания.,Однако могут быть и пропуски。Пожалуйста, дайте свой совет экспертам отрасли.。
  • Содержание, указанное в этой статье, предоставлено только Настоящим. бойсредапроверятьтест,Читатели могут учиться и извлекать уроки из,ноКатегорически запрещено использовать непосредственно в производственной среде.Автор не несет ответственности за любые проблемы, возникшие в связи с этим.

Получить эту статью Настоящий бой видео(пожалуйста, обрати внимание,Асинхронный выпуск документального видео,пожалуйста, сначаласосредоточиться на)

Если вам понравилась эта статья, поделитесь, добавьте в избранное, поставьте лайк и прокомментируйте! Пожалуйста, продолжайте обращать внимание @Operation&Maintenance Юшу, жди новых хороших статей!

Добро пожаловать присоединиться «Планета знаний|Навыки эксплуатации и технического обслуживания» , получи больше KubeSphere, Kubernetes, облачная эксплуатация и обслуживание, автоматизированная эксплуатация и обслуживание, искусственный интеллект Большие модели и т.п. бой Навык。В будущей карьере оператора и технического обслуживания я всегда буду сидеть в роли вашего второго пилота.

Заявление об авторских правах

  • Весь контент эксклюзивный Оригинальный,Спасибо, что прочитали и собрали,Пожалуйста, свяжитесь с нами для получения разрешения на перепечатку. Воспроизведение без разрешения запрещено.
boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.