国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

實(shí)戰(zhàn)詳解Docker快速搭建部署ELK

這篇具有很好參考價(jià)值的文章主要介紹了實(shí)戰(zhàn)詳解Docker快速搭建部署ELK。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一.安裝前須知
以下步驟在 VMware 中的 centos 7 中操作,ip 地址為:192.168.161.128;

注意安裝的時(shí)候最好統(tǒng)一版本,否則后面會(huì)出現(xiàn)許多問題,進(jìn)官網(wǎng)搜索對應(yīng)鏡像,查看 Tags 標(biāo)簽下的版本,目前我這最新的 Tags 是 7.12.1,所以拉取鏡像時(shí)統(tǒng)一加上該版本號。官網(wǎng)鏡像地址

Docker 搭建 ELK 之前需熟悉 Docker 的相關(guān)指令,如:拷貝容器文件docker cp、強(qiáng)制刪除容器: docker rm -f 容器id、創(chuàng)建網(wǎng)絡(luò): docker network create elk、查看日志:docker logs container 等等。

為了方便后續(xù)文件的掛載,先創(chuàng)建如下目錄 /usr/local/elk ,再執(zhí)行 mkdir /usr/local/elk/{elasticsearch,kibana,logstash} 創(chuàng)建3個(gè)對應(yīng)的目錄,所以以下操作如無特別說明,均在 /usr/local/elk下執(zhí)行。

為了容器間的通信,需要先用 docker 創(chuàng)建一個(gè)網(wǎng)絡(luò):?

docker network create --subnet=172.10.0.0/16 elk

二.安裝 Docker
安裝 docker 可以照著官網(wǎng)步驟一步一步來,挺簡單的。

Install Docker Engine on CentOS

安裝完后可以看下版本:docker -v
查看 docker 詳細(xì)信息:docker info

三.Docker 安裝 ElasticSearch

1.搜索、下載并查看鏡像

# 搜索鏡像
docker search elasticsearch
# 拉取 7.12.1 版本鏡像
docker pull elasticsearch:7.12.1
# 查看所有鏡像
docker images

2.拷貝配置文件

# 運(yùn)行 elasticsearch
docker run -d --name es --net elk -P -e "discovery.type=single-node" elasticsearch:7.12.1
# 進(jìn)入容器查看配置文件路徑
docker exec -it es /bin/bash
cd config

?在 config 中可看到 elasticsearch.yml 配置文件,再執(zhí)行?pwd?可以看到當(dāng)前目錄為:?/usr/share/elasticsearch/config,所以退出容器,執(zhí)行文件的拷貝:

# 將容器內(nèi)的配置文件拷貝到 /usr/local/elk/elasticsearch/ 中
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch/

# 修改文件權(quán)限
chmod 666 elasticsearch/elasticsearch.yml

# 在elasticsearch 目錄下再創(chuàng)建data目錄,同時(shí)修改權(quán)限
chmod -R 777 elasticsearch/data

注意:這里要修改文件的權(quán)限為可寫,否則,進(jìn)行掛載后,在外部修改配置文件,容器內(nèi)部的配置文件不會(huì)更改。同時(shí),創(chuàng)建 data 目錄進(jìn)行掛載。

3.重新運(yùn)行容器并掛載:

# 先刪除舊的容器
docker rm -f es

# 運(yùn)行新的容器
docker run -d --name es \
--net elk \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
--privileged=true \
-v $PWD/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v $PWD/elasticsearch/data/:/usr/share/elasticsearch/data \
elasticsearch:7.12.1

說明:

  • -p (小寫)映射端口號,主機(jī)端口:容器端口
  • -P(大寫)隨機(jī)為容器指定端口號
  • -v 進(jìn)行容器的掛載
  • –name 指定容器別名
  • –net 連接指定網(wǎng)絡(luò)
  • -e 指定啟動(dòng)容器時(shí)的環(huán)境變量
  • -d 后臺(tái)運(yùn)行容器
  • –privileged=true 使容器有權(quán)限掛載目錄

4.查看容器

# 查看運(yùn)行中的容器
docker ps

# 查看容器日志
docker logs es

curl localhost:9200

如果日志無誤,可以用?curl ip:9200?查看結(jié)果,也可用瀏覽器輸入?http://ip:9200?查看。至此,elasticsearch 安裝完成。

同時(shí),我們可以在 data 目錄下看到容器內(nèi)的數(shù)據(jù),并且在宿主機(jī)修改也會(huì)同步到容器的內(nèi)部。

如果遇到連接不上elasticsearch?

實(shí)戰(zhàn)詳解Docker快速搭建部署ELK

解決辦法
在elasticsearch的配置文件(config/elasticsearch.yml)里加上允許跨域的配置

http.cors.enabled:?true
http.cors.allow-origin:?"*"

重新啟動(dòng)elasticsearch

四.Docker 安裝 ElasticSearch-

head(可選)

說明:這是 ES 的可視化界面,是為了方便后面調(diào)試時(shí)看日志有沒成功輸入到 ES 用的,非必須安裝的項(xiàng)目,也可跳過此步。

1.拉取鏡像
docker pull mobz/elasticsearch-head:5

2.運(yùn)行容器
docker run -d --name es_admin --net elk -p 9100:9100 mobz/elasticsearch-head:5
注意:這里使用到了 --net elk,即我們之間創(chuàng)建的網(wǎng)絡(luò);
如果沒有創(chuàng)建,則需要進(jìn)行下一步修改配置配件,如果前面照著創(chuàng)建了,則可以直接跳過。

3.編輯配置文件(可選)

#將配置文件拷貝到當(dāng)前目錄下
docker cp es_admin:/usr/src/app/Gruntfile.js ./

?編輯該配置文件,在 connect -> server -> options 下添加:?hostname: '0.0.0.0'實(shí)戰(zhàn)詳解Docker快速搭建部署ELK

#將文件拷貝回去
docker cp Gruntfile.js es_admin:/usr/src/app/
# 重啟容器
docker restart es_admin

因?yàn)樵撶R像內(nèi)部沒有安裝 vi 和 vim,所以無法直接在容器內(nèi)部編輯,需要我們拷貝出來,修改后再進(jìn)行覆蓋。
重啟容器后,通過?http://ip:9100?訪問即可查詢 ES 中的數(shù)據(jù)。

4.頁面無數(shù)據(jù)問題

如果打開頁面之后節(jié)點(diǎn)、索引等顯示完全,但是數(shù)據(jù)瀏覽中無數(shù)據(jù)顯示,那么我們還需要改一個(gè)配置文件,這是因?yàn)?ES 6 之后增加了請求頭嚴(yán)格校驗(yàn)的原因(我們裝的是 7.12.1 版本):

docker cp es_admin:/usr/src/app/_site/vendor.js ./
vi vendor.js
docker cp vendor.js es_admin:/usr/src/app/_site/

這個(gè)配置文件內(nèi)容有點(diǎn)多,這里需要了解 vim 的部分操作:
按 ESC 進(jìn)入命令模式,接著 : set nu 顯示行號,接著 : 行號 跳轉(zhuǎn)到對應(yīng)的行。
在這里我們需要修改:(注意不是把整行替換掉)
6886 行:contentType: "application/json;charset=UTF-8"
7573 行: contentType === "application/json;charset=UTF-8"
改完后再將配置文件 copy 回容器,不需重啟,直接刷新頁面即可。

五.Docker 安裝 Kibana

步驟大致如同 elasticsearch:

1.拉取鏡像

docekr search kibana
docker pull kibana:7.12.1

# 啟動(dòng) kibana 容器并連接同一網(wǎng)絡(luò)
docker run -d --name kibana --net elk -P -e "ELASTICSEARCH_HOSTS=http://es:9200" -e "I18N_LOCALE=zh-CN" kibana:7.12.1

注意: -e "ELASTICSEARCH_HOSTS=http://es:9200" 表示連接剛才啟動(dòng)的 elasticsearch 容器,因?yàn)樵谕痪W(wǎng)絡(luò)(elk)中,地址可直接填 容器名+端口,即 es:9200, 也可以填 http://192.168.161.128:9200,即 http://ip:端口。

2.拷貝文件

docker cp kibana:/usr/share/kibana/config/kibana.yml kibana/

chmod 666 kibana/kibana.yml

拷貝完成后,修改該配置文件,主要修改 elastissearch.hosts 并新增 i18n.locale 配置:

es 地址改為剛才安裝的 es 地址,因容器的隔離性,這里最好填寫 http://ip:9200;
kibana 界面默認(rèn)是英文的,可以在配置文件中加上 i18n.locale: zh-CN(注意冒號后面有個(gè)空格)。
這樣有了配置文件,在啟動(dòng)容器時(shí)就不用通過 -e 指定環(huán)境變量了。

#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
# elasticsearch 地址
elasticsearch.hosts: [ "http://192.168.161.128:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
# 開啟 kibana 的漢化(經(jīng)測試沒有這項(xiàng)也沒問題)
# i18n.locale: zh-CN  

注意:如果使用掛載配置文件的方式啟動(dòng)的話,elasticsearch.hosts 這需填寫?http://ip:9200,而不能使用容器名了,否則后面 kibana 連接 es 會(huì)失敗。(ip為es容器的網(wǎng)絡(luò)地址

3.重新開個(gè)容器

#刪除原來未掛載的容器
docker rm -f kibana

# 啟動(dòng)容器并掛載
docker run -d --name kibana \
-p 5601:5601 \
-v $PWD/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
--net elk \
--privileged=true \
kibana:7.12.1

4.查看結(jié)果

打開瀏覽器,輸入:http://ip:5601?打開 kibana 控制臺(tái),如果未能成功打開,可以使用:?docker logs kibana?查看容器日志看是否運(yùn)行有誤等。

可參考官網(wǎng):Install Kibana with Docker

六.Docker 安裝 LogStash

安裝 Logtash 繼續(xù)同上:

1.拉取鏡像并拷貝配置

docker pull logstash:7.12.1

docker run -d -P --name logstash --net elk logstash:7.12.1

# 拷貝數(shù)據(jù)
docker cp logstash:/usr/share/logstash/config logstash/
docker cp logstash:/usr/share/logstash/data logstash/
docker cp logstash:/usr/share/logstash/pipeline logstash/

#文件夾賦權(quán)
chmod -R 777 logstash/

2.修改相應(yīng)配置文件

  • 修改 logstash/config 下的 logstash.yml 文件,主要修改 es 的地址:
    http.host: "0.0.0.0"
    xpack.monitoring.elasticsearch.hosts: [ "http://192.168.161.128:9200" ]
    

4.查看日志

docker logs -f logstash

每次啟動(dòng)完容器最好檢查下日志,這樣方便后續(xù)的步驟,如果出了問題,可以看到是哪的問題并方便解決。

七.創(chuàng)建springboot應(yīng)用

這個(gè)比較簡單,主要就是幾個(gè)配置文件:

  1. pom.xml 文件,引入 logstash 的依賴:
    <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>6.6</version>
    </dependency>
    
  2. 在 resource 下創(chuàng)建 log/logback-springxml 文件,這里我們主要填寫
    <destination>ip:端口</destination>,關(guān)于?<pattern>標(biāo)簽則看個(gè)人使用情況修改。
  3. 最后修改 application.yml 文件:
    logging:
      config: classpath:log/logback-spring.xml
    

    啟動(dòng)后在 elasticsearch-head 界面即可看到輸出的日志:實(shí)戰(zhàn)詳解Docker快速搭建部署ELK

    實(shí)戰(zhàn)詳解Docker快速搭建部署ELK

    ?至此,完成了用 Docker 搭建 elk 的過程。

七.后記

在搭建 ELK 時(shí)有遇到如下幾個(gè)問題,特此記錄一下:

1.Docker 拉取內(nèi)存不足

由于我是在 VMware 裝的 centos 7 上搭建的,開始裝系統(tǒng)時(shí)掛載到根目錄下的內(nèi)存較小,因此,docker 拉取鏡像時(shí),到了 Logstash 這一步就提示內(nèi)存不足了,又不想重新裝過系統(tǒng),因此,可以通過編輯 docker 的配置文件,來改變默認(rèn)的容器卷下載的目錄。

# 查看 docker 默認(rèn)下載地址
docker info | grep "Docker Root Dir"

# 創(chuàng)建目錄
mkdir /home/docker-root

# 編輯配置文件 
vi /usr/lib/systemd/system/docker.service

在編輯 docker.service 配置文件時(shí),在 [Service] 節(jié)點(diǎn)下找到 ExecStart,在后面加上:?--graph=/home/docker-root?即可,docker-root 即為剛才創(chuàng)建的目錄:

[Service]
ExecStart=/usr/bin/dockerd --graph=/home/docker-root

最后重啟 docker:

systemctl daemon-reload
systemctl restart docker
systemctl enable docker

2.Logstash端口映射

在編輯?logstash.conf?文件時(shí),需要注意暴露出來的端口還需要容器映射才行,否則會(huì)導(dǎo)致 springboot 連接不上 logstash,如:

input {
  tcp {
    mode => "server"
    host => "0.0.0.0"  # 允許任意主機(jī)發(fā)送日志
    port => 5044
    codec => json_lines    # 數(shù)據(jù)格式
  }
}

這里允許任意主機(jī)通過 5044 端口發(fā)送日志,則在啟動(dòng)容器的時(shí)候,同時(shí)需要?-p 5044:5044?將端口映射出去,否則 springboot 在啟動(dòng)時(shí)會(huì)連接不到 logstash。

3.啟動(dòng)容器時(shí)內(nèi)存不足

在啟動(dòng) elasticsearch 或 logstash 容器時(shí),可能會(huì)出現(xiàn)內(nèi)存不足的情況,我們可以通過編輯修改指定文件來修改內(nèi)存分配:

# 查找 jvm.options 文件
find / -name jvm.options

找到對應(yīng)的?jvm.options?修改文件中的?-Xms(最小內(nèi)存)和-Xmx(最大內(nèi)存)。

或者在啟動(dòng) elasticsearch 容器時(shí),可直接加入環(huán)境變量如下所示,而 logstash 的目前沒找到,可通過前面修改?jvm.options修改。文章來源地址http://www.zghlxwxcb.cn/news/detail-470636.html

-e "ES_JAVA_OPTS=-Xms1g -Xmx1g" 

到了這里,關(guān)于實(shí)戰(zhàn)詳解Docker快速搭建部署ELK的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【ELK企業(yè)級日志分析系統(tǒng)】安裝與部署ELK詳解

    【ELK企業(yè)級日志分析系統(tǒng)】安裝與部署ELK詳解

    ELK平臺(tái)是一套完整的日志集中處理解決方案,將 ElasticSearch、Logstash和kibana三個(gè)開源工具配合使用 , 完成更強(qiáng)大的,用戶對日志的查詢、排序、統(tǒng)計(jì)需求。 ElasticSearch ElasticSearch:是基于Lucene(一個(gè) 全文檢索引擎的架構(gòu) )開發(fā)的分布式存儲(chǔ)檢索引擎,用來存儲(chǔ)各類日志。 El

    2024年02月16日
    瀏覽(26)
  • ELK安裝、部署、調(diào)試 (八)logstash配置語法詳解

    1.讀取文件。 ?使用filewatch的ruby gem庫來監(jiān)聽文件變化,并通過.sincedb的數(shù)據(jù)庫文件記錄被監(jiān)聽日志we年的讀取進(jìn)度(時(shí)間 搓) 。sincedb數(shù)據(jù)文件的默認(rèn)路徑為path.data/plugins/inputs/file下面,文件名類似 于.sincedb_234534534sdfgsfd23,path.data為logstash的插件存儲(chǔ)目錄默認(rèn)是LOGSTASH_HOME/dat

    2024年02月10日
    瀏覽(18)
  • 私有部署ELK,搭建自己的日志中心(二)-- filebeat的介紹與安裝

    私有部署ELK,搭建自己的日志中心(二)-- filebeat的介紹與安裝

    在搭建ELK系統(tǒng)之前,你有必要去了解下,為何大家在agent端普遍青睞filebeat,而把logstash放置于更加靠后端。 輕量級的filebeat,作為agent角色,是安裝在每臺(tái)虛擬機(jī)上。 filebeat的學(xué)習(xí)分為兩大部分: 安裝(二進(jìn)制或docker) 配置文件filebeat.yml 本文主要介紹docker安裝方式,對于其

    2024年02月03日
    瀏覽(20)
  • ELK實(shí)戰(zhàn),Linux版docker安裝ElasticSearch、ES-head、Logstash、Kiabana入門,無坑詳細(xì)圖解

    ELK實(shí)戰(zhàn),Linux版docker安裝ElasticSearch、ES-head、Logstash、Kiabana入門,無坑詳細(xì)圖解

    ????????項(xiàng)目需要,記錄一次ELK日志分析系統(tǒng)無坑初始安裝過程,并給大家整理出了操作elasticsearch的主要命令,elasticsearch!伙伴們都懂得哦!別的不多說,看過內(nèi)容概覽,直接開整!??! 1-1 修改/etc/security/limits.conf limits.conf文件限制著用戶可以使用的最大文件數(shù),最大線

    2023年04月09日
    瀏覽(23)
  • 『Kafka』在Docker中快速部署Kafka及其管理平臺(tái)搭建

    『Kafka』在Docker中快速部署Kafka及其管理平臺(tái)搭建

    ??讀完這篇文章里你能收獲到 在Docker中快速部署Kafka 在Docker中快速部署Zookeeper 搭建Kafka管理平臺(tái) Kafka部署測試 感謝點(diǎn)贊+收藏,避免下次找不到~ 參數(shù)說明: -e KAFKA_BROKER_ID=0 在kafka集群中,每個(gè)kafka都有一個(gè)BROKER_ID來區(qū)分自己 -e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka 配置zookeep

    2024年02月16日
    瀏覽(52)
  • halo搭建炫酷個(gè)人博客快速部署:docker+docker-compose+nginx

    halo搭建炫酷個(gè)人博客快速部署:docker+docker-compose+nginx

    ?? 服務(wù)器與網(wǎng)站部署知識體系目錄 部署一個(gè)炫酷的個(gè)人博客只需要按照本文的指令直接 cv 即可。 但請注意打開服務(wù)器防火墻的 80 和 3306 端口。 Halo是一款現(xiàn)代化的開源博客/CMS系統(tǒng),所有代碼開源在GitHub上且處于積極維護(hù)狀態(tài)。它是基于 Java Spring Boot 構(gòu)建的,易于部署,支

    2024年02月08日
    瀏覽(15)
  • 【實(shí)戰(zhàn)詳解】如何快速搭建接口自動(dòng)化測試框架?Python + Requests

    【實(shí)戰(zhàn)詳解】如何快速搭建接口自動(dòng)化測試框架?Python + Requests

    本文主要介紹如何使用Python語言和Requests庫進(jìn)行接口自動(dòng)化測試,并提供詳細(xì)的代碼示例和操作步驟。希望能對讀者有所啟發(fā)和幫助。 隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,越來越多的應(yīng)用程序采用Web API(也稱為RESTful API)作為數(shù)據(jù)交換的主要方式。針對API進(jìn)行自動(dòng)化測試已經(jīng)變得非

    2024年02月09日
    瀏覽(24)
  • docker快速部署oracle19c、oracle12c,測試環(huán)境問題復(fù)現(xiàn)demo快速搭建筆記

    docker快速部署oracle19c、oracle12c,測試環(huán)境問題復(fù)現(xiàn)demo快速搭建筆記

    (復(fù)制sql,替換表名執(zhí)行完畢后,再修改自己想要的字段即可) (復(fù)制sql,替換自己的表名) 一個(gè)oracle表示一個(gè)實(shí)例,一個(gè)實(shí)例可以配置多個(gè)服務(wù),獨(dú)立維護(hù)的oracle服務(wù) 一個(gè)服務(wù)內(nèi)可以有多個(gè)表空間,默認(rèn)表空間就有很多,比如常見的SYSTEM、TEMP、USERS 常見的默認(rèn)角色: 1、

    2024年02月04日
    瀏覽(30)
  • golang—kafka架構(gòu)原理快速入門以及自測環(huán)境搭建(docker單節(jié)點(diǎn)部署)

    golang—kafka架構(gòu)原理快速入門以及自測環(huán)境搭建(docker單節(jié)點(diǎn)部署)

    Apache Kafka 是一個(gè)分布式的流處理平臺(tái)。它具有以下特點(diǎn): 支持消息的發(fā)布和訂閱,類似于 RabbtMQ、ActiveMQ 等消息隊(duì)列 支持?jǐn)?shù)據(jù)實(shí)時(shí)處理 能保證消息的可靠性投遞 支持消息的持久化存儲(chǔ),并通過多副本分布式的存儲(chǔ)方案來保證消息的容錯(cuò) 高吞吐率,單 Broker 可以輕松處理數(shù)千

    2024年02月04日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包