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一起讨论

完整代码地址

联系 QQ: 3355168235