目前系统主要流程
组件说明:
Collector:单独的java进程,暴露HTTP接口,用于APP日志上传。
Filebeat-6.7.1:日志收集工具。
Logstash-6.7.1:作为管道,将收集的日志传输给Elasticsearch存储,同时具有日志过滤、数据转换功能。
Elasticsearch-6.7.1:存储日志数据,提供数据搜索、聚合功能。
Kibana-6.7.1:查询聚合Elasticsearch中的数据,生成报表
环境准备
机器准备:3台
1台安装filebeat + kibana + collector
1台安装 logstash
另:每一台均安装ES-6.7.1集群
详情请查看es安装文档
下载logstash-6.7.1
cd /home
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.7.1.tar.gz
解压logstash包
tar –zxvf logstash-6.7.1.tar.gz
配置文件修改
分为输入和输出
输入:配置logstash端口
日期处理
过滤不需要的字段
输出:elasticsearch 多IP地址
索引名称
文档类型
input {
beats {
port => 5044
}
}
filter {
date {
match => ["@timestamp","ISO8601"]
timezone => "Asia/Shanghai"
target => "@timestamp"
}
if [fields][logtype] == "hsh_click_logs"{
json {
source => "message"
#target => "doc"
remove_field => ["message", "source", "prospector", "offset", "tags",
"input", "host"]
}
}
}
output {
elasticsearch {
hosts => ["http://IP1:9200", "http://IP2:9200"]
index => "hsh_click_logs_%{+YYYY.MM}"
document_type => "_doc"
#user => "elastic"
#password => "changeme"
}
}
启动
./logstash -f logstash.conf
下载filebeat包
wget https://www.elastic.co/cn/downloads/beats/filebeat/filebeat-6.2.1-linux-x86_64.tar.gz
解压
tar -zxvf filebeat-6.2.1-linux-x86_64.tar.gz
配置文件修改
分为输入和输出
输入:类型
读取日志路径
字段日志类型
输出:输出到logstash
配置连接地址
filebeat.inputs:
- type: log
enabled: true
paths:
# 该路径为项目collector安装目录下点击事件日志
- /data/home/ywck/log-collector/logs/click-log*.log
fields:
logtype: hsh_click_logs
#--------------------- Logstash output -------------------------------
output.logstash:
hosts: ["logstashIP:5044"]
启动
./filebeat -e -c filebeat.yml -d "publish"
下载kibana安装包
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.7.1-linux-x86_64.tar.gz
解压kibana安装包
tar -zxvf kibana-6.7.1-linux-x86_64.tar.gz
配置文件修改(以下指定项)
ES集群
Elasticsearch.hosts:[ http://IP1:port, http://IP2:port, http://IP3:port]
Server’s name
Server.name: "hsh-logs"
端口
Server.port:5601
Server host
Server.host:0.0.0.0
启动
bin/kibana &
1.启动elasticsearch
2.启动kibana
3.启动 logstash
4.启动filebeat
5.启动collector项目
kibana依赖于ES
filebeat依赖logstash
logstash依赖于ES
因为kibana是使用node.js写的,所以进程在node中。但是查找到的node进程不一定就是kibana的,所以还需要根据端口进一步确认,直接查看5601端口的占用情况,确定下进程ID,然后在查看下node进程的ID,如果一致,就可以确定该node进程就是kibana的进程了。
netstat -tunlp|grep 5601 查看端口占用情况
ps aux | grep node 查看node进程