單機安裝EFK(一)


 

環境信息

 
系統:AWS Centos7
IP:172.29.0.159
 
版本信息:

 

前話

去年下半年鄰居介紹了一當兵的對象,當時是用生命拒絕的,然后過年回去居然鬼使神差的在一起了?過完年來,已經莫名失聯十多天了,畢竟剛開始傳說中的熱戀就分開,心里難受!!!每天猜測這人是干嘛去了,患得患失,對於我這種一分鍾不回復我消息我都覺得對方在出軌(這是被劈腿后遺症,越來越嚴重)。。。  這跟這篇博文有什么關系呢,沒關系!

 
做運維也有兩年余載,一直只知道ELK,從未去用過和研究過,現在公司有用到它,迫在眉睫需要學習他。在我的運維知識體系中,感覺所有的東西都只是入個門,沒有系統的學習,沒有深層次的去研究。以前一直是感覺有很多東西要學Docker、K8s、Python、微服務......,今天看一點這個明天看一點那個,到頭來什么都還是原點。學這個ELK的時候本來想只是搭建完知道用然后就可以了,但是這真的是浪費時間,學習東西還是得系統的學習,你不系統的學,下次又是這個步驟,你要是系統的學習完,下次就是查漏補缺了,直接漲經驗的時候了。不要貪心嘛,不要給自己定的目標太高了,不要想着今天就把他全部看完,全部看懂,一點一點來,不要急,努力和那XXX一樣,要持久。
 
 
簡單的了解一下EFK三個工具是干啥的?(不要問我為什么喜歡用綠色,以毒攻毒,治療自己)
 
Elasticsearch:Elasticsearch是一個開源的高擴展全文搜索和分析引擎。它可以存儲、搜索、快速的和實時的分析大量數據。他通常用作底層技術或者底層引擎,為具有復雜搜索特性和需求的應用程序提供支持。
 
Kibana:Kibana是設計用於Elasticsearch的一個開源和可視化的工具。你可以用Kibana搜索、查看和交互存在Elasticsearch索引中的數據。你可以執行數據分析和通過圖表、表格、地圖查看數據。
 
Filebeat:是一個輕量級的收集日志和傳輸日志的工具(一直以為Filebeat是存儲數據,並不是的他只是做一個收集傳輸功能);Filebeat安裝在每一個你想要收集日志的服務器上,相當於客戶端。Filebeat監控你指定的日志文件或者路徑,收集日志事件向Elasticsearch或者Logstach進行索引。
 
我無數次看ELK的博文的時候,開頭都是看到上面這個介紹,看到就有心理抵觸了,這里是我完成后面的實際操作步驟后,根據官方文檔總結的,所以可以跳過,先用起來,再看他具體是干什么的,再看他的高級用法。
 
 

一、安裝Elasticsearch

 

1、關閉防火牆

 
yum -y install firewalld
yum -y install iptables-services

systemctl stop firewalld
systemctl stop iptables

systemctl disable firewalld.service
systemctl disable iptables.service

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

 

2、JDK環境的配置Elasticsearch要求至少Java 8,推薦使用Oracle JDK version 1.8.0_131)
 
1)下載解壓 
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie"  http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/local
mv /usr/local/jdk1.8.0_131  /usr/local/java

 

2)vim /etc/profile 

export JAVA_HOME=/usr/local/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:{JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

 

使其馬上生效: 
source /etc/profile

 

測試是否加入環境變量:
[root@rilo ~]# echo $PATH
/usr/local/java/bin:/usr/local/java/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

 

[root@ip-172-29-0-159 ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

  

3 、elasticsearch安裝
 
1)下載、安裝、啟動elasticsearch
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz

tar -xvf elasticsearch-6.6.0.tar.gz

cd elasticsearch-6.6.0/bin

./elasticsearch

 

注一:
 
啟動的時候會報錯,是因為不能用root賬號啟動elasticsearch,解決辦法就是先創建一個賬號,然后給elasticsearch文件夾授權,切換到創建的賬號啟動
useradd ela
chown -R ela.ela elasticsearch-6.6.0
nohup ./elasticsearch &

 

 
 
注二:
 
啟動的時候不一會兒進程會掛掉,查看日志發現如下:(這是elasticsearch的啟動用戶擁有的內存太小)
 
解決辦法:
 
vim /etc/sysctl.conf  添加這一行
vm.max_map_count = 262144

 

並使其生效:
sysctl -p

 

4、訪問
 
默認端口為:9200(可以通過配置文件修改);因為我需要外網訪問,所以修改配置文件 vim config/elasticsearch.yml
network.host: 0.0.0.0

 

重啟服務后,訪問:http://13.250.58.192:9200/

 
 
 
 

二、安裝Kibana

 
 
1、下載安裝
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.6.0-linux-x86_64.tar.gz
tar -zxvf kibana-6.6.0-linux-x86_64.tar.gz
cd kibana-6.6.0-linux-x86_64

 

2、啟動
nohup ./bin/kibana &

  

3、查看Kibana進程

注:使用ps -ef | grep kibana是查不到的
 
[root@ip-172-29-0-159 ~]# ps -ef |grep node
root     21374 19694  0 02:27 pts/0    00:01:00 ./../node/bin/node --no-warnings ./../src/cli
root     21817 19694  0 05:57 pts/0    00:00:00 grep --color=auto node

 

或者根據netstat根據對應的端口查看到進程號
[root@ip-172-29-0-159 ~]# netstat -anltp |grep 5601
tcp        0      0 127.0.0.1:5601          0.0.0.0:*               LISTEN      21374/./../node/bin 

 

4、訪問kibana
 
默認情況下是只能 http://127.0.0.1:5601
 
外網訪問的話,需修改配置文件 vim config/kibana.yml;
server.host: "0.0.0.0"

 

重啟kibana后,就可以在瀏覽器訪問,記得把安全組的端口打開(我的這里測試了很久都訪問不到,后來發現是自己打開了翻牆)
 
 
 
 
注一當出現這個問題的時候,我的測試是因為要先安裝elasticsearch,並且要是通的
 
 
 
 
 

三、安裝FileBeats

 
1、下載安裝 
 
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.0-linux-x86_64.tar.gz
tar xzvf filebeat-6.6.0-linux-x86_64.tar.gz

 

2、修改配置文件  vim filebeat.yml 
 
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log
setup.kibana:
    host: "localhost:5601"
output.elasticsearch:
  hosts: ["localhost:9200"]

 

3、啟動
 
nohup ./filebeat &

 

 
 

四、查看

 
這里如果沒有顯示出任何的數據,那么把時間的范圍擴大一點
 
 
 


免責聲明!

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



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