如何使用docker compose 部署ELK 8.X及監(jiān)控
1. 前置環(huán)境
安裝docker
安裝docker-compose
相關(guān)版本:
ES:8.5.0
kibana:8.5.0
logstash:8.5.0
2. docker-compose yaml文件
# 在指定路徑創(chuàng)建配置文件 vim docker-compose-es-kibana-logstash.yaml
version: "3"
services:
elasticsearch:
restart: always
image: docker.elastic.co/elasticsearch/elasticsearch:8.5.0
container_name: elasticsearch
hostname: elasticsearch
network_mode: host
privileged: true
ulimits:
memlock:
soft: -1
hard: -1
environment:
- "ES_JAVA_OPTS=-Xms8192m -Xmx8192m"
- "http.host=0.0.0.0"
- "node.name=es_node01"
- "cluster.name=es_cluster"
- "discovery.type=single-node"
ports:
- "9200:9200"
- "9300:9300"
volumes:
- "/opt/config/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml"
- "/opt/config/es/plugins:/usr/share/elasticsearch/plugins:rw"
- "/opt/data/es/data:/usr/share/elasticsearch/data:rw"
kibana:
restart: always
container_name: kibana
image: docker.elastic.co/kibana/kibana:8.5.0
network_mode: host
environment:
- XPACK_MONITORING_COLLECTION_ENABLED="true"
ports:
- "5601:5601"
volumes:
- "/opt/config/kibana/config:/usr/share/kibana/config"
logstash:
image: docker.elastic.co/logstash/logstash:8.5.0
container_name: logstash
network_mode: host
ports:
- "9600:9600"
restart: always
volumes:
- "/opt/config/logstash/config:/usr/share/logstash/config"
- "/opt/config/logstash/pipeline:/usr/share/logstash/pipeline"
- "/opt/data/logstash:/usr/share/logstash/data"
- "/opt/logs/logstash:/usr/share/logstash/logs"
3. elasticsearch 配置
數(shù)據(jù)存儲(chǔ)映射路徑配置777權(quán)限
chmod -R 777 /opt/data/es/data
es配置文件
# 根據(jù)配置文件映射的路徑,創(chuàng)建es配置文件 vim /opt/config/es/config/elasticsearch.yml
# 集群節(jié)點(diǎn)名稱 node.name: "es_node01" # 設(shè)置集群名稱為elasticsearch cluster.name: "es_cluster" # 網(wǎng)絡(luò)訪問(wèn)限制 network.host: 0.0.0.0 # 以單一節(jié)點(diǎn)模式啟動(dòng) discovery.type: single-node # 注意:ES 8.X的版本,需要使用 node.roles配置角色,否則啟動(dòng)報(bào)錯(cuò) #當(dāng)前該節(jié)點(diǎn)是不是有資格競(jìng)選主節(jié)點(diǎn) #node.master: true #當(dāng)前該節(jié)點(diǎn)是否存儲(chǔ)數(shù)據(jù) #node.data: true node.roles: [master,data,remote_cluster_client] # 是否支持跨域 http.cors.enabled: true # 表示支持所有域名 http.cors.allow-origin: "*" # 設(shè)置映射端口 http.port: 9200 # 內(nèi)部節(jié)點(diǎn)之間溝通端口 transport.port: 9300 # 內(nèi)存交換的選項(xiàng),官網(wǎng)建議為true bootstrap.memory_lock: true # 修改安全配置、關(guān)閉證書(shū)校驗(yàn)、啟動(dòng)xpack監(jiān)控 xpack.security.http.ssl: enabled: false xpack.security.transport.ssl: enabled: false xpack.security.enabled: false xpack.monitoring.collection.enabled: true # http傳輸內(nèi)容的最大容量 http.max_content_length: 200mb
4. logstash 配置
數(shù)據(jù)存儲(chǔ)映射路徑配置777權(quán)限
chmod -R 777 /opt/data/logstash
logstash配置文件
vim /opt/config/logstash/config/logstash.yml
# 開(kāi)啟xpack監(jiān)控 xpack.monitoring.enabled: true xpack.monitoring.elasticsearch.hosts: ["http://localhost:9200"] xpack.monitoring.collection.interval: 10s
日志文件配置
vim /opt/config/logstash/config/log4j2.properties
status = error
name = LogstashPropertiesConfig
appender.console.type = Console
appender.console.name = plain_console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c]%notEmpty{[%X{pipeline.id}]}%notEmpty{[%X{plugin.id}]} %m%n
appender.json_console.type = Console
appender.json_console.name = json_console
appender.json_console.layout.type = JSONLayout
appender.json_console.layout.compact = true
appender.json_console.layout.eventEol = true
rootLogger.level = ${sys:ls.log.level}
rootLogger.appenderRef.console.ref = ${sys:ls.log.format}_consolepipelines配置文件
vim /opt/config/logstash/config/pipelines.yml
# This file is where you define your pipelines. You can define multiple. # For more information on multiple pipelines, see the documentation: # https://www.elastic.co/guide/en/logstash/current/multiple-pipelines.html - pipeline.id: main path.config: "/usr/share/logstash/pipeline"
配置logstash數(shù)據(jù)處理流程,依據(jù)實(shí)際項(xiàng)目需求配置,此處以input為kafka,output為es舉例
vim /opt/config/logstash/pipeline/logstash-kafka-es.conf
input {
kafka {
bootstrap_servers => "localhost:9092"
topics => ["topic1"]
codec => "json"
}
}
output {
if [fields][type] == "topic1" {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "topic1-%{+YYYY.MM.dd}"
}
}
}5. kibana 配置
vim /opt/config/kibana/config/kibana.yml
# Default Kibana configuration for docker target i18n.locale: zh-CN server.host: "0.0.0.0" server.shutdownTimeout: "5s" elasticsearch.hosts: [ "http://localhost:9200" ] monitoring.ui.container.elasticsearch.enabled: true #此處為新生成的kibana賬號(hào)和密碼 elasticsearch.username: "kibana" elasticsearch.password: "123456" xpack.monitoring.enabled: true xpack.monitoring.elasticsearch.hosts: ["http://localhost:9200"] xpack.monitoring.kibana.collection.enabled: true xpack.monitoring.kibana.collection.interval: 10000
6. docker compose 啟動(dòng)/停止
在docker-compose yaml所在的路徑運(yùn)行啟動(dòng)或停止命令
# 啟動(dòng) docker-compose -f docker-compose-es-kibana-logstash.yaml up -d # 停止 docker-compose -f docker-compose-es-kibana-logstash.yaml down
7. 訪問(wèn)測(cè)試
es:http://ip:9200
kibana:http://ip:5601
kibana 監(jiān)控集群狀態(tài):kibana --> Management --> 堆棧監(jiān)測(cè)

到此這篇關(guān)于docker compose 部署ELK 8.X及監(jiān)控的文章就介紹到這了,更多相關(guān)docker compose 部署ELK 8.X內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
簡(jiǎn)述Docker安裝Tomcat鏡像并部署web項(xiàng)目
這篇文章主要介紹了簡(jiǎn)述Docker安裝Tomcat鏡像并部署web項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
docker環(huán)境下安裝jenkins容器的詳細(xì)教程
這篇文章主要介紹了docker環(huán)境下安裝jenkins容器的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
Docker安裝RabbitMQ AMQP協(xié)議及重要角色
這篇文章主要為大家介紹了Docker安裝RabbitMQ AMQP協(xié)議和主要角色詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
解決docker拉取鏡像報(bào)錯(cuò):error pulling image configurat
在使用Docker拉取Kafka鏡像時(shí)可能會(huì)遇到"error pulling image configuration"的錯(cuò)誤,這可以通過(guò)編輯Docker配置文件并重啟Docker服務(wù)來(lái)解決,具體步驟包括:1. 編輯Docker配置文件;2. 使用命令systemctl restart docker重啟Docker服務(wù)2024-11-11
Docker容器無(wú)法被stop or kill問(wèn)題的解決方法
這篇文章主要介紹了Docker容器無(wú)法被stop or kill問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
低版本Docker升級(jí)高版本Docker的詳細(xì)教程及成功避坑
如果我們使用docker來(lái)管理容器,那么保持docker引擎的更新將會(huì)是十分重要的,下面這篇文章主要給大家介紹了關(guān)于低版本Docker升級(jí)高版本Docker的詳細(xì)教程及成功避坑,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
Docker默認(rèn)網(wǎng)段修改實(shí)現(xiàn)方法解析
這篇文章主要介紹了Docker默認(rèn)網(wǎng)段修改實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Docker快速部署主流腳本語(yǔ)言JavaScript的全過(guò)程
JavaScript是目前所有主流瀏覽器上唯一支持的腳本語(yǔ)言,這也是早期JavaScript的唯一用途,下面這篇文章主要給大家介紹了關(guān)于Docker快速部署主流腳本語(yǔ)言JavaScript的相關(guān)資料,需要的朋友可以參考下2023-02-02

