Linux 下ELK環境搭建

參考博客:https://www.cnblogs.com/arnoLixi/p/10402684.html

https://blog.csdn.net/zy517863543/article/details/102591180

一、簡介

1)ElasticSearch是一個基於Lucene的開源分佈式搜索服務器。它的特點有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java開發的,並作爲Apache許可條款下的開放源碼發佈,是第二流行的企業搜索引擎。設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。 在elasticsearch中,所有節點的數據是均等的。

2)Logstash是一個完全開源的工具,它可以對你的日誌進行收集、過濾、分析,支持大量的數據獲取方法,並將其存儲供以後使用(如搜索)。說到搜索,logstash帶有一個web界面,搜索和展示所有日誌。一般工作方式爲c/s架構,client端安裝在需要收集日誌的主機上,server端負責將收到的各節點日誌進行過濾、修改等操作在一併發往elasticsearch上去。

3)Kibana 是一個基於瀏覽器頁面的Elasticsearch前端展示工具,也是一個開源和免費的工具,Kibana可以爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,可以幫助您彙總、分析和搜索重要數據日誌。
 

Elasticsearch、Logstash、Kibana、Filebeat安裝的版本號必須全部一致,不然會出現kibana無法顯示web頁面。

ELK工作演示圖:

  1. Filebeat在APP Server端收集日誌
  2. Logstash處理過濾Filebeat收集過來的日誌
  3. Elasticsearch存儲Logstash提供的處理之後的日誌,用以檢索、統計
  4. Kibana提供web頁面,將Elasticsearch的數據可視化的展示出來

二、yum安裝步驟

1、前置工作準備:

java環境配置: jdk8
關閉防火牆:systemctl stop firewalld
關閉selinux:setenforce 0

系統優化:
vim /etc/security/limits.conf
末尾添加:
*               soft    nofile          65536
*               hard    nofile          65536
*               soft    nproc           4096
*               hard    nproc           4096
vim  /etc/sysctl.conf
末尾添加:vm.max_map_count=655360
使其生效:sysctl -p

導入Elasticsearch GPG KEY 祕鑰:rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
配置ELK yum源,使用清華的yum源鏡像

vim /etc/yum.repos.d/elk.repo
添加以下內容
[ELK]
name=ELK-Elasticstack
baseurl=https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum/elastic-6.x/
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

2、安裝elasticsearch

2.1 yum install -y elasticsearch

2.2 配置elasticsearch:

vim /etc/elasticsearch/elasticsearch.yml

節點名稱:
node.name: node-1
#綁定IP地址
network.host: 127.0.0.1
#端口號
http.port: 9200

按需修改jvm內存設置

vim /etc/elasticsearch/jvm.options
-Xms128m  
-Xmx128m 

2.3 啓動,測試

which java
/usr/java/jdk1.8.0_211/bin/java
建立軟連接:
ln -s  /usr/java/jdk1.8.0_211/bin/java /usr/bin/java

systemctl start elasticsearch        #啓動
systemctl status elasticsearch         #查看
systemctl enable elasticsearch        #開機啓動
systemctl stop elasticsearch        #停止

curl http://127.0.0.1:9200,訪問成功

3、安裝Kibana

3.1 yum install -y kibana

安裝目錄:/usr/share/kibana

配置文件路徑:/etc/kibana/

3.2 修改kibana配置

vim /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://127.0.0.1:9200"]

修改爲中文:

3.3 啓動,測試

# 查看版本號
rpm -qa elasticsearch kibana

systemctl start kibana        #啓動
systemctl enable kibana        #開機啓動
systemctl status kibana        #查看
systemctl stop kibana        #停止
訪問:http://ip:5601 ,

4、安裝Logstash

4.1 yum install -y logstash

安裝目錄:/usr/share/logstash

配置文件路徑:/etc/logstash/

日誌文件路徑:/var/log/logstash/

systemctl start logstash        #啓動
systemctl enable logstash        #開機啓動
systemctl status logstash        #查看
systemctl stop logstash        #停止

解決:sudo /usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd

監聽端口: netstat -lptnu|grep java

4.2 配置logstash

https://www.cnblogs.com/xishuai/p/elk-logstash-filebeat.html

https://blog.csdn.net/mazhiwb/article/details/105775199

https://www.cnblogs.com/cheyunhua/p/11238489.html

採集日誌數據,需要有個數據源,這裏我們使用 /var/log/message進行測試。

chmod 777 /var/log/messages

vim /etc/logstash/conf.d/system.conf

添加以下內容:

#input日誌輸入模塊:日誌的獲取方式和路徑
input {
    file {
       path => "/var/log/messages"
       type => "system-log"
       start_position => "beginning"
    }
}
#output日誌的輸出模塊:導出你的數據
output {
    elasticsearch {
      hosts => "127.0.0.1:9200"
      index => "system_log-%{+YYYY.MM.dd}"
    }
}

如果conf.d 下有多個配置文件需要修改pipelines.yml(管道)文件

vim pipelines.yml

- pipeline.id: main
  path.config: "/etc/logstash/conf.d/system.conf"
- pipeline.id: sec
  path.config: "/etc/logstash/conf.d/sec.conf"
 

驗證配置文件,是否有效:

cd /usr/share/logstash/bin

./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/system.conf --config.test_and_exit

查詢索引:curl http://127.0.0.1:9200/_cat/indices?v

5、安裝filebeat

logstash佔用的資源比較大,沒有beats輕量,所以官方也推薦使用beats來作爲日誌採集工具。而且beats可擴展,支持自定義構建。

5.1 yum install filebeat -y

5.2 vim /etc/filebeat/filebeat.yml

- type: log

  paths: - /var/log/messages # 指定需要收集的日誌文件的路徑

  output.elasticsearch:

     hosts: ["127.0.0.1:9200"] # 配置 Elasticsearch 服務器的 IP 地址


systemctl start filebeat        #啓動
systemctl enable filebeat        #開機啓動
systemctl status filebeat        #查看
systemctl stop filebeat        #停止

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章