成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用Docker快速部署ELK分析Nginx日志實(shí)踐

el09xccxy / 2526人閱讀

摘要:數(shù)據(jù)導(dǎo)入與校驗(yàn)容器運(yùn)行之后,筆者需要驗(yàn)證是否啟動(dòng)成功,可以通過瀏覽器訪問和的頁面是否成功來判斷。的整體操作流程比較簡(jiǎn)單,首先是收集各種日志并進(jìn)行過濾,然后將過濾后的內(nèi)容發(fā)送到服務(wù)中,最后用戶通過的頁面查看中的日志數(shù)據(jù)作者湯青松微信日期

一、背景

筆者所在項(xiàng)目組的項(xiàng)目由多個(gè)子項(xiàng)目所組成,每一個(gè)子項(xiàng)目都存在一定的日志,有時(shí)候想排查一些問題,需要到各個(gè)地方去查看,極為不方便,此前聽說有ELK這種神器,搜索了一下,發(fā)現(xiàn)利用docker搭建似乎并不麻煩,于是進(jìn)行了一番嘗試,結(jié)果還比較順利,將此過程完整記錄下來,希望留給有需要的讀者進(jìn)行參考。

筆者這次實(shí)踐的過程當(dāng)中參考了較多的文檔與筆記,參考的鏈接地址有:
Docker ElK安裝部署使用教程 、
Docker Hub官網(wǎng)、
Docker ELK使用文檔

二、操作概要

服務(wù)安裝與運(yùn)行

數(shù)據(jù)導(dǎo)入與校驗(yàn)

繪圖配置與展示

三、服務(wù)安裝與運(yùn)行

安裝ELK有很多種方式,比如源碼、rpm包,或docker;不過docker又分為了單個(gè)安裝與ELK打包安裝,筆者這里是通過docker打包安裝,因?yàn)檫@樣的方式相比來說最為簡(jiǎn)單,因?yàn)橹恍枰螺d鏡像,然后運(yùn)行起來就可以了

3.1 鏡像下載

ELK鏡像已經(jīng)被docker官方收錄,因此只需要簡(jiǎn)單的命令即可拉取到鏡像;但考慮到ELK鏡像比較大,在拉取過程當(dāng)中存在比較慢的情況,因此筆者使用了阿里云的加速器來提速;筆者使用的是MAC版本的docker,參考配置方法如下:

3.1.1 鏡像加速

右鍵點(diǎn)擊桌面頂欄的 docker 圖標(biāo),選擇 Preferences ,在 Daemon 標(biāo)簽下的 Registry mirrors 列表中將 https://k0pf39f8.mirror.aliyuncs.com加到registry-mirrors的數(shù)組里,點(diǎn)擊 Apply & Restart按鈕,等待Docker重啟并應(yīng)用配置的鏡像加速器,如下截圖

3.1.2 鏡像獲取

設(shè)置好加速地址之后,筆者就可以開始拉取ELK鏡像,參考命令如下:

docker pull sebp/elk
筆者當(dāng)前鏡像laster對(duì)應(yīng)的版本為6.2.4,如果讀者以后看到此文章,在搭建的時(shí)候遇到一些問題,可以在命令后面加上:6.2.4來指定該版本,減少意外產(chǎn)生;

下載鏡像之后可以使用docker的命令來驗(yàn)證是否成功,參考命令如下:

docker images

筆者執(zhí)行后docker返回結(jié)果如下

REPOSITORY     TAG                 IMAGE ID            CREATED             SIZE
sebp/elk       latest              c916150705cc        2 weeks ago         1.49GB

在結(jié)果當(dāng)中可以看出,ELK鏡像已經(jīng)下載下來,占用了將近1.5GB空間

3.2 容器運(yùn)行

運(yùn)行此容器的時(shí)候,需要將宿主機(jī)的端口轉(zhuǎn)發(fā)到該容器,其中ES端口為9200,kibana端口為5601,logbate端口為5044;另外筆者建議將配置文件和數(shù)據(jù)存放在宿主機(jī),便于后期維護(hù),因此還需要將宿主機(jī)目錄掛載到容器/data當(dāng)中;最后構(gòu)造的命令如下:

docker run -p  5601:5601 -p 9200:9200 -p 5044:5044  -v /Users/song/dockerFile:/data -it -d --name elk sebp/elk

筆者在運(yùn)行容器的參數(shù)當(dāng)中加入了后臺(tái)運(yùn)行-d參數(shù),這樣筆者就不怕誤操作突然把容器停止了,但放置于后臺(tái)運(yùn)行,ELK的服務(wù)器啟動(dòng)過程是不可見的,這個(gè)啟動(dòng)時(shí)間根據(jù)你機(jī)器的性能所決定,筆者電腦大約在10秒鐘左右;如果覺得啟動(dòng)失敗,也可以將該容器刪除,然后重新創(chuàng)建一個(gè)容器,上述命令中的-d刪除即可看到啟動(dòng)過程。

3.3 數(shù)據(jù)導(dǎo)入與校驗(yàn)

容器運(yùn)行之后,筆者需要驗(yàn)證是否啟動(dòng)成功,可以通過瀏覽器訪問kibana和ES的頁面是否成功來判斷。

3.3.1 檢查Kibana

通過瀏覽器訪問kibana,如果正常出現(xiàn)界面,則代表啟動(dòng)成功,URL地址如下:

http://localhost:5601/

當(dāng)瀏覽器訪問成功之后,參考如下圖所示:

3.3.2 ES服務(wù)檢查

驗(yàn)證kibana啟動(dòng)成功之后,接著繼續(xù)驗(yàn)證ES服務(wù)是否啟動(dòng)成功,URL地址如下

http://localhost:9200/_search?pretty

訪問之后,此時(shí)ES里面應(yīng)該是沒有數(shù)據(jù)的,出現(xiàn)的界面如下

四、配置與驗(yàn)證

在保證es和kibana服務(wù)啟動(dòng)完成之后,筆者還需要進(jìn)行一些數(shù)據(jù)導(dǎo)入步驟

4.1 logstash配置

logstash配置主要有三個(gè)地方要處理,首先是輸入源在什么位置,然后是對(duì)數(shù)據(jù)進(jìn)行過濾或者格式化,最后是需要將數(shù)據(jù)輸出到什么地方;筆者在下方的配置只做了其中兩項(xiàng),因?yàn)樵趎ginx日志當(dāng)中已經(jīng)將日志格式化了,編輯配置文件命令參考如下:

vim /Users/song/dockerFile/config/logstash.conf

配置文件內(nèi)容參考如下

input {
file {
path => "/data/logs/access.log"
codec => "json"
}
}
output {
elasticsearch { hosts => ["127.0.0.1:9200"] }
stdout { codec => rubydebug }
}

在配置文件當(dāng)中,可以看到日志文件存放的位置在 "/data/logs/access.log"當(dāng)中,輸出的地址是127.0.0.1:9200,這是本機(jī)的ES服務(wù)

4.2 nginx日志格式

因?yàn)楣P者對(duì)logstash的配置文件語法不太熟悉,在里面寫過濾器和篩選項(xiàng)比較費(fèi)時(shí)間,所以選擇直接更改nginx中的日志格式,將nginx的日志文件設(shè)置為json格式,在更改nginx配置文件之前,需要獲取nginx配置文件路徑,參考如下命令

sudo nginx -t

返回結(jié)果

Password:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

在返回的結(jié)果當(dāng)中已經(jīng)可以看到配置文件所在的位置,使用vim編輯配置文件,參考命令

vim /usr/local/etc/nginx/nginx.conf

在http級(jí)別下增加自定義日志格式,和日志路徑,參考配置如下:

log_format  json "{"@timestamp":"$time_iso8601",
"@version":"1","host":"$server_addr",
"client":"$remote_addr", "size":"$body_bytes_sent",
"responsetime":"$request_time",
"domain":"$host","url":"$uri","status":"$status"}";

access_log  /data/logs/access.log  json;

筆者配置截圖如下所示

4.3 啟動(dòng)logstash

前面已經(jīng)將日志格式與logstash配置好,現(xiàn)在筆者需要啟動(dòng)logstash開始收集日志,啟動(dòng)logstash之前需要先進(jìn)入容器里面,進(jìn)入容器參考命令如下:

docker exec -it elk bash

進(jìn)入容器之后,筆者需要啟動(dòng)logstash來收集數(shù)據(jù),啟動(dòng)的時(shí)候需要帶兩個(gè)參數(shù)進(jìn)去,第一個(gè)是logstash的數(shù)據(jù)暫存位置,第二個(gè)是使用的配置文件,因此構(gòu)造的命令如下所示:

/opt/logstash/bin/logstash --path.data /tmp/logstash/data -f /data/config/logstash.conf
4.4 添加數(shù)據(jù)

現(xiàn)在只要nginx產(chǎn)生日志,logstash就會(huì)實(shí)時(shí)將日志發(fā)送到ES服務(wù)當(dāng)中,在發(fā)送數(shù)據(jù)時(shí),終端窗口也會(huì)發(fā)生變化,如下圖所示

五、 繪圖配置與展示

當(dāng)數(shù)據(jù)導(dǎo)入之后,筆者才可以使用kibana的圖形化來查看數(shù)據(jù)了,所以首先確認(rèn)一下ES中是否有數(shù)據(jù),確認(rèn)有數(shù)據(jù)后就可以進(jìn)行繪圖配置,配置完成之后就可以進(jìn)行篩選日志等操作了。

5.1 ES數(shù)據(jù)檢查

當(dāng)數(shù)據(jù)添加到ES服務(wù)器當(dāng)中后,筆者可以通過ES服務(wù)提供的URL來查看其中的數(shù)據(jù),URL地址如下所示:

http://localhost:9200/_search?pretty

就會(huì)看到筆者剛剛輸入的日志內(nèi)容,如下圖所示

當(dāng)看到total數(shù)量變大,并在下面的數(shù)據(jù)項(xiàng)中看到了nginx日志信息時(shí),則代表筆者導(dǎo)入數(shù)據(jù)成功了。

5.2 kibana索引配置

通過瀏覽器訪問kibana,URL地址如下

http://127.0.0.1:5601/app/kibana#/management/kibana/index?_g=()

點(diǎn)擊左側(cè)導(dǎo)航欄的Discover鏈接,便可進(jìn)入創(chuàng)建索引模式界面,如下圖所示

點(diǎn)擊頁面右下方的next按鈕,會(huì)跳轉(zhuǎn)到下一個(gè)頁面,在此頁面還需要選擇一個(gè)時(shí)間維度,如下圖所示

在此點(diǎn)擊下一步,便創(chuàng)建kibana的索引完成,此時(shí)再次點(diǎn)擊左側(cè)導(dǎo)航欄的Discover鏈接,便可以看到剛才創(chuàng)建索引的一些視圖,如下圖所示

在圖中有一個(gè)input輸入框,筆者可以在里面填寫篩選所需要的關(guān)鍵詞;如果沒有篩選出結(jié)果,也可檢查左側(cè)的時(shí)間篩選項(xiàng)是否設(shè)置正確,如筆者的時(shí)間篩選項(xiàng)設(shè)置的是Today,也就代表篩選當(dāng)天的數(shù)據(jù)。

ELK的整體操作流程比較簡(jiǎn)單,首先是logstash收集各種日志并進(jìn)行過濾,然后將過濾后的內(nèi)容發(fā)送到ES服務(wù)中,最后用戶通過Kibana的頁面查看ES中的日志數(shù)據(jù);


作者:湯青松

微信:songboy8888

日期:2018-08-25

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29303.html

相關(guān)文章

  • 使用Docker快速部署ELK分析Nginx日志實(shí)踐

    摘要:數(shù)據(jù)導(dǎo)入與校驗(yàn)容器運(yùn)行之后,筆者需要驗(yàn)證是否啟動(dòng)成功,可以通過瀏覽器訪問和的頁面是否成功來判斷。的整體操作流程比較簡(jiǎn)單,首先是收集各種日志并進(jìn)行過濾,然后將過濾后的內(nèi)容發(fā)送到服務(wù)中,最后用戶通過的頁面查看中的日志數(shù)據(jù)作者湯青松微信日期 一、背景 筆者所在項(xiàng)目組的項(xiàng)目由多個(gè)子項(xiàng)目所組成,每一個(gè)子項(xiàng)目都存在一定的日志,有時(shí)候想排查一些問題,需要到各個(gè)地方去查看,極為不方便,此前聽說有ELK...

    chenatu 評(píng)論0 收藏0
  • 使用Docker快速部署ELK分析Nginx日志實(shí)踐

    摘要:數(shù)據(jù)導(dǎo)入與校驗(yàn)容器運(yùn)行之后,筆者需要驗(yàn)證是否啟動(dòng)成功,可以通過瀏覽器訪問和的頁面是否成功來判斷。的整體操作流程比較簡(jiǎn)單,首先是收集各種日志并進(jìn)行過濾,然后將過濾后的內(nèi)容發(fā)送到服務(wù)中,最后用戶通過的頁面查看中的日志數(shù)據(jù)作者湯青松微信日期 一、背景 筆者所在項(xiàng)目組的項(xiàng)目由多個(gè)子項(xiàng)目所組成,每一個(gè)子項(xiàng)目都存在一定的日志,有時(shí)候想排查一些問題,需要到各個(gè)地方去查看,極為不方便,此前聽說有ELK...

    xumenger 評(píng)論0 收藏0
  • 使用Docker快速部署ELK分析Nginx日志實(shí)踐(二)

    摘要:漢化使用中文界面實(shí)踐一背景筆者在上一篇文章使用快速部署分析日志實(shí)踐當(dāng)中有提到如何快速搭建分析日志,但是這只是第一步,后面還有很多儀表盤需要配置,而對(duì)于大部分人來說,英文并不是那么好,但都是英文界面,這就阻礙了筆者熟悉的一些操作所以筆者思考能 Kibana漢化使用中文界面實(shí)踐 一、背景 筆者在上一篇文章使用Docker快速部署ELK分析Nginx日志實(shí)踐當(dāng)中有提到如何快速搭建ELK分析N...

    Jinkey 評(píng)論0 收藏0
  • 使用Docker快速部署ELK分析Nginx日志實(shí)踐(二)

    摘要:漢化使用中文界面實(shí)踐一背景筆者在上一篇文章使用快速部署分析日志實(shí)踐當(dāng)中有提到如何快速搭建分析日志,但是這只是第一步,后面還有很多儀表盤需要配置,而對(duì)于大部分人來說,英文并不是那么好,但都是英文界面,這就阻礙了筆者熟悉的一些操作所以筆者思考能 Kibana漢化使用中文界面實(shí)踐 一、背景 筆者在上一篇文章使用Docker快速部署ELK分析Nginx日志實(shí)踐當(dāng)中有提到如何快速搭建ELK分析N...

    Pink 評(píng)論0 收藏0
  • 利用ELK搭建Docker容器化應(yīng)用日志中心

    摘要:概述應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于容器中的應(yīng)用程序的打印日志供運(yùn)維分析。 showImg(https://segmentfault.com/img/remote/1460000014146680); 概述 應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于Docker容器中的應(yīng)用程序的打印日志供運(yùn)維分析。典型的比如 SpringBoot應(yīng)用的日志 收集。本文即將闡述如何利...

    周國(guó)輝 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<