首發連接 [ https://system.out.println.or...]()
假設您已經擁有一臺內存至少1G的linux
計算機或虛擬機而且安裝了screen命令
而且您應該瞭解screen
命令的使用 , 若是不瞭解您能夠粗略的看一下 screen簡明教程
java http://www.oracle.com/technetwork/java/javase/downloads/index.html
elk https://www.elastic.co/cn/products
傳輸到服務器中 , 若是是linux裏直接下載則能夠忽略這一步html
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:/opt
接下來登錄到linux環境
ssh root@192.168.1.147
解壓剛纔傳輸的文件,並把刪除原文件java
cd /opt/ && ls | xargs -I {} tar xzvf {} && rm -f ./*.tar.gz
由於es是不能運行在root用戶的 , 即便能夠也不建議使用 root
所以, 咱們能夠單首創建一個用戶來運行elklinux
useradd elk
給elk的文件目錄變動用戶nginx
chown -R elk:elk ./*
請自行更換 /opt 爲你的實際目錄
把如下幾行添加到 /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.jar
使環境變量生效bash
source /etc/bashrc
驗證安裝是否成功服務器
java -version
此時java安裝成功oracle
切換到elk用戶ssh
su elk
使用 screen 開始一個新會話curl
screen -S es
修改默認的配置文件
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.yml
啓動es
/opt/elasticsearch-6.3.2/bin/elasticsearch
若是遇到這個錯誤
執行命令:
su root sysctl -w vm.max_map_count=262144 sysctl -a | grep vm.max_map_count exit
再嘗試啓動 , 若是遇到這個錯誤
回到root帳戶 , 修改/etc/security/limits.conf 添加以下行並重啓計算機 :
elk hard nofile 262144 elk soft nofile 262144
再嘗試啓動 , 通常會看到這個東西
此時es啓動成功 , 而後咱們利用curl測試一下
curl 127.0.0.1:9200
若是返回這個東西說明真的成功了 , 返回別的這裏不討論 , 一概視爲失敗 , 請參考日誌進行排錯
若是須要在瀏覽器訪問, 還須要關閉防火牆和selinux
su root systemctl stop firewalld.service setenforce 0 exit
瀏覽器訪問
至此es安裝和啓動完畢
咱們用組合鍵回到默認會話
Ctrl A + d
logstash 安裝和配置比較簡單 , 可是須要建立一個文件
建立輸入輸出配置文件
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"] } } EOF
默認配置文件在 /opt/logstash-6.3.2/config/logstash.yml 能夠按需修改*
嘗試啓動logstash
screen -S logstash /opt/logstash-6.3.2/bin/logstash -f /opt/logstash-6.3.2/config/logstash-io.conf
若是沒有error , 就啓動完成了
若是須要測試是否真的啓動完成 , natstat 和 telnet 這兩個命令均可以
telnet 127.0.0.1 9600 || netstat -anp | gerp 9600
至此logstash安裝和啓動完畢
咱們用組合鍵回到默認會話
Ctrl A + d
kibana 只須要修改基礎配置文件便可啓動 , 並進行瀏覽器測試
修改配置文件
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.yml
啓動
/opt/kibana-6.3.2-linux-x86_64/bin/kibana
返回以下信息則說明啓動成功
打開瀏覽器 輸入http://192.168.1.147:5601 能夠看到以下畫面
至此kibana安裝和啓動完畢
咱們用組合鍵回到默認會話
Ctrl A + d
若是順利的到了這裏 , 那麼elk其實已經可使用了 , filebeat不是必須的.
咱們找來一些日誌驗證一下前面工做的正確性
上傳日誌到服務器 :
scp ./dev.log root@192.168.1.147:/var/log/
和準備工做同樣 , 從官網得到filebeat的安裝包並解壓
修改filebeat的配置文件 , 和上面同樣咱們使用sed修改配置文件
# 開啓log輸入 sed -i "s/enabled: false/enabled: true/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml # log存放的位置 , 位置分隔符 / 須要用 \ 轉義 sed -i "s/-\ \/var\/log\/*.log/\/var\/log\/dev.log/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml # 關閉默認的輸出到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.yml
咱們還須要修改 logstash 的配置文件才能使用 filebeat 來自動捕獲數據
爲了不你已經手動修改了配置文件 , 咱們再也不使用sed爲改成手動修改配置文件
使用你喜好的編輯器打開 /opt/logstash-6.3.2/config/logstash-io.conf , 刪除掉input代碼塊並在原file代碼塊的位置 ,增長以下內容並保存
beats{ port => 5044 }
最終配置文件大概會是這個樣子
input { beats{ port => 5044 } } output { elasticsearch { hosts => ["192.168.1.147:9200"] } }
screen -r logstash ^C^C^C^C.... /opt/logstash-6.3.2/bin/logstash -f /opt/logstash-6.3.2/config/logstash-io.conf
若是正常啓動並進入監聽狀態 , 咱們回到剛纔的會話
screen -r beats
/opt/filebeat-6.3.2-linux-x86_64/filebeat -e -c /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml
若是配置正確 , 那麼通常不會遇到什麼問題
由於咱們已經在 /var/log/dev.log 這份配置文件 , 那麼咱們就增長它的內容 , 來測試filebeat是否正常掃描和輸出到logstash
裏使用死循環來增長日誌內容 , 數據是重複的 , 僅可用於驗證filebeat的工做
第三行的 while 是每隔1秒就複製 tmp.log 的內容到 dev.log 的末尾
您隨時能夠用 ^C [Ctrl +c] 來終止複製過程
su root cp /var/log/dev.log /tmp/tmp.log while true ; do cat /tmp/tmp.log >> /var/log/dev.log ; sleep 1 ; done
而後咱們查看瀏覽器的kibana , 右上角倒數第二個按鈕, 開啓自動刷新並選擇五秒
若是一切無誤, 坐等5秒 , 就會發現有新的數據展現在頁面上
此時能夠明顯的觀察到 , 紅框的時間部分每隔5秒就會變化一次
由於咱們已經保證了沒有 filebeat 時elk平臺工做是正常的
那麼若是如今elk再也不正常工做了 , 就從 filebeat 大節檢查和排錯 ,問題最大多是sed在你的計算機中沒有生效
那麼就檢查配置文件開始 debug 吧
同時也歡迎您在本文章下留言說明你遇到的問題
-- 未完待續
-- 未完待續
-- 未完待續
-- 未完待續
-- 未完待續
-- 未完待續