ELK是目前最流行的日誌分析套件,基於lucence,提供全文檢索功能,ES是目前最快的索引型數據庫並提供RESTful接口,對開發人員很友好,橫向擴展,Logstash提供多種插件,支持各類日誌格式的定製和插件並實時將日誌內容寫入ES或其他目標源,Kibana提供對ES數據的展示功能,多用於日誌檢索,實時報表。
已經是大名鼎鼎的產品了,不多廢話,直接上乾貨,這裏就使用目前最新的7.7.0版本。
下載
全部下載: https://www.elastic.co/cn/downloads
ES: https://www.elastic.co/cn/downloads/elasticsearch
Kibana: https://www.elastic.co/cn/downloads/kibana
Logstash: https://www.elastic.co/cn/downloads/logstash
Filebeat: https://www.elastic.co/cn/downloads/beats/filebeat
這裏下載tar.gz版。
-------------------------------------安裝----------------------------------
JDK
ES是基於JVM的,所以需要安裝1.8的JDK。
rpm -ivh jdk-8u192-linux-x64.rpm
vi /etc/profile
export JAVA_HOME=/usr/java/latest
vi .bash_profile
export PATH=$JAVA_HOME/bin:$PATH
查看java版本:
java -version
ElasticSearch
解壓tar包
tar zxvf elasticsearch-7.7.0-linux-x86_64.tar.gz -C /opt/app/
創建data和logs目錄
mkdir /opt/app/elasticsearch-7.7.0/data
mkdir /opt/app/elasticsearch-7.7.0/logs
配置文件
vim /opt/app/elasticsearch-7.7.0/config/elasticsearch.yml
cluster.name: MyES #集羣名稱
node.name: node01 #本節點名稱
path.data: /opt/app/elasticsearch-7.7.0/data #數據存儲目錄
path.logs: /opt/app/elasticsearch-7.7.0/logs #日誌存儲目錄
network.host: 0.0.0.0 #所有機器都可監聽
http.port: 9200 #默認端口
cluster.initial_master_nodes: ["node01"] #主節點名稱,與上面配置的保持一致
JVM配置
因爲ES是基於Java開發的,所以依賴於JVM,有需求可以修改JVM屬性:
vim /opt/app/elasticsearch-7.7.0/config/jvm.options
-Xms4g
-Xmx4g
創建elk用戶
ES不允許使用root用戶啓動,所以我們創建一個elk用戶:
useradd elk
chown -R elk:elk elasticsearch-7.7.0
啓動:
su elk
$ES_HOME/bin/elasticsearch
報錯:
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /opt/app/elasticsearch-7.7.0/logs/MyES.log
查看機器限制:
ulimit -Sn
ulimit -Hn
修改限制:
vim /etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
elk soft nproc 4096
elk hard nproc 4096
vim /etc/sysctl.conf
vm.swappiness = 0
vm.max_map_count=262144
執行命令sysctl -p另其生效:
切換elk用戶再次啓動ES,在瀏覽器中輸入node01:9200驗證,出現下面的結果說明已正常安裝並啓動:
編寫啓停腳本 start-es.sh以及stop-es.sh
start-es.sh
sudo -u elk nohup $ES_HOME/bin/elasticsearch >> $ES_HOME/output.log 2>&1 &
stop-es.sh
#!/bin/bash
PROCESS=`ps -ef | grep 'elasticsearch-7.7.0' |grep -v grep | grep -v PPID | awk '{ print $2}'`
echo $PROCESS
for i in $PROCESS
do
echo "Kill the elasticsearch process [ $i ]"
kill -9 $i
done
Logstash
解壓
tar -zxvf /home/wyk/logstash-7.7.0.tar.gz -C /opt/app/
解壓即是安裝結束,下面是個小例子:
新增一個配置文件: 讀取日誌文件打印到窗口中
vim $LS_HOME/config/logstash-csdn.yml
input {
# 從文件讀取日誌信息
file {
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
}
filter {
}
output {
# 標準輸出
stdout {}
}
執行配置文件:
cd $LS_HOME
bin/logstash -f config/logstash-csdn.yml
Kibana
解壓
tar -zxvf /home/wyk/kibana-7.7.0-linux-x86_64.tar.gz -C /opt/app/
配置
vim config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"] #ES所在的ip
#elasticsearch.username: "kibana" #如果ES有配置用戶則這裏需要配置用戶密碼
#elasticsearch.password: "123456"
chown -R elk:elk /opt/app/kibana-7.7.0-linux-x86_64
啓動:
$KB_HOME/bin/kibana
瀏覽器登錄node01:5601 ,出現下面的界面即成功
編寫啓停腳本start-kb.sh 和stop-kb.sh
start-kb.sh
#!/bin/bash
sudo -u elk nohup $KB_HOME/bin/kibana > $KB_HOME/output.log 2>&1 &
stop-kb.sh
#!/bin/bash
PROCESS=`ps -ef | grep 'kibana' |grep -v grep | grep -v PPID | awk '{ print $2}'`
echo $PROCESS
for i in $PROCESS
do
echo "Kill the kibana process [ $i ]"
kill -9 $i
done
如果對你有幫助請點個贊~~謝謝