CentOS 8 部署ELK日誌分析平臺

需求

1.開發人員不能登陸線上服務器查看日誌
2.各個系統都有日誌,日誌分散難以查找
3.日誌數據量大,查找慢,數據不夠實時java

解決辦法:部署ELK平臺

ELK介紹

ELK是三個開源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開源軟件。新增了一個FileBeat,它是一個輕量級的日誌收集處理工具(Agent),Filebeat佔用資源少,適合於在各個服務器上搜集日誌後傳輸給Logstash 。node

ELK架構圖

CentOS 8 部署ELK日誌分析平臺

Elasticsearch簡介:

Elasticsearch是個開源分佈式搜索引擎,提供蒐集、分析、存儲數據三大功能。
特色:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。linux

部署Elasticsearch

1.配置yum源

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch #導入密鑰
vim /etc/yum.repos.d/elasticsearch.repo #配置yum源git

[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enable=1

2.安裝elasticsearch

yum install elasticsearch -y #安裝elasticsearchbootstrap

3.配置Elasticsearch

vim /etc/elasticsearch/elasticsearch.ymlvim

cluster.name: yltx    #17行 集羣名稱
node.name: node1   #23行 節點名稱
path.data: /data/es-data   #33行工做目錄
path.logs: /var/log/elasticsearch  #37行日誌目錄
bootstrap.memory_lock: true    #43行 防止交換swap分區
network.host: 0.0.0.0    #54行 監聽網絡
http.port: 9200   #58行 端口

mkdir -p /data/es-data
chown -R elasticsearch:elasticsearch /data/es-data/centos

4.內存解鎖和文件限制

生產環境中必需要修改(注意)ruby

vim /etc/security/limits.conf服務器

末尾插入
elasticsearch soft memlock unlimited   
elasticsearch hard memlock unlimited   
* soft nofile 65535        
* hard nofile 65535

systemctl start elasticsearch.service #啓動服務
netstat -ntap | grep 9200
ps -ef |grep elasticsearchrestful

CentOS 8 部署ELK日誌分析平臺

網頁測試:http://192.168.0.102:9200/

CentOS 8 部署ELK日誌分析平臺

安裝Elasticsearch – head插件

/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head

CentOS 8 部署ELK日誌分析平臺

網頁訪問:

http://192.168.0.102:9200/_plugin/head/

CentOS 8 部署ELK日誌分析平臺

Logstash 介紹:

Logstash 主要是用來日誌的蒐集、分析、過濾日誌的工具,支持大量的數據獲取方式。通常工做方式爲c/s架構,client端安裝在須要收集日誌的主機上,server端負責將收到的各節點日誌進行過濾、修改等操做在一併發往elasticsearch上去。
logstash收集日誌基本流程: input-->codec-->filter-->codec-->output
1.input:從哪裏收集日誌。
2.filter:發出去前進行過濾
3.output:輸出至Elasticsearch或Redis消息隊列
4.codec:輸出至前臺,方便邊實踐邊測試
5.數據量不大日誌按照月來進行收集

部署Logstash

1.配置yum源

vim /etc/yum.repos.d/logstash.repo

[logstash-2.1]
name=Logstash repository for 2.1.x packages
baseurl=http://packages.elastic.co/logstash/2.1/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enable=1

2.下載安裝logstash

yum install logstash -y

測試logstash

logstash的基本語法

input {
指定輸入
}

output {
指定輸出
}

1.測試標準輸入輸出

使用rubydebug方式前臺輸出展現以及測試
/opt/logstash/bin/logstash -e 'input { stdin {} } output { stdout { codec => rubydebug} }'
hello #輸入hello測試

CentOS 8 部署ELK日誌分析平臺

2.測試輸出到文件

/opt/logstash/bin/logstash -e 'input { stdin {} } output { file { path => "/tmp/test-%{+YYYY.MM.dd}.log"} }'
cat /tmp/test-2020.02.17.log

CentOS 8 部署ELK日誌分析平臺

3.開啓日誌壓縮

/opt/logstash/bin/logstash -e 'input { stdin {} } output { file { path => "/tmp/test-%{+YYYY.MM.dd}.log.tar.gz" gzip => true } }'
ll /tmp/

CentOS 8 部署ELK日誌分析平臺

4.測試輸出到elasticsearch

/opt/logstash/bin/logstash -e 'input { stdin {} } output { elasticsearch { hosts => ["192.168.0.102:9200"] index => "logstash-test-%{+YYYY.MM.dd}" } }'
ll /data/es-data/yltx/nodes/0/indices

CentOS 8 部署ELK日誌分析平臺
CentOS 8 部署ELK日誌分析平臺

5.網頁驗證

CentOS 8 部署ELK日誌分析平臺

CentOS 8 部署ELK日誌分析平臺

Kibana 簡介

Kibana 也是一個開源和免費的工具,Kibana能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助彙總、分析和搜索重要數據日誌。

Kibana 部署

1.下載安裝kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.0-linux-x86_64.tar.gz
tar zxvf kibana-7.6.0-linux-x86_64.tar.gz -C /opt/
mv /opt/kibana-7.6.0-linux-x86_64/ /usr/local/kibana

2.修改配置

vim /usr/local/kibana/config/kibana.yml

server.port: 5601           #2行 訪問端口
server.host: "0.0.0.0"   #5行 監聽網絡
elasticsearch.url: "http://192.168.0.102:9200"    #12行 ES地址
kibana.index: ".kibana"    #20行

CentOS 8 部署ELK日誌分析平臺

3.啓動服務

/usr/local/kibana/bin/kibana &
netstat -ntap |grep 5601 #查看端口號

CentOS 8 部署ELK日誌分析平臺

4.網頁驗證:

http://192.168.0.102:5601/

CentOS 8 部署ELK日誌分析平臺
CentOS 8 部署ELK日誌分析平臺

測試 ELK平臺

收集系統日誌和收集java異常日誌

1.修改logstash配置文件:

vim /root/file.conf

input {
            file {
                    path => "/var/log/messages"     #收集系統日誌
                    type => "system"
                    start_position => "beginning"
            }
            file {
                    path => "/var/log/elasticsearch/yltx.log"   #收集java異常日誌
                    type => "es-error"
                    start_position => "beginning"
                    codec => multiline {
                    pattern => "^\["
                    negate => true
                    what => "previous"
                }
            }
}

output {

         if [type] == "system" {
                 elasticsearch {
                         hosts => ["192.168.0.102:9200"]  
                         index => "system-%{+YYYY.MM.dd}"  
                 }
         }

         if [type] == "es-error" {
                 elasticsearch {
                         hosts => ["192.168.0.102:9200"]
                         index => "es-error-%{+YYYY.MM.dd}"
                 }
         }
}

2.寫入到elasticsearch中

/opt/logstash/bin/logstash -f /root/file.conf

3.查看Elasticsearch

CentOS 8 部署ELK日誌分析平臺

CentOS 8 部署ELK日誌分析平臺

4.查看Kibana

CentOS 8 部署ELK日誌分析平臺
CentOS 8 部署ELK日誌分析平臺

相關資料

ELK官網:https://www.elastic.co/cn/
中文指南:https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details

相關文章
相關標籤/搜索