天天看點

五分鐘帶你玩轉Elasticsearch(九)生産環境ELK監控spring boot方案

elasticsearch,kibana,logstash搭建見上文

1.配置spring boot項目

pom檔案

<!-- logback 推送日志檔案到logstash -->
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>6.5</version>
        </dependency>      

logstash.xml檔案

<!--logstash配置-->
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>192.168.xx.xx:5000</destination>
        <!-- 日志輸出編碼 -->
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        "logLevel": "%level",
                        "serviceName": "${springAppName:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
        <!--<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>-->
    </appender>      

新增以上代碼

注意:

192.168.xx.xx:5000 中ip為logstash伺服器的ip,端口号是向logstash發送請求的端口(需要與下文logstash監控配置相同),随便指定,且端口不能被占用,并開啟防火牆

<root level="info">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="INFO_FILE" />
        <appender-ref ref="LOGSTASH"/>
    </root>      
<appender-ref ref="LOGSTASH"/> 一定要配置 否則無法輸出。      

注:指定指定logstash.xml需要配置 不多說

五分鐘帶你玩轉Elasticsearch(九)生産環境ELK監控spring boot方案

2.配置logstash

在/logstash/bin中建立log_to_es.conf 新增配置

input{
        tcp {
                mode => "server"
                host => "0.0.0.0"
                port => 5000  監控spring boot發來的請求 與spring boot中端口号相同 且不能有其他端口占用
                codec => json_lines
        }
}
output{
        elasticsearch{
                hosts=>["192.168.xx.xx:9200"] es位址 
                index => "index-%{+YYYY.MM.dd}"   索引名稱
                }
        stdout{codec => rubydebug}
}      

修改/logstash/config下的logstash.yml  如果

http.host: "192.168.49.14"      

3.檢視結果

通路kibana 按照圖中點選 檢視索引是否多出來監控索引即可判斷是否成功

五分鐘帶你玩轉Elasticsearch(九)生産環境ELK監控spring boot方案