filebeat+redis+elk日誌分析搭建

filebeat: 10.0.0.41
redis: 10.0.0.42
logstash: 10.0.0.43
elasticsearch: 10.0.0.44
kibana: 10.0.0.45
架構如下:
在這裏插入圖片描述
一、filebeat:10.0.0.41
1、安裝filebeat,自己作多個filebeat,我只做一個

cat > /etc/yum.repos.d/artifacts.repo <<EOF
[elastic-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
yum -y install filebeat

2、編輯filebeat的配置文件,並下載nginx產生日誌
上傳nginx包,源碼進行編譯
在這裏插入圖片描述
我這裏下載好的直接上傳

yum –y install pcre-devel zlib-devel gcc gcc-c++
tar xzf nginx-1.12.0.tar.gz
cd nginx-1.12.0
./configure && make && make install
vim /etc/filebeat/filebeat.yml
#其他配置都可以刪除
filebeat.inputs:     #收集日誌
- type: log         #類型
  enabled: true     #始終收集
  paths:
    - /usr/local/nginx/logs/*.log    #收集/var/log/nginx/下的以 .log 結尾的日誌
output.redis:        #輸出日誌,固定格式
  hosts: ["10.0.0.42:6379"]  #輸出在redis裏
#  password: "123456"   #redis認證密碼,我沒有
  key: "log_file"       #日誌redis的key值
  db: 0                 #redis數據庫0
  timeout: 5             #延時5s

3、重啓filebeat

systemctl restart filebeat
/usr/local/nginx/sbin/nginx

4、測試
可以在安裝filebeat的服務器上測試一下nginx的服務,併產生日誌

curl -I 10.0.0.41:80

在這裏插入圖片描述
在這裏插入圖片描述
二、redis:10.0.0.42
1 下載redis5.0

wget http://download.redis.io/releases/redis-5.0.2.tar.gz

2、安裝redis編譯需要的環境

yum -y install gcc gcc-c++

3、編譯安裝redis

tar zxf redis-5.0.2.tar.gz
cd redis-5.0.2/
make MALLOC=libc && make install

4、寫master拷貝redis配置至/etc/redis.conf、並修改成以守護進程啓動

cp redis.conf /etc/redis.conf
vim /etc/redis.conf
bind 0.0.0.0 接收所有IP信息

在這裏插入圖片描述
5、啓動redis主

/usr/local/bin/redis-server /etc/redis.conf

在這裏插入圖片描述
6、寫slave拷貝redis配置至/etc/redis_slave.conf、修改端口,設置主從同步並修改成以守護進程啓動

cp redis.conf /etc/redis_slave.conf
vim /etc/redis_slave.conf

在這裏插入圖片描述
在這裏插入圖片描述
7、啓動redis從

/usr/local/bin/redis-server /etc/redis_slave.conf

在這裏插入圖片描述
8、查看端口
在這裏插入圖片描述
9、測試主從是否成功,並接收到filebeat日誌
在這裏插入圖片描述
三、logstash:10.0.0.43
1、首先拉軟件包,基於java語言開發首先配置java環境,推薦1G運行內存

在這裏插入圖片描述
2、安裝logstash過濾收集工具,和客戶端有點相似

rpm -ivh logstash-6.6.0.rpm

3、配置logstash、並啓動logstash、自己加過濾規則
添加nginx過濾規則

vim /usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-patterns-core-4.1.2/patterns/nginx_access
URIPARAM1 [A-Za-z0-9$.+!*'|(){},~@#%&/=:;_?\-\[\]]*
NGINXACCESS %{IPORHOST:client_ip} (%{USER:ident}|- ) (%{USER:auth}|-) \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} (%{NOTSPACE:request}|-)(?: HTTP/%{NUMBER:http_version})?|-)" %{NUMBER:status} (?:%{NUMBER:bytes}|-) "(?:%{URI:referrer}|-)" "%{GREEDYDATA:agent}"

配置logstash

vim /etc/logstash/conf.d/redis_log.conf
input {
redis {
port => "6379"
host => "10.0.0.42"   #記住收取了redis裏的數據,redis將沒有數據
# password => "6lapp" #redis認證密碼,我沒有
data_type => "list"
type => "log"
key => "log_file"
}
}
filter {
  grok {
    match => { "message" => "%{NGINXACCESS}" }   #對應nginx,上一題過濾正則

  }
}
output {
elasticsearch {
hosts => "10.0.0.44:9200"
index => "logstash-%{+YYYY.MM.dd}"
}
}
systemctl start logstash

4、查看端口
在這裏插入圖片描述
四、elasticsearch:10.0.0.44
1、首先拉軟件包,基於java語言開發首先配置java環境,推薦1G運行內存

在這裏插入圖片描述
2、首先安裝elasticsearch-6.6.0.rpm

rpm -ivh elasticsearch-6.6.0.rpm 

3、修改elasticsearch配置,並啓動elasticsearch

vim /etc/elasticsearch/elasticsearch.yml

在這裏插入圖片描述

systemctl start elasticsearch

五、kibana:10.0.0.45
1、首先拉軟件包,推薦1G運行內存,不需要java環境

在這裏插入圖片描述
2、安裝kibana

rpm -ivh kibana-6.6.0-x86_64.rpm

3、修改kibana配置、並啓動kibana

vim /etc/kibana/kibana.yml

在這裏插入圖片描述

systemctl start kibana

4、效果出現索引,並且過濾成功,如果過濾報警號,刪除索引重啓
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

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