Docker搭建ELK環(huán)境收集日志

一. Docker環(huán)境搭建

http://www.reibang.com/p/7a93894c4e62

二. 鏡像拉取

可取官網(wǎng)拉取洞慎,或去docker hub拉取:
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
https://www.elastic.co/guide/en/kibana/current/docker.html

# 此處使用的是7.15.1的版本
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.1
docker pull docker.elastic.co/kibana/kibana:7.15.1
docker pull docker.elastic.co/logstash/logstash:7.15.1
docker pull docker.elastic.co/beats/filebeat:7.15.1

查看鏡像是否拉取成功

# docker images
[root@node1 elk]# docker images | grep elastic
docker.elastic.co/beats/filebeat                7.15.1      311985fdcf7c   13 months ago   489MB
docker.elastic.co/logstash/logstash             7.15.1      852762e1f73f   13 months ago   980MB
docker.elastic.co/elasticsearch/elasticsearch   7.15.1      fa601f7c24cb   13 months ago   792MB
docker.elastic.co/kibana/kibana                 7.15.1      9871707dda25   13 months ago   1.19GB

三. 創(chuàng)建容器間訪問網(wǎng)絡(luò)

[root@node1 elk]# docker network create elk
8971f8fd750f0dd0a9fe67e444ec11ed5e2b0e0fc0991141840b244d183058d5

四. 啟動elasticSearch

1. 啟動運(yùn)行

參數(shù)說明
-d 后臺運(yùn)行
--name 設(shè)置容器名稱
-p 端口映射,將本機(jī)的9200映射到容器里的9200端口,訪問localhost:9200就會訪問到容器的9200
-e 環(huán)境變量,discovery.type=single-node 將elasticsearch設(shè)置成單機(jī)運(yùn)行
--net 指定通信網(wǎng)絡(luò)

[root@node1 elk]# docker run -d --name es01-test -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --net elk fa601f7c24cb
b582510a9e787c71cb25635377c85d7a3fa8fdc93e87c976b2cbd3a3e8560551
2. 查看是否運(yùn)行成功
[root@node1 elk]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
b582510a9e78   fa601f7c24cb   "/bin/tini -- /usr/l…"   4 seconds ago   Up 3 seconds   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   es01-test
[root@node1 elk]#
[root@node1 elk]# curl 'http://localhost:9200'
{
  "name" : "b582510a9e78",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "Bd0G3r8rRXGc9JeRXc99BQ",
  "version" : {
    "number" : "7.15.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "83c34f456ae29d60e94d886e455e6a3409bba9ed",
    "build_date" : "2021-10-07T21:56:19.031608185Z",
    "build_snapshot" : false,
    "lucene_version" : "8.9.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
ES啟動驗(yàn)證

五. 啟動kibana

1. 啟動運(yùn)行

參數(shù)說明:
-d 后臺運(yùn)行
--name 設(shè)置容器名稱
-p 端口映射,將本機(jī)的9200映射到容器里的9200端口,訪問localhost:9200就會訪問到容器的9200
-e 環(huán)境變量琢蛤,ELASTICSEARCH_HOSTS=http://es01-test:9200 指定es的訪問地址
--net 指定通信網(wǎng)絡(luò)
-e ES_JAVA_OPTS配置JVM參數(shù) Xmx 最大堆大小和 -Xms 最小堆大小毅整,防止啟動占用內(nèi)存過大默認(rèn)2g

[root@node1 elk]# docker run -d --name kib01-test -p 5601:5601 --net elk -e "ELASTICSEARCH_HOST=http://es01-test:9200" 9871707dda25
03926ce2f04e3c7ea0ac7d107b9ff6f429cbbdd259b81317e7fda5d32e224b50
[root@node1 kibana]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                                                                  NAMES
03926ce2f04e   9871707dda25   "/bin/tini -- /usr/l…"   9 minutes ago    Up 9 minutes    0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                              kib01-test

將es的地址信息寫入kibana的配置文件功咒,啟動時(shí)指定配置
(1)查看kibana默認(rèn)配置文件

[root@node1 kibana]# docker exec -it 03926ce2f04e /bin/bash
bash-4.4$ ls
LICENSE.txt  NOTICE.txt  README.txt  bin  config  data  node  node_modules  package.json  plugins  src  x-pack
bash-4.4$ cat config/kibana.yml 
#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
bash-4.4$

(2)在宿主機(jī)中創(chuàng)建一份配置文件跋理,并修改為es容器訪問地址

[root@node1 kibana]# cat /opt/docker/elk/kibana/kibana.yml
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://es01-test:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
# 語言
i18n.locale: "zh-CN"

(3)重新啟動kibana

 docker run -v /opt/docker/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml -d --name kib01-test -p 5601:5601 --net elk -e "ELASTICSEARCH_HOST=http://es01-test:9200" 9871707dda25
2. 查看是否運(yùn)行成功
[root@node1 kibana]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS         PORTS                                                                                  NAMES
5367980ff867   9871707dda25   "/bin/tini -- /usr/l…"   14 minutes ago   Up 4 minutes   0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                              kib01-test
kibana

六. 啟動logstash

1. 啟動運(yùn)行

(1)配置編輯

mkdir -p /opt/docker/elk/logstash
vim /opt/docker/elk/logstash/logstash.yml
vim /opt/docker/elk/logstash/logstash.conf

# logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: es01-test:9200

# logstash.conf:filebeat通過4567端口將收集的日志發(fā)給logstash震放,最后輸出到es中
input {
  beats {
    port => 4567
  }
}
filter {
  #Only matched data are send to output.
}
output {
  elasticsearch {
    hosts  => ["http://es01-test:9200"]   #ElasticSearch host, can be array.
    index  => "logapp-%{+YYYY.MM}"         #The index to write data to.
  }
}

(2)啟動運(yùn)行

docker run -d -p 4567:4567 --net elk --name logstash01 -p 5044:5044 -p 5045:5045  \
-v /opt/docker/elk/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-v /opt/docker/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml 852762e1f73f
2. 查看是否運(yùn)行成功
[root@node1 logstash]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                                                                                                NAMES
0b5d2dac2c70   852762e1f73f   "/usr/local/bin/dock…"   4 minutes ago    Up 3 seconds    0.0.0.0:4567->4567/tcp, :::4567->4567/tcp, 0.0.0.0:5044-5045->5044-5045/tcp, :::5044-5045->5044-5045/tcp, 9600/tcp   logstash01

七. 啟動filebeat

1. 啟動運(yùn)行

(1)編輯配置文件

[root@node1 filebeat]# pwd
/opt/docker/elk/filebeat
[root@node1 filebeat]# 
[root@node1 filebeat]# cat filebeat.yml 
filebeat.inputs:
- type: log
  paths:
    - /var/log/logapp/app.info.log
output.logstash:
    hosts: ["172.19.0.4:4567"]

(2)創(chuàng)建日志收集文件
在日志收集文件中隨便寫入日志數(shù)據(jù)

[root@node1 logapp]# pwd
/opt/docker/elk/log/logapp
[root@node1 logapp]# 
[root@node1 logapp]# cat app.info.log 
test-2021-11-21
[root@node1 logapp]# echo 'my log test' >> app.info.log 
[root@node1 logapp]# 
[root@node1 logapp]# cat app.info.log 
test-2021-11-21
my log test
[root@node1 logapp]# 

(3)啟動運(yùn)行

-e:設(shè)置環(huán)境變量 kibana地址
-v:本地配置文件掛載到容器中

 docker run -d \
   -u root \
   -v /opt/docker/elk/log/logapp:/var/log/logapp:rw \
   -v /opt/docker/elk/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro \
   -e setup.kibana.host=172.19.0.3:5601 \
   --name filebeat01 \
   --net elk 311985fdcf7c
2. 查看是否運(yùn)行成功
[root@node1 logapp]# docker ps | grep filebeat
4a1f92fb4d0e   311985fdcf7c   "/usr/bin/tini -- /u…"   15 seconds ago   Up 14 seconds                                                                                                                        filebeat01
[root@node1 logapp]#
日志收集成功
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末比默,一起剝皮案震驚了整個(gè)濱河市幻捏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌退敦,老刑警劉巖粘咖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異侈百,居然都是意外死亡瓮下,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門钝域,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讽坏,“玉大人,你說我怎么就攤上這事例证÷肺兀” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵织咧,是天一觀的道長胀葱。 經(jīng)常有香客問我,道長笙蒙,這世上最難降的妖魔是什么抵屿? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮捅位,結(jié)果婚禮上轧葛,老公的妹妹穿的比我還像新娘搂抒。我一直安慰自己,他們只是感情好尿扯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布求晶。 她就那樣靜靜地躺著,像睡著了一般衷笋。 火紅的嫁衣襯著肌膚如雪芳杏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天右莱,我揣著相機(jī)與錄音蚜锨,去河邊找鬼。 笑死慢蜓,一個(gè)胖子當(dāng)著我的面吹牛亚再,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晨抡,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼氛悬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了耘柱?” 一聲冷哼從身側(cè)響起如捅,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎调煎,沒想到半個(gè)月后镜遣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡士袄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年悲关,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娄柳。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寓辱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赤拒,到底是詐尸還是另有隱情秫筏,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布挎挖,位于F島的核電站这敬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蕉朵。R本人自食惡果不足惜鹅颊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望墓造。 院中可真熱鬧堪伍,春花似錦、人聲如沸觅闽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛉拙。三九已至尸闸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間孕锄,已是汗流浹背吮廉。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留畸肆,地道東北人宦芦。 一個(gè)月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像轴脐,于是被迫代替她去往敵國和親调卑。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容