ELK+filebeat+redis日志分析平臺(tái)搭建-創(chuàng)新互聯(lián)

平臺(tái)拓?fù)鋱D
ELK+filebeat+redis日志分析平臺(tái)搭建
軟件版本:

成都創(chuàng)新互聯(lián)公司2013年至今,先為墨江等服務(wù)建站,墨江等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為墨江企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
  • elasticsearch-6.6.0
  • logstash-6.6.0
  • kibana-6.6.0
  • redis-3.2.12
  • java-1.8.0

1. 基礎(chǔ)環(huán)境的準(zhǔn)備

配置elasticsearch集群的基礎(chǔ)環(huán)境,關(guān)閉其防火墻、selinux、配置主機(jī)名等

systemctl stop firewalld
systemctl disable firewalld
vim /etc/selinux/config
SELINUX=disabled
hostnamectl set-hostname node1
其它兩臺(tái)設(shè)備做相應(yīng)的配置
在集群的三臺(tái)設(shè)備的/etc/hosts文件中寫入對(duì)應(yīng)的主機(jī)名解析
172.20.128.39 node1
172.20.128.40 node2
172.20.128.41 node3
配置logstash主機(jī)的基礎(chǔ)環(huán)境,這里logstash與kibana部署在一臺(tái)設(shè)備上
systemctl stop firewalld
systemctl disable firewalld
vim /etc/selinux/config
SELINUX=disabled
hostnamectl set-hostname master
在/etc/hosts文件中寫入elk集群的主機(jī)名解析
172.20.128.39 node1
172.20.128.40 node2
172.20.128.41 node3

2. 安裝部署elasticsearch集群

首先安裝java-1.8.0環(huán)境
yum install -y java-1.8.0
rpm -ivh elasticsearch-6.6.0.rpm
systemctl enable elasticsearch.service  
編輯其配置文件
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: myels    //所屬集群名稱
node.name: node1     //當(dāng)前節(jié)點(diǎn)名稱
path.data: /els/data   //數(shù)據(jù)存放路徑
path.logs: /els/logs   //日志存放路徑
network.host: 172.20.128.39 //監(jiān)聽(tīng)地址,向客戶端提供服務(wù)地址
http.port: 9200
discovery.zen.ping.unicast.hosts: ["host1", "host2","host3"]   //集群成員判定
discovery.zen.minimum_master_nodes: 3      //內(nèi)部集群成員關(guān)系判定最小主節(jié)點(diǎn)數(shù)
修改服務(wù)啟動(dòng)時(shí)內(nèi)存所需大小
vim /etc/elasticsearch/jvm.options
-Xms1g    //初始化內(nèi)存空間大小
-Xmx1g   //堆內(nèi)存空間大小

安裝部署其它兩個(gè)節(jié)點(diǎn)
同上先安裝java環(huán)境,然后安裝elasticsearch
將節(jié)點(diǎn)1的配置文件復(fù)制到節(jié)點(diǎn)2跟節(jié)點(diǎn)3并作相應(yīng)的修改
為每個(gè)節(jié)點(diǎn)創(chuàng)建存儲(chǔ)目錄

mkdir -p /els/{data,logs}
chown elasticsearch.elasticsearch /els/*
啟動(dòng)服務(wù)
systemctl start elasticsearch

當(dāng)三個(gè)節(jié)點(diǎn)服務(wù)全部安裝完成后可以使用curl查看節(jié)點(diǎn)運(yùn)行狀態(tài)是否正常
ELK+filebeat+redis日志分析平臺(tái)搭建

3.安裝配置Logstash

首先安裝java環(huán)境
yum install java-1.8.0-openjdk -y
rpm -ivh logstash-6.6.0.rpm
編輯配置文件/etc/logstash/logstash.yml
path.config: /etc/logstash/conf.d     //加載配置文件,此路徑為logstash插件默認(rèn)執(zhí)行位置,包括輸入插件配置文件,輸出插件等配置文件
配置logstash環(huán)境變量
vim /etc/profile.d/logstash.sh
export PATH=$PATH:/usr/share/logstash/bin/

實(shí)例:定義一個(gè)標(biāo)準(zhǔn)輸入輸出插件,并logstash服務(wù)進(jìn)行測(cè)試
input {
stdin {}
}
output {
stdout {}
}
進(jìn)入交互式界面進(jìn)行測(cè)試
logstash -f stdin-stdout.conf
輸入hello logstash
得到標(biāo)準(zhǔn)輸出
ELK+filebeat+redis日志分析平臺(tái)搭建

4.安裝部署filebeat插件及redis緩存池

在172.20.128.43主機(jī)上上傳filebeat的rpm包并安裝
rpm  -ivh filebeat-6.6.0-x86_64.rpm
配置 Filebeat inputs數(shù)據(jù)讀取路徑
#=========================== Filebeat inputs =============================
- type: log
  paths:
  - /var/log/httpd/access_log    //日志獲取的路徑
filebeat文件的獲取數(shù)據(jù)格式,默認(rèn)為log
#================================ Redis Outputs  =====================================
output.redis:
  enable: true
  hosts: ["172.20.128.43"]
  port: 6379
  key: filebeat
  password: test.com
  db: 0
  datatype: list
systemctl start filebeat
systemctl enable filebeat
添加redis服務(wù)作為緩存池
yum install -y redis   //使用epel源安裝
配置redis服務(wù),編輯配置文件
vim /etc/redis.conf
監(jiān)聽(tīng)0.0.0.0地址
bind 0.0.0.0
requirepass test.com
systemctl start redis
systemctl enable redis

5.安裝httpd服務(wù),并使用具體實(shí)例對(duì)日志分析流水線進(jìn)行測(cè)試

yum install -y httpd
創(chuàng)建測(cè)試頁(yè)面
for i in {1..20};do echo "Test Page $i" > ./test$i.html;done
使用curl命令進(jìn)行測(cè)試
curl http://172.20.128.42/test1.html
修改httpd的配置文件
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined   //此配置可以將客戶端的IP地址記錄在日志中
systemctl start httpd
systemctl enable httpd
在客戶端模擬多個(gè)不同的客戶端對(duì)logstash進(jìn)行訪問(wèn)
while true;do curl -H "X-Forwarded-For:$[$RANDOM%223+1].$[$RANDOM%225].1.1"    http://172.20.128.43/test$[$RANDOM%25+1].html; sleep 1; done

在logstash配置文件的conf.d目錄下編寫配置文件接受redis服務(wù)器存儲(chǔ)的數(shù)據(jù),在本地對(duì)日志數(shù)據(jù)進(jìn)行加工處理,添加屬性信息等,然后輸出給elasticsearch。
為了在kibana中有更精確的數(shù)據(jù)展示,在logstash服務(wù)器中添加GeoLite2-City數(shù)據(jù)庫(kù),用于獲取客戶端IP地址的經(jīng)緯度信息
geoip插件會(huì)根據(jù)請(qǐng)求自動(dòng)讀取到所期望讀取的ip,例如cilentip
然后將cilentip跟地址庫(kù)中信息做比對(duì),如果能查找到則解析為當(dāng)中所記錄的歸屬者或者擁有者信息,否則返回錯(cuò)誤。

配置使用geoip插件
展開(kāi)GeoLite2-City_20191203壓縮包,將文件復(fù)制到/etc/logstash/maxmind
進(jìn)入到/etc/logstash/maxmind目錄創(chuàng)建符號(hào)鏈接
ln -sv GeoLite2-City_20191203/GeoLite2-City.mmdb ./
接下來(lái)配置logstash用戶接受處理數(shù)據(jù)的配置文件

vim /etc/logstash/conf.d/redis-els.conf
input {                  //input用于定義接受從redis獲取數(shù)據(jù)
      redis {
        host => "172.20.128.43"
        port => 6379
        password => "test.com"
        db   => 0
        key  => "filebeat"
        data_type => "list"
        }

}
filter {                   //過(guò)濾插件對(duì)獲取的日志數(shù)據(jù)進(jìn)行切割同時(shí)添加屬性信息
      grok {             //調(diào)用logstash內(nèi)置函數(shù)對(duì)日志數(shù)據(jù)進(jìn)行切割
        match => {"message" => "%{HTTPD_COMBINEDLOG}"}
        remove_field => ["message","beat"]
        }
      date {
        match => ["timestamp","dd/MMM/YYY:H:m:s Z"]
        }
      geoip {                                         //調(diào)用經(jīng)緯度信息
        source => "clientip"
        target => "geoip"
        database => "/etc/logstash/maxmind/GeoLite2-City.mmdb"
        }
     mutate {                                       //去除數(shù)據(jù)切割后相同字段屬性
        rename => {"[host][name]" => "host"}
        }
}
output {               //處理后的數(shù)據(jù)輸出到elsaticsearch中
       elasticsearch {
           hosts => ["http://node1:9200/","http://node2:9200/","http://node3:9200/"]
           index => "logstash-%{+YYYY.MM.dd}"
           document_type => "httpd_access_logs"
       }
        stdout {codec => rubydebug}      //在輸出到elasticsearch的同時(shí),將數(shù)據(jù)數(shù)據(jù)到桌面,如果有錯(cuò)誤信息同時(shí)輸出的桌面
}

在客戶端發(fā)起請(qǐng)求的同時(shí),執(zhí)行此配置文件
logstash -f redis-els.conf
此時(shí)可以看到桌面的數(shù)據(jù)輸出
ELK+filebeat+redis日志分析平臺(tái)搭建
在elasticsearch驗(yàn)證是否有索引生成
ELK+filebeat+redis日志分析平臺(tái)搭建

6.安裝kibana圖形展示界面

將rpm包上傳到172.20.128.42并安裝
rpm -ivh kibana-6.6.0-x86_64.rpm
編輯配置文件 /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
server.name: "master"   //安裝kinaba服務(wù)的主機(jī)名
elasticsearch.hosts: ["http://node1:9200"]  //生產(chǎn)環(huán)境中此處可以使用VIP進(jìn)行高可用訪問(wèn),此處選取任意一個(gè)elastic作為數(shù)據(jù)輸入源
elasticsearch.preserveHost: true   //是否保留原來(lái)的主機(jī)host
kibana.index: ".kibana"  //kibana啟動(dòng)后將自身索引信息保存在elasticsearch,
啟動(dòng)服務(wù)
systemctl start kibana
systemctl enable kibana

在瀏覽器輸入172.20.128.42:5601
在management生成配置一個(gè)index pattern,名稱以logstash-“date”為基準(zhǔn)
ELK+filebeat+redis日志分析平臺(tái)搭建
在Discover選項(xiàng)可以是創(chuàng)建的索引進(jìn)行搜索
ELK+filebeat+redis日志分析平臺(tái)搭建
還可以在Visualize選項(xiàng)進(jìn)行客戶端請(qǐng)求IP地址來(lái)源的儀表盤展示,選擇
ELK+filebeat+redis日志分析平臺(tái)搭建
此時(shí)一個(gè)elk的測(cè)試環(huán)境搭建完成

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:ELK+filebeat+redis日志分析平臺(tái)搭建-創(chuàng)新互聯(lián)
文章鏈接:http://muchs.cn/article14/hiede.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、搜索引擎優(yōu)化域名注冊(cè)、軟件開(kāi)發(fā)企業(yè)建站、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)