ELK環境搭建(ElasticSearch、Logstash 、Kibana)


  • 前言

 
         ELK 是elastic公司提供的一套完整的日志收集以及展示的解決方案,是三個產品的首字母縮寫,分別是ElasticSearch、Logstash 和 Kibana。
Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
Logstash是一個完全開源的工具,他可以對你的日志進行收集、過濾,並將其存儲供以后使用(如,搜索)。
Kibana 也是一個開源和免費的工具,它Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日志。
 
         

用途:

1.問題排查。我們常說,運維和開發這一輩子無非就是和問題在戰斗,所以這個說起來很朴實的四個字,其實是沉甸甸的。很多公司其實不缺錢,就要穩定,而要穩定,就要運維和開發能夠快速的定位問題,甚至防微杜漸,把問題殺死在搖籃里。日志分析技術顯然問題排查的基石。基於日志做問題排查,還有一個很帥的技術,叫全鏈路追蹤,比如阿里的eagleeye 或者Google的dapper,也算是日志分析技術里的一種。
2.監控和預警。 日志,監控,預警是相輔相成的。基於日志的監控,預警使得運維有自己的機械戰隊,大大節省人力以及延長運維的壽命。
3.關聯事件。多個數據源產生的日志進行聯動分析,通過某種分析算法,就能夠解決生活中各個問題。比如金融里的風險欺詐等。這個可以可以應用到無數領域了,取決於你的想象力。
4.數據分析。 這個對於數據分析師,還有算法工程師都是有所裨益的。

 

 

  • 下載安裝包

官網下載:https://www.elastic.co/cn/downloads/


網速慢這邊有百度網盤:

  鏈接:https://pan.baidu.com/s/15bojKanJ5k_YbBayjP1bdw
  提取碼:m4vc

 

下載上述三個安裝包之后,上傳至服務器,准備開始安裝

 

 

 

 

 

  • 安裝ElasticSearch

#創建用戶組es

  注:elasticsearch 不允許以 root 權限來運行!所以需要創建一個非root用戶,由於ElasticSearch可以接收用戶輸入的腳本並且執行,為了系統安全考慮,
建議創建一個單獨的用戶用來運行ElasticSearch。

groupadd es

#創建新用戶es,設置用戶組為es,密碼es

useradd es -g es -p es

#授權,更改elasticsearch-7.12.0文件夾所屬用戶及用戶組為es:es(首先在/home/elk 目錄下創建名成為elasticsearch-7.12.0文件夾)

chown -R es:es elasticsearch-7.12.0

#切換用戶es

su - es

#開始安裝解壓

tar -xzvf elasticsearch-7.12.0-linux-x86_64.tar.gz

 #修改es配置文件

1)調整jvm內存大小(機器內存夠也可不調整)
vim elasticsearch-7.1.1/config/jvm.options
#修改如下配置
-Xms512m
-Xmx512m
2)vim /config/elasticsearch.yml
 
network.host: 0.0.0.0
http.port: 9200
cluster.name: es_cluster
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
注:#對應目錄下用es用戶創建data和logs文件夾
node.name: node-1
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
cluster.initial_master_nodes: ["node-1"]

#修改虛擬機配置文件

1)vim  /etc/security/limits.conf
添加以下內容:
* soft nofile 65536
* hard nofile 65536

2)vim /etc/sysctl.conf
#添加以下配置信息 
vm.max_map_count=262144

3)並且執行命令使前兩個配置生效:
sysctl -p

#先別着急啟動es

此時啟動es有可能會爆出以下錯誤

[es@VM-0-10-centos bin]$ ./elasticsearch
warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
Future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk1.8.0_211/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.
warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
Future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk1.8.0_211/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.

大致意思就是當前JDK版本不符合該版本的es,我們需要做的就是要么更換本機jdk 匹配當前版本的es,要么使用該版本的自帶jdk,我們選擇使用自帶的jdk。

在 /bin 下看到了一堆的可執行文件,其中有一個elasticsearch-env
vim elasticsearch-env
新增:ES_JAVA_HOME="/home/elk/elasticsearch-7.12.0/jdk/"

#好的,整理心情,啟動es(es啟動可能會很久,需要耐心等待...)

#elasticsearch常用命令
#啟動命令
./elasticsearch
#后台啟動命令
./elasticsearch -d
#設置開機自啟動
systemctl enable elasticsearch.service

 #檢測是否啟動成功

第一種方法:看啟動日志

 

 

第二種方法:訪問你本機的ip  http://150.xxx.xxx.xxx:9200/

 

 

#安裝Elasticsearch-Head

1)nodejs安裝
# wget https:
//nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz // 下載 # tar xf node-v10.9.0-linux-x64.tar.xz // 解壓 # cd node-v10.9.0-linux-x64/ // 進入解壓目錄 # ./bin/node -v // 執行node命令 查看版本 v10.9.0 2)解壓文件的 bin 目錄底下包含了 node、npm 等命令,我們可以使用 ln 命令來設置軟連接:
ln
-s /usr/software/nodejs/bin/npm /usr/local/bin/ ln -s /usr/software/nodejs/bin/node /usr/local/bin/

3)2)phantomjs安裝配置

   wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2
   #缺少bzip2包的同學記得安裝下bzip2
  yum -y install bzip2
  tar -xvf phantomjs-2.1.1-linux-x86_64.tar.bz2
  vim /etc/profile
  export PATH=$PATH:/home/elk/phantomjs-2.1.1-linux-x86_64/bin
  #注意環境變量$Path移動在最前面
  source /etc/profile

 4)elasticsearch-head安裝(他的主要用處我也沒搞清楚,后期再補充進來吧)

  git clone git://github.com/mobz/elasticsearch-head.git

  cd elasticsearch-head

  yum install -y nodejs

  npm install -g cnpm --registry=https://registry.npm.taobao.org

  #可能時間比較長

  5)/elasticsearch-head 目錄下執行

  npm install

  npm run start

  #安裝完成后 ,訪問地址
  
  http://localhost:9200/ es  #上面已經訪問過了

  http://localhost:9100/  es head #訪問截圖如下,連接剛才的es節點是否健

 

 

 

 

 

 

 
        
 
        
  • 安裝Logstash 

#解壓

 

tar -zxvf logstash-7.12.0-linux-x86_64.tar.gz

 

#修改配置文件

cd logstash-7.12.0/config/
vim log4j_to_es.conf    #沒有改文件的自行創建一下

#文件中插入一下內容

 

input {
  stdin { }
  beats {
    port => 5000
  }
  tcp {
    port => 4569
    codec => "json"
  }
}
output {
    elasticsearch {
        action => "index"
        hosts => "本機ip:9200"
        index  => "%{[appname]}-%{+YYYY-MM}"
    }
    stdout { codec=> rubydebug }
}

#啟動

./bin/logstash -f config/log4j_to_es.conf &

 

  • 安裝Kibana

#解壓

tar -zxvf kibana-7.12.0-linux-x86_64

 

#修改Kibana的配置文件

cd kibana-7.12.0-linux-x86_64/config/
vim kibana.yml
修改配置文件如下:

# 端口
server.port: 5601
# 指定本機ip讓外部能訪問
server.host: "0.0.0.0"
# 請求數據指向的elasticsearch服務器
elasticsearch.hosts: ["http://ip:9200"]

 

#啟動

sh kibana &

 

#訪問地址:http://ip:5601

 

 

 


 

到這里ELK已安裝完成,具體使用方法后期一定抽時間跟新^_^


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM