日志收集系統ELK搭建


一、ELK簡介

    在傳統項目中,如果在生產環境中,有多台不同的服務器集群,如果生產環境需要通過日志定位項目的Bug的話,需要在每台節點上使用傳統的命令方式查詢,這樣效率非常低下。因此我們需要集中化的管理日志,ELK則應運而生。ELK=ElasticSeach+Logstash+Kibana,日志收集原理如下所示。

1、每台服務器集群節點安裝Logstash日志收集系統插件

2、每台服務器節點將日志輸入到Logstash中

3、Logstash將該日志格式化為json格式,根據每天創建不同的索引,輸出到ElasticSearch中

4、瀏覽器使用安裝Kibana查詢日志信息 

二、Elastic Search

2.1 簡介

    ElasticSearch是一個分布式搜索服務,提供的是一組Restful API,底層基於Lucene,采用多shard(分片)的方式保證數據安全,並且提供自動resharding的功能。是目前全文搜索引擎的首選,可以快速的存儲、搜索和分析海量數據。

2.2 安裝

    1.官網下載最新版本,地址是:https://www.elastic.co/cn/downloads/elasticsearch,下載下來的最新版本是:elasticsearch-7.4.2-linux-x86_64.tar.gz;

    2.解壓:# tar zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz

    3. # cd elasticsearch-7.4.2,配置config里的elasticsearch.yml文件,配置如下。

 cluster.name: es-application
 node.name: es-node-1
 network.host: 0.0.0.0
 http.port: 9200
 discovery.seed_hosts: ["192.168.1.169"]
 cluster.initial_master_nodes: ["es-node-1"]
 path.data: /var/data/es
 path.logs: /var/log/es

    4.常見問題

   (1)can not run elasticsearch as root

     解決思路:為了安全不允許使用root用戶啟動,需要新建一個es的賬戶,如下所示。

# adduser es
# passwd es
# chown -R  es elasticsearch-7.4.2 
# su elasticsearch
啟動ES:
# ./bin/elasticsearch

    (2)max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 

      解決思路: 切換到root用戶修改   # vim /etc/security/limits.conf,在最后面追加下面內容,其中es 是啟動ES的用戶,不是root。

es hard nofile 65536
es soft nofile 65536

      (3)max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

        解決思路:切換到root用戶修改配置sysctl.conf

#vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
並執行命令:
sysctl -p

2.3 啟動

后台啟動:./elasticsearch -d
停止命令:./elasticsearch -stop

2.4 驗證

    訪問 ip:9200,成功顯示如下json信息

2.5 ES Head

    推薦安裝chrome插件,也可以下載安裝包進行安裝。

三、Logstash

3.1 簡介

     Logstash 是一個完全開源的工具,它可以對你的日志進行收集、過濾、分析,支持大量的數據獲取方法,並將其存儲供以后使用(如搜索)。

3.2 安裝與配置

    1.解壓logstash-7.4.2,修改logstash-7.4.2/config的logstash.conf文件;
    2.logstash.conf文件配置如下:

input {
tcp {
mode => "server"
host => "192.168.1.169"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
hosts => "192.168.1.169:9200"
index => "springboot-logstash-%{+YYYY.MM.dd}"
}
}

    3.執行命令:# ../bin/logstash -f logstash.conf

3.3 Spring boot集成Logstash

    1.pom文件里引入jar包

<!--logstash-->
<dependency>
   <groupId>net.logstash.logback</groupId>
   <artifactId>logstash-logback-encoder</artifactId>
   <version>6.2</version>
</dependency>

    2.修改logback-spring.xml

<!--logstash地址-->
<springProperty scope="context" name="LOGSTASH_ADDRESS" source="logstash.address"/>

<!--輸出到logstash的appender-->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <!--可以訪問的logstash日志收集端口-->
    <destination>${LOGSTASH_ADDRESS}</destination>
    <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
        <providers>
            <timestamp>
                <timeZone>UTC</timeZone>
            </timestamp>
            <pattern>
                <pattern>
                    {
                    "app": "java-study",
                    "level": "%-5level",
                    "thread": "%thread",
                    "logger": "%logger{50} %M %L ",
                    "message": "%msg"
                    }
                </pattern>
            </pattern>
        </providers>
    </encoder>
</appender>

<root level="INFO">
    <appender-ref ref="LOGSTASH"/>
</root>

    3.yml添加配置

logstash:
     address: 192.168.1.169:4560

四、Kibana

4.1 簡介

    Kibana 是一個基於瀏覽器頁面的Elasticsearch前端展示工具,也是一個開源和免費的工具,Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日志。

4.2 安裝與配置

    1.解壓kibana-7.4.2-linux-x86_64.tar.gz,並修改配置文件kibana.yml 

server.port: 5601
server.host: "192.168.1.169"
server.name: "kibana"
elasticsearch.hosts: ["http://192.168.1.169:9200"]
xpack.reporting.encryptionKey: "a_random_string"
xpack.security.encryptionKey: "something_at_least_32_characters"

    2.執行命令 # ./kibana --allow-root

    3.配置日期格式

    4.create index pattern

    5.保存自定義篩選字段,供后續篩選


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM