编译安装日志分析平台 elk + beats(个人感觉不错1)
這是elk系列的第1篇文章
本文主要描述如何安裝和配置elk, 并利用beats來(lái)取出數(shù)據(jù)推送到logstash,使之正常提供服務(wù)
流程圖
開始之前
假設(shè)您已經(jīng)擁有一臺(tái)內(nèi)存至少1G的linux計(jì)算機(jī)或虛擬機(jī)并且安裝了screen命令
并且您應(yīng)該了解screen命令的使用 , 如果不了解您可以粗略的看一下?screen簡(jiǎn)明教程
下載安裝包
java?http://www.oracle.com/technetwork/java/javase/downloads/index.html
elk?https://www.elastic.co/cn/products
- 下載安裝包
-
傳輸?shù)椒?wù)器中 , 如果是linux里直接下載則可以忽略這一步
scp .\jdk-8u181-linux-x64.tar.gz \.\kibana-6.3.2-linux-x86_64.tar.gz \ .\logstash-6.3.2.tar.gz \.\elasticsearch-6.3.2.tar.gz \root@192.168.1.147:/optBash
準(zhǔn)備安裝
接下來(lái)登陸到linux環(huán)境
ssh root@192.168.1.147
解壓剛才傳輸?shù)奈募?#xff0c;并把刪除原文件
cd /opt/ && ls | xargs -I {} tar xzvf {} && rm -f ./*.tar.gzBash
因?yàn)閑s是不能運(yùn)行在root用戶的 , 即使可以也不建議使用 root
因此, 我們可以單獨(dú)創(chuàng)建一個(gè)用戶來(lái)運(yùn)行elk
Bash
給elk的文件目錄變更用戶
chown -R elk:elk ./*Bash
開始安裝
請(qǐng)自行更換 /opt 為你的實(shí)際目錄
java 8
把以下幾行添加到 /etc/bashrc 的末尾
export JAVA_HOME=/opt/jdk1.8.0_181 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarBash
使環(huán)境變量生效
source /etc/bashrcBash
驗(yàn)證安裝是否成功
java -versionBash
此時(shí)java安裝成功
elasticsearch
切換到elk用戶
su elkBash
使用 screen 開始一個(gè)新會(huì)話
screen -S esBash
修改默認(rèn)的配置文件
sed -i "s/#\ network.host:\ 192.168.0.1/network.host:\ 0.0.0.0/" /opt/elasticsearch-6.3.2/config/elasticsearch.yml sed -i "s/#\ http.port/http.port/" /opt/elasticsearch-6.3.2/config/elasticsearch.ymlBash
啟動(dòng)es
/opt/elasticsearch-6.3.2/bin/elasticsearchBash
如果遇到這個(gè)錯(cuò)誤
執(zhí)行命令:
su root sysctl -w vm.max_map_count=262144 sysctl -a | grep vm.max_map_count exitBash
再嘗試啟動(dòng) , 如果遇到這個(gè)錯(cuò)誤
回到root賬戶 , 修改/etc/security/limits.conf 添加如下行并重啟計(jì)算機(jī) :
elk hard nofile 262144 elk soft nofile 262144Bash
再嘗試啟動(dòng) , 一般會(huì)看到這個(gè)東西
此時(shí)es啟動(dòng)成功 , 然后我們利用curl測(cè)試一下
curl 127.0.0.1:9200Bash
如果返回這個(gè)東西說(shuō)明真的成功了 , 返回別的這里不討論 , 一律視為失敗 , 請(qǐng)參考日志進(jìn)行排錯(cuò)
如果需要在瀏覽器訪問(wèn), 還需要關(guān)閉防火墻和selinux
su root systemctl stop firewalld.service setenforce 0 exitBash
瀏覽器訪問(wèn)
至此es安裝和啟動(dòng)完畢
我們用組合鍵回到默認(rèn)會(huì)話
Ctrl A + dBash
logstash
logstash 安裝和配置比較簡(jiǎn)單 , 但是需要?jiǎng)?chuàng)建一個(gè)文件
創(chuàng)建輸入輸出配置文件
tee /opt/logstash-6.3.2/config/logstash-io.conf <<-'EOF' input {file {path => "/var/log/dev.log"start_position => "beginning"} }output { elasticsearch { hosts => ["192.168.1.147:9200"]} } EOFnginx
默認(rèn)配置文件在 /opt/logstash-6.3.2/config/logstash.yml 可以按需修改*
嘗試啟動(dòng)logstash
screen -S logstash /opt/logstash-6.3.2/bin/logstash -f /opt/logstash-6.3.2/config/logstash-io.confBash
如果沒(méi)有error , 就啟動(dòng)完成了
如果需要測(cè)試是否真的啟動(dòng)完成 , natstat 和 telnet 這兩個(gè)命令都可以
telnet 127.0.0.1 9600 || netstat -anp | gerp 9600Bash
至此logstash安裝和啟動(dòng)完畢
我們用組合鍵回到默認(rèn)會(huì)話
Ctrl A + dBash
kibana
kibana 只需要修改基礎(chǔ)配置文件即可啟動(dòng) , 并進(jìn)行瀏覽器測(cè)試
修改配置文件
sed -i "s/#elasticsearch.url:\ \"http:\/\/localhost:9200\"/elasticsearch.url:\ \"http:\/\/192.168.1.147:9200\"/" /opt/kibana-6.3.2-linux-x86_64/config/kibana.yml sed -i "s/#server.host:\ \"localhost\"/server.host:\ \"192.168.1.147\"/" /opt/kibana-6.3.2-linux-x86_64/config/kibana.ymlBash
啟動(dòng)
/opt/kibana-6.3.2-linux-x86_64/bin/kibana返回如下信息則說(shuō)明啟動(dòng)成功
打開瀏覽器 輸入http://192.168.1.147:5601 可以看到如下畫面
至此kibana安裝和啟動(dòng)完畢
我們用組合鍵回到默認(rèn)會(huì)話
Ctrl A + dBash
測(cè)試
如果順利的到了這里 , 那么elk其實(shí)已經(jīng)可以使用了 , filebeat不是必須的.
我們找來(lái)一些日志驗(yàn)證一下前面工作的正確性
- 上傳日志到服務(wù)器 : scp ./dev.log root@192.168.1.147:/var/log/
Bash
- 這是一份普通的nginx日志
-
用screen -r回到logstash會(huì)話
-
界面一閃而過(guò) , 回到了這里
-
ctrl +c 停止它按上方向鍵 , 再啟動(dòng)它
-
稍候片刻啟動(dòng)完成, 回到kibana
-
在首頁(yè)創(chuàng)建通配符索引 logstash*
-
如果next是可點(diǎn)擊的 , 那就到了這里
-
選擇@timestamp 繼續(xù)下一步
-
然后就開啟ELK的世界了
- 首頁(yè)如下
filebeat
取得安裝包
和準(zhǔn)備工作一樣 , 從官網(wǎng)獲得filebeat的安裝包并解壓
修改配置
修改filebeat的配置文件 , 和上面一樣我們使用sed修改配置文件
# 開啟log輸入 sed -i "s/enabled: false/enabled: true/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml# log存放的位置 , 位置分隔符 / 需要用 \ 轉(zhuǎn)義 , dev.log 可以修改為 *.log 來(lái)掃描目錄 sed -i "s/-\ \/var\/log\/*.log/\/var\/log\/dev.log/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml# 關(guān)閉默認(rèn)的輸出到es sed -i "s/output.elasticsearch:/# output.elasticsearch:/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml sed -i "s/hosts:/# hosts:/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml# 打開輸入到logstash sed -i "s/#output.logstash:/output.logstash:/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml sed -i "s/##\ hosts:/hosts:/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.ymlBash
我們還需要修改 logstash 的配置文件才能使用 filebeat 來(lái)自動(dòng)捕獲數(shù)據(jù)
修改logstash的輸入輸出配置
為了避免你已經(jīng)手動(dòng)修改了配置文件 , 我們不再使用sed為改為手動(dòng)修改配置文件
使用你喜愛(ài)的編輯器打開 /opt/logstash-6.3.2/config/logstash-io.conf , 刪除掉input代碼塊并在原file代碼塊的位置 ,增加如下內(nèi)容并保存
beats{port => 5044 }nginx
最終配置文件大概會(huì)是這個(gè)樣子
input {beats{port => 5044} }output { elasticsearch { hosts => ["192.168.1.147:9200"]} }nginx
重啟logstash
screen -r logstash ^C^C^C^C.... /opt/logstash-6.3.2/bin/logstash -f /opt/logstash-6.3.2/config/logstash-io.confBash
如果正常啟動(dòng)并進(jìn)入監(jiān)聽狀態(tài) , 我們回到剛才的會(huì)話
screen -r beatsBash
啟動(dòng)filebeat
/opt/filebeat-6.3.2-linux-x86_64/filebeat -e -c /opt/filebeat-6.3.2-linux-x86_64/filebeat.ymlBash
如果配置正確 , 那么一般不會(huì)遇到什么問(wèn)題
測(cè)試filebeat
因?yàn)槲覀円呀?jīng)在 /var/log/dev.log 這份配置文件 , 那么我們就增加它的內(nèi)容 , 來(lái)測(cè)試filebeat是否正常掃描和輸出到logstash
里使用死循環(huán)來(lái)增加日志內(nèi)容 , 數(shù)據(jù)是重復(fù)的 , 僅可用于驗(yàn)證filebeat的工作
第三行的 while 是每隔1秒就復(fù)制 tmp.log 的內(nèi)容到 dev.log 的末尾
您隨時(shí)可以用 ^C [Ctrl +c] 來(lái)終止復(fù)制過(guò)程
Bash
然后我們查看瀏覽器的kibana , 右上角倒數(shù)第二個(gè)按鈕, 開啟自動(dòng)刷新并選擇五秒
如果一切無(wú)誤, 坐等5秒 , 就會(huì)發(fā)現(xiàn)有新的數(shù)據(jù)展示在頁(yè)面上
此時(shí)可以明顯的觀察到 , 紅框的時(shí)間部分每隔5秒就會(huì)變化一次
因?yàn)槲覀円呀?jīng)保證了沒(méi)有 filebeat 時(shí)elk平臺(tái)工作是正常的
那么如果現(xiàn)在elk不再正常工作了 , 就從 filebeat 大節(jié)檢查和排錯(cuò) ,問(wèn)題最大可能是sed在你的計(jì)算機(jī)中沒(méi)有生效
那么就檢查配置文件開始 debug 吧
同時(shí)也歡迎您在本文章下留言說(shuō)明你遇到的問(wèn)題
大功告成
來(lái)源:https://system.out.println.org/?p=1118
總結(jié)
以上是生活随笔為你收集整理的编译安装日志分析平台 elk + beats(个人感觉不错1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: P2P爆雷后董事长开直播怎么回事 回应爱
- 下一篇: ELK自动安装脚本