怎样做才能让自己的网站,濮阳房产网,网络营销培训哪里好,展览公司网站建设简介
Logstash#xff1a;用于收集并处理日志#xff0c;将日志信息存储到Elasticsearch里面 Elasticsearch#xff1a;用于存储收集到的日志信息 Kibana#xff1a;通过Web端的可视化界面来查看日志#xff08;数据可视化#xff09; Logstash 是免费且开放的服务器端数…
简介
Logstash用于收集并处理日志将日志信息存储到Elasticsearch里面 Elasticsearch用于存储收集到的日志信息 Kibana通过Web端的可视化界面来查看日志数据可视化 Logstash 是免费且开放的服务器端数据处理管道能够从多个来源采集数据转换数据然后将数据发送到您最喜欢的存储库中。 一、安装 Docker Compose 环境
Docker Compose的安装
# docker compose安装步骤
sudo curl -L https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose设置权限
sudo chmod x /usr/local/bin/docker-compose
docker-compose --version 或者 由于是国外ip可能会失败上面如果下载失败可以使用下边的命令由于是国外ip(多试几次)
sudo curl -L https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod x /usr/local/bin/docker-compose
docker-compose --version 二 、下载镜像 docker pull elasticsearch:7.6.2 docker pull logstash:7.6.2 docker pull kibana:7.6.2 三、使用 Docker Compose 搭建 ELK 环境
创建目录 /mydata/logstash 创建文件 logstash-springboot.conf 内容如下
input {tcp {mode serverhost 0.0.0.0port 4560codec json_lines}
}
output {elasticsearch {hosts es:9200index springboot-logstash-%{YYYY.MM.dd}}
}将文件 logstash-springboot.conf 复制到 目录 /mydata/logstash下
创建目录/usr/local/elk 创建 docker-compose.yml 文件
内容如下
version: 3
services:elasticsearch:image: elasticsearch:7.6.2container_name: elasticsearchuser: rootenvironment:- cluster.nameelasticsearch #设置集群名称为elasticsearch- discovery.typesingle-node #以单一节点模式启动- ES_JAVA_OPTS-Xms512m -Xmx512m #设置使用jvm内存大小volumes:- /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载- /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载ports:- 9200:9200- 9300:9300logstash:image: logstash:7.6.2container_name: logstashenvironment:- TZAsia/Shanghaivolumes:- /mydata/logstash/logstash-springboot.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件depends_on:- elasticsearch #kibana在elasticsearch启动之后再启动links:- elasticsearch:es #可以用es这个域名访问elasticsearch服务ports:- 4560:4560kibana:image: kibana:7.6.2container_name: kibanalinks:- elasticsearch:es #可以用es这个域名访问elasticsearch服务depends_on:- elasticsearch #kibana在elasticsearch启动之后再启动environment:- elasticsearch.hostshttp://es:9200 #设置访问elasticsearch的地址ports:- 5601:5601将文件 docker-compose.yml 复制到目录下 /usr/local/elk 设置 docker-compose.yml 配置路径文件夹的权限
/usr/share/elasticsearch/data chmod 777 /mydata/elasticsearch/data/ 启动 docker-compose up -d 如果之前安装过 Elasticsearch、 logstash、Kibana 会提示已存在该容器
可以先删除 docker rm id 在 logstash 中安装 json_lines 插件
# 进入logstash容器
docker exec -it logstash /bin/bash # 进入bin目录 cd /bin/ # 安装插件 logstash-plugin install logstash-codec-json_lines # 退出容器 exit # 重启logstash服务 稍微等下 有点慢 docker restart logstash 测试验证
访问 http://192.168.116.160:5601/ 查看是否启动成功 四、框架集成 Logstash
1、添加 logstash-logback-encoder 依赖
pom.xml 中添加
!--集成logstash--
dependencygroupIdnet.logstash.logback/groupIdartifactIdlogstash-logback-encoder/artifactIdversion5.3/version
/dependency随便找个项目测试下 2、添加配置文件 logback-spring.xml 让 logback 的日志输出到 logstash
注意 appender 节点下的 destination 需要改成你自己的 logstash 服务地址比如我的是192.168.116.160:4560 。
?xml version1.0 encodingUTF-8?!DOCTYPE configuration
configurationinclude resourceorg/springframework/boot/logging/logback/defaults.xml/include resourceorg/springframework/boot/logging/logback/console-appender.xml/!--应用名称--property nameAPP_NAME valuemall-admin/!--日志文件保存路径--property nameLOG_FILE_PATH value${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/logs}/contextName${APP_NAME}/contextName!--每天记录日志到文件appender--appender nameFILE classch.qos.logback.core.rolling.RollingFileAppenderrollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log/fileNamePatternmaxHistory30/maxHistory/rollingPolicyencoderpattern${FILE_LOG_PATTERN}/pattern/encoder/appender!--输出到logstash的appender--appender nameLOGSTASH classnet.logstash.logback.appender.LogstashTcpSocketAppender!--可以访问的logstash日志收集端口--destination192.168.116.160:4560/destinationencoder charsetUTF-8 classnet.logstash.logback.encoder.LogstashEncoder//appenderrootlevelINFO/levelappender-ref refCONSOLE/appender-ref refFILE/appender-ref refLOGSTASH//root
/configuration主要配置
?xml version1.0 encodingUTF-8?
configuration!--输出到logstash的appender--appender nameLOGSTASH classnet.logstash.logback.appender.LogstashTcpSocketAppender!--可以访问的logstash日志收集端口--destination192.168.116.160:4560/destinationencoder charsetUTF-8 classnet.logstash.logback.encoder.LogstashEncoder//appenderrootlevelINFO/levelappender-ref refCONSOLE/appender-ref refFILE/appender-ref refLOGSTASH//root
/configuration
3、进行测试
添加一个测试方法
package com.ruoyi.web;import com.ruoyi.common.utils.http.HttpUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class Test {private static final Logger log LoggerFactory.getLogger(HttpUtils.class);public static void main(String[] args) {log.info(输出info);log.debug(输出debug);log.error(输出error);}}3.1 或者找个借口测试 五、在 kibana 中查看日志信息
访问地址 http://192.168.116.160:5601/
1、创建 index pattern 2.1、Create index pattern 2.2、创建成功 3、查看收集的日志 3.1 此时日志比较多 需要筛选日志 level:ERROR 4、查看日志详情 4.1、切换json 查看