ELK
- ELK 不是一款软件,而是 Elasticsearch、Logstash 和 Kibana 三种软件产品的首字母缩写
- Elasticsearch:分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点
 - Logstash:数据收集引擎,它支持动态的从各种数据源搜集数据并处理数据
 - Kibana:数据分析,可视化平台
 
 
Filebeat
- Filebeat 是一个轻量型的服务对服务器压力比较小,用于采集数据,并上报到Logstash或Elasticsearch
 
Beats
- Packetbeat => 搜集网络流量数据
 - Topbeat => 搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据
 - Filebeat => 搜集文件数据
 - Winlogbeat => 搜集 Windows 事件日志数据
 - Metricbeat => Ship and analyze metrics.
 - Heartbeat => Ping your Infrastructure.
 - Auditbeat => Send audit data to Elasticsearch.
 - Functionbeat => Ship cloud data with serverless infrastructure.
 - Journalbeat => Analyze Journald logs.
 
架构
 Filebeat ->
             ->
 Filebeat -> -> -> -> Logstash -> Elasticsearch -> Kibana
             ->
 Filebeat ->
安装
- 
elasticsearch 下载 地址
- 启动命令
 
 
  linux    bin/elasticsearch
  Windows  bin\elasticsearch.bat
- elasticsearch 默认服务地址 http://localhost:9200/
 
//访问 http://localhost:9200/ 正确返回数据  
{
"name": "linux-pc",
"cluster_name": "elasticsearch",
"cluster_uuid": "_Jb2j7Z0RO2EK5Nsr1GqjQ",
"version": {
  "number": "7.6.1",
  "build_flavor": "default",
  "build_type": "tar",
  "build_hash": "aa751e09be0a5072e8570670309b1f12348f023b",
  "build_date": "2020-02-29T00:15:25.529771Z",
  "build_snapshot": false,
  "lucene_version": "8.4.0",
  "minimum_wire_compatibility_version": "6.8.0",
  "minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}
- 
kibana 下载 地址
- 
kibana 默认服务地址 http://localhost:5601
 - 
启动命令
 
 - 
 
//打开 config/kibana.yml文件 //在elasticsearch.hosts中写上elasticsearch的地址 //elasticsearch.hosts: [“http://localhost:9200”] linux bin/kibana Windows bin\kibana.bat
- logstash 下载 [地址](https://www.elastic.co/cn/downloads/logstash)
 
+ logstash.conf  [配置文件最佳实践](http://docs.flycloud.me/docs/ELKStack/logstash/index.html)
+ 启动命令
```base'''''
bin/logstash -f logstash.conf
./filebeat -e -c filebeat.yml
## 监控 git-kit 服务
+ filebeat.yml 配置
```base
filebeat.inputs:
- type: log     
enabled: true
paths:
  - /home/go/src/learning_tools/logs/go-kit-v11-client-*.log
document_type: "kit-client"   #指定类型  在elastic中可通过[type]识别
fields:
  tag: kit-client                #指定标签  在logstahs中可通过[fields][tag]识别
- type: log     
enabled: true
paths:
  - /home/go/src/learning_tools/logs/go-kit-v11-server-*.log
document_type: "kit-server"   
fields:
  tag: kit-server                
# 积累1024条消息才上报
#spool_size: 1024
# 或者空闲5s上报
#idle_timeout: "5s"
output.logstash:
hosts: ["0.0.0.0:5044"]      
//output.elasticsearch:
//  # Array of hosts to connect to.
//  hosts: ["0.0.0.0:9200"]
//  # Optional protocol and basic auth credentials.
//#protocol: "https"
//#username: "elastic"           
//#password: "changeme"
- logstash.conf 配置 这里只做最基础演示,其他高级功能 点击
 
input  #Input Plugin处理数据输入
{
  beats
  {
    port => 5044
  }
}
output  #Output Plugin将格式化数据输出到指定目标文件
{
  stdout { #控制台输出日志
    codec => rubydebug
  }
 if [fields][tag] == "kit-server"
   {
    elasticsearch {
      hosts => ["http://localhost:9200"]
      index => "kit-server-%{+YYYY.MM.dd}"
    }
  }
if [fields][tag] == "kit-client"
   {
    elasticsearch {
      hosts => ["http://localhost:9200"]
      index => "kit-client-%{+YYYY.MM.dd}"
    }
  }
   
}
访问 http://localhost:5601 我们就可以通过 kibana 查看日志了
- 
查看我们建立的文件

 - 
建立视图

 - 
查看 kit-client 日志

 - 
查看 kit-server 日志

 
结语
- 加入日志分析管理 (ELK + Filebeat),我们可以更好的监控日志,清洗数据等方便我们处理和定位问题
 - 欢迎添加QQ一起讨论
 



