ElasticStack实时分析Laravel日志
概述
ElasticStack 是一个开源的解决方案,包括 Elasticsearch、Logstash 、Kibana、Beats等等,可以收集各种类型,各种格式的源数据,同时提供数据搜索,分析和可视化的展示。
结构
-
filebeat:收集laravel日志并写进redis
-
logstsh:logstash从redis获取数据,通过filter模块过滤,然后输出到elasticsearch
-
elasticsearch:接收logstash发送的数据
-
Kibana:将elasticsearch的数据转化为各种图表,提供数据可视化支持
安装配置
filebeat
- 前往elastic官网下载安装包(https://www.elastic.co/downloads/beats/filebeat)
此处下载6.6.0的rpm安装包
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.0-x86_64.rpm
- rpm安装
rpm -ivh filebeat-6.6.0-x86_64.rpm
3.配置:修改输入输出源
vim /etc/filebeat/filebeat.yml
···
#=========================== Filebeat inputs =============================
filebeat.inputs:
- type: log
enabled: true
paths:
- /mnt/win/WWW/testapi/storage/logs/*.log
- /mnt/win/WWW/testweb/storage/logs/*.log
···
#================================ Outputs =====================================
output.redis:
hosts: ["127.0.0.1:6379"]
db: 0
timeout: 5
key: "laravel_log"
# Optional protocol and basic auth credentials.
#protocol: "https"
#username: "elastic"
#password: "changeme"
···
- 启动
systemctl start filebeat
Logstash
- 前往elastic官网下载安装包(https://www.elastic.co/cn/downloads/logstash)
此处下载6.6.0的rpm安装包
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.6.0.rpm
- rpm安装
rpm -ivh logstash-6.6.0.rpm
3.logstash配置:
vim /etc/logstash/logstash.yml
···
path.config: /etc/logstash/conf.d
···
http.host: "0.0.0.0"
···
path.logs: /var/log/logstash
4.pipeline配置:
vim /etc/logstash/con.d/laravel_log.conf
# 从redis将数据取出
input {
redis {
type => "laravel_log"
host => "127.0.0.1"
port => "6379"
db => "0"
data_type => "list"
key => "laravel_log"
}
}
# 格式化laravel日志
filter {
grok {
match => [ "message","\[%{TIMESTAMP_ISO8601:logtime}\] %{WORD:env}\.(?<level>[A-Z]{4,5})\: %{GREEDYDATA:msg}}" ]
}
}
# 输出到elasticsearch
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "laravel_log"
}
}
- 启动
systemctl start logstash
ElasticSearch
- 前往elastic官网下载安装包(https://www.elastic.co/cn/downloads/elasticsearch)
此处下载6.6.0的rpm安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.rpm
- rpm安装
rpm -ivh elasticsearch-6.6.0.rpm
- 配置
vim /etc/elasticsearch/elasticsearch.yml
开启并修改network.host
network.host: 0.0.0.0
- 启动
systemctl start elasticsearch
- 使用
访问 http://192.168.10.66:9200/ (IP自行替换)
Kibana
- 前往elastic官网下载安装包(https://www.elastic.co/cn/downloads/kibana)
此处下载6.6.0的rpm安装包
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.6.0-x86_64.rpm
- rpm安装
rpm -ivh kibana-6.6.0-x86_64.rpm
- 配置
vim /etc/kibana/kibana.yml
修改server.host、elasticsearch.hosts
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
- 启动
systemctl start kibana
- 使用
访问 http://192.168.10.66:5601/ (IP自行替换)
日志分析
-
创建Index
打开kibana,点击侧边栏最后一项 Management - Kibana - Index Patterns - Create index pattern ,根据引导,增加index -
查看日志
点击侧边栏第一项 Discover,选择对应的Index,查看生成的Laravel日志 -
创建图表
打开kibana,点击侧边栏 Visualize ,根据需要新增图表