docker 安装 elk 日志分析系统
在 win10 上安装 docker 环境
tip:win7/8
win7,win8 系统
win7,win8 等需要利用 docker toolbox 来安装, 国内可以使用阿里云的镜像来下载, 下载地址: http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
win10
现在 Docker 有专门的 Win10 专业版系统的安装包, 需要开启 Hyper-V.
程序和功能 -> 启用或关闭 Windows 功能 -> 选中 Hyper-V
1, 安装 Toolbox
最新版 Toolbox 下载地址: https://www.docker.com/get-docker
点击 Download Desktop and Take a Tutorial, 并下载 Windows 的版本, 如果你还没有登录, 会要求注册登录.
2, 运行安装文件
双击下载的 Docker for Windows Installer 安装文件, 一路 Next, 点击 Finish 完成安装.
安装完成
Docker 会自动启动. 通知栏上会出现个小鲸鱼的图标 , 这表示 Docker 正在运行.
我们可以在命令行执行 docker version 来查看版本号, docker run hello-world 来载入测试镜像测试.
如果没启动, 你可以在 Windows 搜索 Docker 来启动.
镜像加速
鉴于国内网络问题, 后续拉取 Docker 镜像十分缓慢, 我们可以需要配置加速器来解决, 我使用的是网易的镜像地址: http://hub-mirror.c.163.com.
Win10 可以点击 docker 图标在 Settings 中的 Daemon 来配置.
新版的 Docker 使用 /etc/docker/daemon.JSON(Linux) 或者 %programdata%\docker\config\daemon.JSON(Windows) 来配置 Daemon.
请在该配置文件中加入 (没有该文件的话, 请先建一个):
- {
- "registry-mirrors": ["http://hub-mirror.c.163.com"]
- }
安装 elk
打开 cmd\powershell, 输入 docker 命令:
docker run --ulimit nofile=65536:65536 -p 5601:5601 -p 9200:9200 -p 5044:5044 -p 5045:5045 -p 5046:5046 -d --restart=always --name elk sebp/elk
下载完会自动启动, 现在需要修改 logstash 配置:
- docker exec -it elk /bin/bash #进入容器
- cd etc/logstash/conf.d/
- VIM 02-beats-input.conf #修改 input 配置
-------------------------------------------- 覆盖
- input {
- tcp {
- port => 5044
- codec => json_lines
- }
- }
- output{
- Elasticsearch {
- hosts => ["localhost:9200"]
- }
- }
退出容器, 重启 elk
docker restart elk
访问 localhost:5601 可以进入 kibana 界面
Zipkin
需要安装 zipkin 最新版本, 最新版可以前往 zipkin 的 GitHub https://github.com/openzipkin/zipkin 进行获取
Maven 仓库链接:
下载 jar 包, 运行
下载 jar 包 (版本可能会变), 在 jar 的目录下执行命令:
java -jar zipkin-server-2.16.2-exec.jar --STORAGE_TYPE=Elasticsearch --DES_HOSTS=http://ip:9200(若在本机, 可以使用 localhost)
--STORAGE_TYPE 指明数据服务
--DES_HOSTS 指明地址
附录
pom.xml 依赖:
- <dependency>
- <groupId.NET.logstash.logback</groupId>
- <artifactId>
- logstash-logback-encoder
- </artifactId>
- <version>
- 5.2
- </version>
- </dependency>
logback.xml 配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- 该日志将日志级别不同的 log 信息保存到不同的文件中 -->
- <configuration>
- <include resource="org/springframework/boot/logging/logback/defaults.xml" />
- <springProperty scope="context" name="springAppName"
- source="spring.application.name" />
- <!-- 日志在工程中的输出位置 -->
- <property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}" />
- <!-- 控制台的日志输出样式 -->
- <property name="CONSOLE_LOG_PATTERN"
- value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" />
- <!-- 控制台输出 -->
- <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>INFO</level>
- </filter>
- <!-- 日志输出编码 -->
- <encoder>
- <pattern>${CONSOLE_LOG_PATTERN}</pattern>
- <charset>utf8</charset>
- </encoder>
- </appender>
- <!-- 为 logstash 输出的 JSON 格式的 Appender -->
- <appender name="logstash"
- class="net.logstash.logback.appender.LogstashTcpSocketAppender">
- <destination>127.0.0.1:5044</destination>
- <!-- 日志输出编码 -->
- <encoder
- class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
- <providers>
- <timestamp>
- <timeZone>UTC</timeZone>
- </timestamp>
- <pattern>
- <pattern>
- {
- "severity": "%level",
- "service": "${springAppName:-}",
- "trace": "%X{X-B3-TraceId:-}",
- "span": "%X{X-B3-SpanId:-}",
- "exportable": "%X{X-Span-Export:-}",
- "pid": "${PID:-}",
- "thread": "%thread",
- "class": "%logger{40}",
- "rest": "%message"
- }
- </pattern>
- </pattern>
- </providers>
- </encoder>
- </appender>
- <!-- 日志输出级别 -->
- <root level="INFO">
- <appender-ref ref="console" />
- <appender-ref ref="logstash" />
- </root>
- </configuration>
来源: https://www.cnblogs.com/z-jx/p/11581883.html