溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ELK日志分析系統(tǒng)(理論+部署)

發(fā)布時間:2020-07-19 06:43:03 來源:網(wǎng)絡(luò) 閱讀:411 作者:SiceLc 欄目:系統(tǒng)運(yùn)維

ELK日志分析系統(tǒng)簡介

日志服務(wù)器

  • 提高安全性
  • 集中存放日志
  • 缺陷
    • 對日志的分析困難

ELK日志分析系統(tǒng)

  • Elasticsearch
  • Logstash
  • Kibana

日志處理步驟

  • 將日志進(jìn)行集中化管理
  • 將日志格式化( Logstash )并輸出到Elasticsearch
  • 對格式化后的數(shù)據(jù)進(jìn)行索弓|和存儲( Elasticsearch )
  • 前端數(shù)據(jù)的展示( Kibana )

Elasticsearch介紹

Elasticsearch的概述

  • 提供了一個分布式多用戶能力的全文搜索弓|擎

Elasticsearch的概念

  • 接近實(shí)時
  • 集群
  • 節(jié)點(diǎn)
  • 索引
    • 索引(庫)->類型(表)->文檔(記錄)
  • 分片和副本

Logstash介紹

Logstash介紹

  • 一款強(qiáng)大的數(shù)據(jù)處理工具,可以實(shí)現(xiàn)數(shù)據(jù)傳輸、格式處理、格式化輸出
  • 數(shù)據(jù)輸入、數(shù)據(jù)加工(如過濾,改寫等)以及數(shù)據(jù)輸出

LogStash主要組件

  • Shipper
  • Indexer
  • Broker
  • Search and Storage
  • Web Interface

Kibana介紹

Kibana介紹

  • 一個針對Elasticsearch的開源分析及可視化平臺
  • 搜索、查看存儲在Elasticsearch索弓|中的數(shù)據(jù)
  • 通過各種圖表進(jìn)行高級數(shù)據(jù)分析及展示

Kibana主要功能

  • Elasticsearch無縫之 集成
  • 整合數(shù)據(jù),復(fù)雜數(shù)據(jù)分析
  • 讓更多團(tuán)隊(duì)成員受益
  • 接口靈活,分享更容易
  • 配置簡單,可視化多數(shù)據(jù)源
  • 簡單數(shù)據(jù)導(dǎo)出

部署ELK日志分析系統(tǒng)

實(shí)驗(yàn)環(huán)境

  • node1節(jié)點(diǎn)服務(wù)器IP地址:192.168.80.128
  • node2節(jié)點(diǎn)服務(wù)器IP地址:192.168.80.129
  • apache服務(wù)器IP地址:192.168.80.800

在node1,node2上安裝elasticsearch

[root@node1 ~]# vim /etc/hosts         //配置解析名
192.168.80.128 node1
192.168.80.129 node2
[root@node1 ~]# java -version         //查看是Java是否安裝
[root@node1 ~]# mount.cifs //192.168.80.2/LNMP-C7 /mnt/
Password for root@//192.168.80.2/LNMP-C7:  
[root@node1 mnt]# cd /mnt/elk/
[root@node1 elk]# rpm -ivh elasticsearch-5.5.0.rpm         //安裝
[root@node1 elk]# systemctl daemon-reload         //重載守護(hù)進(jìn)程
[root@node1 elk]# systemctl enable elasticsearch.service        //開機(jī)自動啟動
[root@node1 elk]# cd /etc/elasticsearch/
[root@node1 elasticsearch]# cp elasticsearch.yml elasticsearch.yml.bak      //備份
[root@node1 elasticsearch]# vim elasticsearch.yml        //修改配置文件
cluster.name: my-elk-cluster       //集群名
node.name: node1                   //節(jié)點(diǎn)名,第二個節(jié)點(diǎn)為node2
path.data: /data/elk_data          //數(shù)據(jù)存放位置
path.logs: /var/log/elasticsearch/  //日志存放位置
bootstrap.memory_lock: false         //不在啟動時鎖定內(nèi)存
network.host: 0.0.0.0                //提供服務(wù)綁定的IP地址,為所有地址
http.port: 9200  ##端口號為9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]         //集群發(fā)現(xiàn)通過單播實(shí)現(xiàn)
[root@node1 elasticsearch]# mkdir -p /data/elk_data           //創(chuàng)建數(shù)據(jù)存放點(diǎn)
[root@node1 elasticsearch]# chown elasticsearch.elasticsearch /data/elk_data/     //給權(quán)限
[root@node1 elasticsearch]# systemctl start elasticsearch.service        //開啟服務(wù)
[root@node1 elasticsearch]# netstat -ntap | grep 9200         //查看開啟情況
tcp6     0    0 :::9200        :::*          LISTEN      2166/java

ELK日志分析系統(tǒng)(理論+部署)
ELK日志分析系統(tǒng)(理論+部署)

在node1,node2上安裝node組件依賴包

[root@node1 elasticsearch]# yum install gcc gcc-c++ make -y       //安裝編譯工具
[root@node1 elasticsearch]# cd /mnt/elk/
[root@node1 elk]# tar zxvf node-v8.2.1.tar.gz -C /opt/             //解壓插件
[root@node1 elk]# cd /opt/node-v8.2.1/
[root@node1 node-v8.2.1]# ./configure                            //配置
[root@node1 node-v8.2.1]# make && make install                   //編譯安裝

在node1,node2上安裝phantomjs前端框架

[root@node1 elk]# tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/     //解壓到/usr/local/src下
[root@node1 elk]# cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/
[root@node1 bin]# cp phantomjs /usr/local/bin/                //編譯系統(tǒng)識別

在node1,node2上安裝elasticsearch-head數(shù)據(jù)可視化

[root@node1 bin]# cd /mnt/elk/
[root@node1 elk]# tar zxvf elasticsearch-head.tar.gz -C /usr/local/src/       //解壓
[root@node1 elk]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm install               //安裝

修改配置文件

[root@node1 elasticsearch-head]# vim /etc/elasticsearch/elasticsearch.yml     //末行加入
http.cors.enabled: true                  //開啟跨域訪問支持,默認(rèn)為false
http.cors.allow-origin: "*"              //跨域訪問允許的域名地址
[root@node1 elasticsearch-head]# systemctl restart elasticsearch.service       //重啟
[root@node1 elasticsearch-head]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm run start &                         //后臺運(yùn)行數(shù)據(jù)可視化服務(wù)
[1] 82515
[root@node1 elasticsearch-head]# netstat -ntap | grep 9100
tcp        0      0 0.0.0.0:9100    0.0.0.0:*      LISTEN      82525/grunt  
[root@node1 elasticsearch-head]# netstat -ntap | grep 9200
tcp6       0    0 :::9200              :::*        LISTEN      82981/java

在瀏覽器上查看健康值狀態(tài)

ELK日志分析系統(tǒng)(理論+部署)
ELK日志分析系統(tǒng)(理論+部署)

在node1上創(chuàng)建索引

ELK日志分析系統(tǒng)(理論+部署)ELK日志分析系統(tǒng)(理論+部署)

創(chuàng)建索引信息

[root@node2 ~]# curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

在瀏覽器中查看

ELK日志分析系統(tǒng)(理論+部署)

在Apache服務(wù)器上安裝logstash,多elasticsearch進(jìn)行對接

[root@apache ~]# yum install httpd -y         //安裝服務(wù)
[root@apache ~]# systemctl start httpd.service        //啟動服務(wù)
[root@apache ~]# java -version
[root@apache ~]# mount.cifs //192.168.100.8/LNMP-C7 /mnt/       //掛載
Password for root@//192.168.100.8/LNMP-C7:
[root@apache ~]# cd /mnt/elk/
[root@apache elk]# rpm -ivh logstash-5.5.1.rpm        //安裝logstash
[root@apache elk]# systemctl start logstash.service 
[root@apache elk]# systemctl enable logstash.service   //設(shè)置開機(jī)自啟
[root@apache elk]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/      //便于系統(tǒng)識別
[root@apache elk]# logstash -e 'input { stdin{} } output { stdout{} }'        //標(biāo)準(zhǔn)輸入輸出
The stdin plugin is now waiting for input:
16:58:11.145 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
www.baidu.com        //輸入
2019-12-19T08:58:35.707Z apache www.baidu.com
www.sina.com.cn      //輸入
2019-12-19T08:58:42.092Z apache www.sina.com.cn
[root@apache elk]# logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'      //使用rubydebug顯示詳細(xì)輸出,codec為一種編解碼器
The stdin plugin is now waiting for input:
17:03:08.226 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
www.baidu.com              //格式化的處理
{
        "@timestamp" => 2019-12-19T09:03:80.267Z,
            "@version" => "1",
                    "host" => "apache",
             "message" => "www.baidu.com"
}
[root@apache elk]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.80.129:9200"] } }'
##使用logstach將信息寫入elasticsearch中
The stdin plugin is now waiting for input:
17:06:46.846 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
www.baidu.com              //輸入信息
www.sina.com.cn

用瀏覽器查看信息

ELK日志分析系統(tǒng)(理論+部署)
ELK日志分析系統(tǒng)(理論+部署)

將系統(tǒng)日志文件輸出到elasticsearch

[root@apache elk]# chmod o+r /var/log/messages            //給其他用戶讀權(quán)限
[root@apache elk]# vim /etc/logstash/conf.d/system.conf     //創(chuàng)建文件
input {
                file{
                path => "/var/log/messages"        //輸出目錄
                type => "system"
                start_position => "beginning"
                }
}
output {
                elasticsearch {
                #輸入地址指向node1節(jié)點(diǎn)
                hosts => ["192.168.80.129:9200"]
                index => "system-%{+YYYY.MM.dd}"
                }
}
[root@apache elk]# systemctl restart logstash.service      //重啟服務(wù)

用數(shù)據(jù)瀏覽查看詳細(xì)信息

ELK日志分析系統(tǒng)(理論+部署)

在node1服務(wù)器上安裝kibana數(shù)據(jù)可視化

[root@node1 ~]# cd /mnt/elk/
[root@node1 elk]# rpm -ivh kibana-5.5.1-x86_64.rpm           //安裝
[root@node1 elk]# cd /etc/kibana/
[root@node1 kibana]# cp kibana.yml kibana.yml.bak               //備份
[root@node1 kibana]# vim kibana.yml                     //修改配置文件
server.port: 5601                          //端口號
server.host: "0.0.0.0"                     //監(jiān)聽任意網(wǎng)段
elasticsearch.url: "http://192.168.80.129:9200"             //本機(jī)節(jié)點(diǎn)地址
kibana.index: ".kibana"                              //索引名稱
[root@node1 kibana]# systemctl start kibana.service         //開啟服務(wù)
[root@node1 kibana]# systemctl enable kibana.service 

瀏覽器訪問kibana

ELK日志分析系統(tǒng)(理論+部署)
ELK日志分析系統(tǒng)(理論+部署)

在apache服務(wù)器中對接apache日志文件,進(jìn)行統(tǒng)計

[root@apache elk]# vim /etc/logstash/conf.d/apache_log.conf      //創(chuàng)建配置文件
input {
                file{
                path => "/etc/httpd/logs/access_log"       //輸入信息
                type => "access"
                start_position => "beginning"
                }
                file{
                path => "/etc/httpd/logs/error_log"
                type => "error"
                start_position => "beginning"
                }
}
output {
                if [type] == "access" {          //根據(jù)條件判斷輸出信息
                elasticsearch {
                hosts => ["192.168.80.129:9200"]
                index => "apache_access-%{+YYYY.MM.dd}"
                }
        }   
                if [type] == "error" {
                elasticsearch {
                hosts => ["192.168.80.129:9200"]
                index => "apache_error-%{+YYYY.MM.dd}"
                }
        }
}
[root@apache elk]# logstash -f /etc/logstash/conf.d/apache_log.conf        //根據(jù)配置文件配置logstach

訪問網(wǎng)頁信息,查看kibana統(tǒng)計情況

ELK日志分析系統(tǒng)(理論+部署)ELK日志分析系統(tǒng)(理論+部署)

選擇management>Index Patterns>create index patterns;創(chuàng)建apache兩個日志的信息

ELK日志分析系統(tǒng)(理論+部署)
ELK日志分析系統(tǒng)(理論+部署)
ELK日志分析系統(tǒng)(理論+部署)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI