kafka logstash elk

前言
企業開發中,一個應用會有多個測試環境,于是會有一個專門的服務器做日志收集,那就需要保存日志和應用隔離,這里就牽涉到異步存寫日志的問題,異步消息隊列選取kafka,高性能,日志消息消費我們使用logstash。這里也可以都使用elk(土豪請繞過)。

Kafka的搭建
習慣使用docker-compose啟動,腳本如下:

version: '2'
services:zookeeper:image: wurstmeister/zookeeper ? ## 鏡像ports:- "2181:2181" ? ? ? ? ? ? ? ? ## 對外暴露的端口號kafka:image: wurstmeister/kafka ? ? ? ## 鏡像volumes:- /etc/localtime:/etc/localtime ## 掛載位置(kafka鏡像和宿主機器之間時間保持一直)ports:- "9092:9092"environment:KAFKA_ADVERTISED_HOST_NAME: ? ?## 修改:宿主機IPKAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 ? ? ? ## kafka運行是基于zookeeper的kafka-manager:image: sheepkiller/kafka-manager ? ? ? ? ? ? ? ?## 鏡像:開源的web管理kafka集群的界面environment:ZK_HOSTS: ? ? ? ? ? ? ? ? ? ?## 修改:宿主機IPports:- "9000:9000"


?
docker-compose up -d 后臺方式啟動
docker-compose stop 關閉
docker-compose ps 查看有哪些應用
docker-compose build 構建鏡像

Logstash的搭建
同樣也是用docker-compose啟動,腳本如下:

docker-compose.yml->

version: "3"
services:logstash-1:image: logstash:7.0.0container_name: logstashvolumes:- ${LOGSTASH_CONFIG_DIR}/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:rw- ${LOGSTASH_CONFIG_DIR}/logstash.yml:/usr/share/logstash/config/logstash.yml:rwnetwork_mode: "host"?


logstash.config

input {kafka {bootstrap_servers => "IP:9092"topics => ["abklog_topic"]group_id => "abklog_topic"}
}output {file {file_mode => 0777dir_mode => 0777path => "/path/to/%{+yyyy-MM-dd-HH}/%{host}.log"}stdout {codec => rubydebug}
}

?
logstash.yml


# set now host ip to http.host
http.host: 192.168.56.121
# set the es-tribe-node host. let logstash monitor the es.
#xpack.monitoring.elasticsearch.hosts:
#- http://10.2.114.110:9204
# enable or disable the logstash monitoring the es.
#xpack.monitoring.enabled: true


Java日志配置
在你改好的springboot工程中整好,加入這個依賴。

??? ???

 ?<!-- https://mvnrepository.com/artifact/com.github.danielwegener/logback-kafka-appender --><dependency><groupId>com.github.danielwegener</groupId><artifactId>logback-kafka-appender</artifactId><version>0.2.0-RC2</version></dependency>


?
logback.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- springProfile用于指定當前激活的環境,如果spring.profile.active的值是哪個,就會激活對應節點下的配置 --><springProfile name="dev"><!-- configuration to be enabled when the "staging" profile is active --><springProperty scope="context" name="module" source="spring.application.name"defaultValue="undefinded"/><!-- 該節點會讀取Environment中配置的值,在這里我們讀取application.yml中的值 --><springProperty scope="context" name="bootstrapServers" source="spring.kafka.bootstrap-servers"defaultValue="IP:9092"/><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!-- encoders are assigned the typech.qos.logback.classic.encoder.PatternLayoutEncoder by default --><encoder><pattern>%boldYellow(${module}) | %d | %highlight(%-5level)| %cyan(%logger{15}) - %msg %n</pattern></encoder></appender><!-- kafka的appender配置 --><appender name="kafka" class="com.github.danielwegener.logback.kafka.KafkaAppender"><encoder><pattern>${module} | %d | %-5level| %logger{15} - %msg</pattern></encoder><topic>abklog_topic</topic><keyingStrategy class="com.github.danielwegener.logback.kafka.keying.NoKeyKeyingStrategy"/><deliveryStrategy class="com.github.danielwegener.logback.kafka.delivery.AsynchronousDeliveryStrategy"/><!-- Optional parameter to use a fixed partition --><!-- <partition>0</partition> --><!-- Optional parameter to include log timestamps into the kafka message --><!-- <appendTimestamp>true</appendTimestamp> --><!-- each <producerConfig> translates to regular kafka-client config (format: key=value) --><!-- producer configs are documented here: https://kafka.apache.org/documentation.html#newproducerconfigs --><!-- bootstrap.servers is the only mandatory producerConfig --><producerConfig>bootstrap.servers=${bootstrapServers}</producerConfig><!-- 如果kafka不可用則輸出到控制臺 --><appender-ref ref="STDOUT"/></appender><!-- 指定項目中的logger --><!--<logger name="org.springframework.test" level="INFO" ><appender-ref ref="kafka" /></logger>--><logger name="com.fast.cloud.fastelk.controller" level="INFO" ><appender-ref ref="kafka" /></logger><root level="info"><appender-ref ref="STDOUT" /></root></springProfile>
</configuration>?


記得將kafka的ip換成你真實的ip?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386457.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386457.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386457.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

模板概述

模板&#xff0c;按建筑學的說法是&#xff1a;施工時澆筑混凝土用的成組模型板&#xff1b;而模板之詞&#xff0c;恐怕可釋之為模型之板&#xff0c;顧名思義&#xff0c;模板為一套規定好了規范準則的樣板。既然為樣板&#xff0c;自然是可被多方使用&#xff1b;而準則既已…

我憑什么拿到了阿里、騰訊、今日頭條3家大廠offer?通用流行框架大全

前言 從畢業到現在面試也就那么幾家公司&#xff0c;單前幾次都比較順利&#xff0c;在面到第三家時都給到了我offer&#xff01;前面兩次找工作&#xff0c;沒考慮到以后需要什么&#xff0c;自己的對未來的規劃是什么&#xff0c;只要有份工作&#xff0c;工資符合自己的要求…

解決讀寫分離過期讀的幾個方案

mysql讀寫分離的坑 讀寫分離的主要目標是分攤主庫的壓力&#xff0c;由客戶端選擇后端數據庫進行查詢。還有種架構就是在MYSQL和客戶端之間有一個中間代理層proxy&#xff0c;客戶端之連接proxy&#xff0c;由proxy根據請求類型和上下文決定請求的分發路由。 客戶端直連方案&am…

Feign接口 多線程問題

Spring Cloud Feign傳輸Header&#xff0c;并保證多線程情況下也適用 一、現象 微服務在生產中&#xff0c;常遇到需要把 header 傳遞到下一子服務的情況&#xff08;如服務A訪問服務B的接口&#xff0c;需要傳遞header&#xff09;&#xff0c;網上大多數的方案是實現 Request…

serial port 的操作

import serial①選擇設備serserial.Serial("/dev/ttyUSB0",9600,timeout0.5) #使用USB連接串行口serserial.Serial("/dev/ttyAMA0",9600,timeout0.5) #使用樹莓派的GPIO口連接串行口serserial.Serial(1,9600,timeout0.5)#winsows系統使用com1口連接串行口s…

我在華為做Android外包的真實經歷!吊打面試官系列!

導語 本部分內容是關于Android進階的一些知識總結&#xff0c;涉及到的知識點比較雜&#xff0c;不過都是面試中幾乎常問的知識點&#xff0c;也是加分的點。 關于這部分內容&#xff0c;可能需要有一些具體的項目實踐。在面試的過程中&#xff0c;結合具體自身實踐經歷&…

logstash windows

最新在研究elastic stack (elk) &#xff1a; logstash 安裝&#xff0c;下載最新版本的logstash: 點擊打開鏈接 解壓到磁盤根目錄下&#xff1a;在logstash>bin 1、目錄下創建&#xff1a;logstash.conf 2、輸入內容: # Sample Logstash configuration for creating …

H3C端口狀態

轉載于:https://www.cnblogs.com/fanweisheng/p/11153315.html

還有人不知道什么是AndroidX的嗎?文末領取面試資料

談起Android框架體系架構&#xff0c;我先提個問&#xff1a;什么是Android框架體系架構 &#xff1f; Android系統構架是安卓系統的體系結構&#xff0c;android的系統架構和其操作系統一樣&#xff0c;采用了分層的架構&#xff0c;共分為四層&#xff0c;從高到低分別是And…

zookeeper+kafka+logstash+elasticsearc+kibana

研究背景 1、之所以選用kafka是因為量起來的話單臺logstash的抗壓能力比較差 2、為了解決整個鏈路查詢的問題&#xff0c;多個Feign傳層的話&#xff0c;可以按照一個ID進行穿層&#xff0c;所以采用logback的MDC進行對唯一標識存儲并且在Feign的調用鏈放在Header里&#xff…

還沒吃透內存緩存LruCache實現原理的看這篇文章,跳槽薪資翻倍

目前情況&#xff1a;10屆某民辦大學本科生&#xff0c;實際接觸Android年限6年多了&#xff0c;工作年限五年半&#xff08;注意&#xff0c;我說的是工作年限&#xff0c;不是工作經驗&#xff09;&#xff0c;今年1月份裸辭后歇了大半年&#xff0c;經常一周也收不到幾個off…

利用 Docker 搭建單機的 Cloudera CDH 以及使用實踐

利用 Docker 搭建單機的 Cloudera CDH 以及使用實踐 想用 CDH 大禮包&#xff0c;于是先在 Mac 上和 Centos7.4 上分別搞個了單機的測試用。其實操作的流和使用到的命令差不多就一并說了: 首先前往官方下載包&#xff1a; https://www.cloudera.com/downloads/quickstart_vm…

前端有用JavaScript技巧

數組去重 var arr [1, 2, 3, 3, 4];console.log(...new Set(arr))// [1, 2, 3, 4] 數組和布爾值 有時我們需要過濾數組中值為 false 的值. 例如(0, undefined, null, false) var myArray [1, 0 , undefined, null, false];myArray.filter(Boolean);//[1] 合并對象 const page…

還沒吃透內存緩存LruCache實現原理的看這篇文章,面試必會

前言 這篇文章主要是分享今年上半年的面試心得&#xff0c;現已就職于某大廠有三個月了&#xff0c;近期有很多公司均已啟動秋招&#xff0c;也祝大家在 2020 的下半年面試順利&#xff0c;獲得理想的offer&#xff01; 之前找工作的那段時間感想頗多&#xff0c;總結一點面試…

fastjson反序列化漏洞原理及利用

重要漏洞利用poc及版本 我是從github上的參考中直接copy的exp&#xff0c;這個類就是要注入的類 import java.lang.Runtime; import java.lang.Process; public class Exploit { public Exploit() { try{ // 要執行的命令 String commands "calc.exe"; Process pc …

這個回答讓我錯失offer!offer拿到手軟

開頭 每到“金三銀四”的季節&#xff0c;總人很多人去尋找名叫“面經”一樣的東西&#xff0c;其實就是一個個具體的題目&#xff0c;然后臨陣磨槍&#xff0c;去“背”答案&#xff0c;如果一直是這樣的話&#xff0c;我相信你的能力不會有任何提高&#xff0c;即使工作三年…

Spark Windows

本文主要是講解Spark在Windows環境是如何搭建的 一、JDK的安裝 1、1 下載JDK 首先需要安裝JDK&#xff0c;并且將環境變量配置好&#xff0c;如果已經安裝了的老司機可以忽略。JDK&#xff08;全稱是JavaTM Platform Standard Edition Development Kit&#xff09;的安裝&…

ts

ts文件中使用以下注釋來臨時忽略規則出現的錯誤。如在定義變量是為定義類型就報錯誤 // tslint:disable——忽略該行以下所有代碼出現的錯誤提示// tslint:enable——當前ts文件重新啟用tslint// tslint:disable-line——忽略當前行代碼出現的錯誤提示// tslint:disable-next-l…

這個回答讓我錯失offer!成功收獲美團,小米安卓offer

前言 我們移動開發程序員應該首先明白一個要點&#xff0c;能夠學習的東西可以區分為『知識』和『技能』。 知識&#xff0c;就是你知道就知道、不知道就不知道的東西&#xff0c;比如『計算機系統中一個字節是包含8個bit』&#xff0c;你知道了之后就算掌握了。 技能&#…

vue 雙數據綁定原理

Vue的雙向數據綁定原理是什么&#xff1f; 答&#xff1a;vue.js 是采用數據劫持結合發布者-訂閱者模式的方式&#xff0c;通過Object.defineProperty()來劫持各個屬性的setter&#xff0c;getter&#xff0c;在數據變動時發布消息給訂閱者&#xff0c;觸發相應的監聽回調。 具…