使用docker快速部署elk、對接SpringBoot

使用docker快速部署elk

1. 軟件 & 工具介紹

ELK是三個開源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開源軟件。新增了一個FileBeat,它是一個輕量級的日誌收集處理工具(Agent),Filebeat佔用資源少,適合於在各個服務器上搜集日誌後傳輸給Logstash,官方也推薦此工具。html

  • Elasticsearch是個開源分佈式搜索引擎,提供蒐集、分析、存儲數據三大功能。它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
  • Logstash 主要是用來日誌的蒐集、分析、過濾日誌的工具,支持大量的數據獲取方式。通常工做方式爲c/s架構,client端安裝在須要收集日誌的主機上,server端負責將收到的各節點日誌進行過濾、修改等操做在一併發往elasticsearch上去。
  • Kibana 也是一個開源和免費的工具,Kibana能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助彙總、分析和搜索重要數據日誌。

Filebeat隸屬於Beats。目前Beats包含四種工具:docker

  1. Packetbeat(蒐集網絡流量數據)
  2. Topbeat(蒐集系統、進程和文件系統級別的 CPU 和內存使用狀況等數據)
  3. Filebeat(蒐集文件數據)
  4. Winlogbeat(蒐集 Windows 事件日誌數據)

2. 拉取ELK集成鏡像

ELK鏡像地址 : https://hub.docker.com/r/sebp...shell

[root@localhost /]# docker pull sebp/elk:740

注:740爲ELK版本號,這裏的版本號指的是ELK集成鏡像的版本號。json

3. 啓動ELK,命令不作解釋

[root@localhost /]# echo "vm.max_map_count=262144" > /etc/sysctl.conf
[root@localhost /]# sysctl -p
[root@localhost /]# docker run -dit --name elk \
    -p 5601:5601 \
    -p 9200:9200 \
    -p 5044:5044 \
    -v /opt/elk-data:/var/lib/elasticsearch \
    -v /etc/localtime:/etc/localtime \
    sebp/elk:740

注:-p 指定映射端口,5601kibana訪問,9200es端口,5044 logstash收集日誌端口;-v 指定es數據目錄。vim

4. 配置ELK(如下內容所有在容器內操做)

進入docker容器centos

[root@localhost /]# docker exec -it elk /bin/bash

/etc/logstash/        ## logstash 配置文件路徑
/etc/elasticsearch/   ## es 配置文件路徑
/var/log/             ## 日誌路徑
  • 配置Logstash
[root@localhost /]# vim /etc/logstash/conf.d/02-beats-input.conf

# 數據輸入配置:port -> 端口號;codec -> 輸入格式。這裏以logback爲例。
input {
  tcp {
    port => 5044
    codec=>json_lines
  }
}

# 數據輸出配置:hosts -> 主機集合;index -> 你將要建立的索引名稱。這裏es爲例。
output {
  elasticsearch {
    hosts => ["127.0.0.1:9200"]
    index => "%{[appName]}-%{+YYYY.MM.dd}"
  }
}

注:這個配置文件能夠在/etc/logstash/conf.d/目錄下建立,也可直接修改原有配置文件,看我的需求。bash

  • 配置kibana中文
[root@localhost /]# vim /opt/kibana/config/kibana.yml

注:打開文件後,在文件內追加 i18n.locale: "zh-CN" ,重啓服務便可。服務器

  • 經常使用服務操做命令
[root@localhost /]# service logstash start/restart/stop/status
[root@localhost /]# service elasticsearch start/restart/stop/status
[root@localhost /]# service kibana start/restart/stop/status

注:上面是各個服務 啓動 / 重啓 / 中止 / 狀態,服務較大操做會比較緩慢,不要重複執行命令。restful

5. Kibana 簡單使用

參照 Kibana 用戶手冊,中文文檔,演示的Kibana爲英文版本。網絡

6. 相關參照文檔

Centos Docker 安裝 - 菜鳥教程

7. 集成到Spring Boot(LogBack)

<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>xxx.xxx.xxx.xxx:xxx</destination>
        <includeCallerData>true</includeCallerData>
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <includeCallerData>true</includeCallerData>
            <!-- 根據應用名稱建立索引-->
            <customFields>{"appName":"appName"}</customFields>
        </encoder>
    </appender>
相關文章
相關標籤/搜索