“version” : {
“number” : “7.8.0”,
“build_flavor” : “default”,
“build_type” : “docker”,
“build_hash” : “757314695644ea9a1dc2fecd26d1a43856725e65”,
“build_date” : “2020-06-14T19:35:50.234439Z”,
“build_snapshot” : false,
“lucene_version” : “8.5.1”,
“minimum_wire_compatibility_version” : “6.8.0”,
“minimum_index_compatibility_version” : “6.0.0-beta1”
},
“tagline” : “You Know, for Search”
}
好家伙这么多密码
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d8f596d49b30401eb0db72ec8f6287f6.png)查看网络 sudo docker network inspect elastic
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f65dd57f263d4c03af556eafb4a9b6cc.png)
2. 安装 kibana
宿主机创建配置文件映射到容器内
/data/kibana/kibana.yml
** THIS IS AN AUTO-GENERATED FILE **
Default Kibana configuration for docker target
server.name: kibana
server.host: “0”
elasticsearch.hosts: [ “http://172.18.0.2:9200” ]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: “zh-CN”
elasticsearch.username: “elastic”
elasticsearch.password: “123456”
xpack.reporting.encryptionKey: “sdfbwe83q12gsdfgsdvfshjfvashfn34y372rh32gru32yre32erh2u3hrlibsdfjefe”
xpack.security.encryptionKey: “hsaufhsabfasbhdsbfjbsjhfbshjbfsbfcshjdbf623423gjh234v32hv4h32h3vrhj”
1. 修改elasticsearch.hosts 根据你的实际情况
2. 使用更长的字符 > 32 『你自己随意设置哈』
3. 修改 elasticsearch.password为刚才你设置的密码
启动容器
docker run -d --name kibana --net elastic -p 5601:5601 -v /data/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.8.0
如果遇到:
FATAL Error: [config validation of [xpack.reporting].encryptionKey]: value has length [11] but it must have a minimum length of [32].
xpack.reporting.encryptionKey: 设置更长的长度, 修改完成后,重启容器
3. 安装logstash
创建logstash 的配置文件
/data/logstash/conf.d
/data/logstash/config
logstash.yml配置如下:
http.host: “0.0.0.0”
xpack.monitoring.elasticsearch.hosts: [ “http://172.19.0.2:9200” ]
xpack.monitoring.enabled: true
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
其中xpack.monitoring.elasticsearch.hosts配置项改为获取到的elasticsearch容器地址, `sudo docker network inspect elastic`
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d29f735ad180472886ec198a1521a056.png)
logstash.conf的配置如下:
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 5047
codec => json_lines
}
}
output {
elasticsearch {
hosts => "172.19.0.2:9200"
index => "springboot-logstash-%{+YYYY.MM.dd}"
user => "elastic"
password => "123456"
}
}
下面host填写elastsearch容器地址,index为日志索引的名称,user和password填写xpack设置的密码,port为对外开放收集日志的端口
运行logstash
docker run -it -d -p 5047:5047 -p 9600:9600
–name logstash --privileged=true --net elastic -v
/data/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml -v
/data/logstash/conf.d/:/usr/share/logstash/conf.d/ logstash:7.8.0
5047端口是刚才port设置的端口
4. 创建springboot 工程
加入依赖
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.6</version>
</dependency>
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 获取spring配置 -->
<springProperty scope="context" name="logPath" source="log.path" defaultValue="/app/log/elk-biz"/>
<springProperty scope="context" name="appName" source="spring.application.name"/>
<!-- 定义变量值的标签 -->
<property name="LOG_HOME" value="${logPath}"/>
<property name="SPRING_NAME" value="${appName}"/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- 链路追踪sleuth 格式化输出 以及 控制台颜色设置变量 -->
<property name="CONSOLE_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) [${appName},%yellow(%X{X-B3-TraceId}),%green(%X{X-B3-SpanId}),%blue(%X{X-B3-ParentSpanId})] [%yellow(%thread)] %green(%logger:%L) :%msg%n"/>
<!-- #############################################定义日志输出格式以及输出位置########################################## -->
<!--控制台输出设置-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<!-- <charset>GBK</charset> -->
</encoder>
</appender>
<!--普通文件输出设置-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/log_${SPRING_NAME}_%d{yyyy-MM-dd}_%i.log</FileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>200MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!--aop接口日志拦截文件输出-->
<appender name="bizAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/log_%d{yyyy-MM-dd}_%i.log</FileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>200MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!--开启tcp格式的logstash传输,通过TCP协议连接Logstash-->
<!-- <appender name="STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">-->
<!-- <destination>10.11.74.123:9600</destination>-->
<!-- <encoder class="net.logstash.logback.encoder.LogstashEncoder" />-->
<!-- </appender>-->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--可以访问的logstash日志收集端口-->
<destination>localhost:5047</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<timeZone>Asia/Shanghai</timeZone>
</timestamp>
<pattern>
<pattern>
{
"app_name":"${SPRING_NAME}",
"traceid":"%X{traceid}",
"ip": "%X{ip}",
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
768912656)]
[外链图片转存中…(img-o8V8q30s-1712768912656)]
[外链图片转存中…(img-aENWLbZY-1712768912657)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
[外链图片转存中…(img-Z9I9KCox-1712768912657)]