docker-compose集成elk(基于logstash+filebeat)采集java和nginx日志

1.准备compose.yml编排式文件

services:
#日志信息同步logstash:container_name: logstashimage: docker.elastic.co/logstash/logstash:7.17.14 #logstash:command: logstash -f /usr/share/logstash/pipeline/logstash.confdepends_on:- elasticsearchrestart: on-failureports:- "5000:5000"- "5044:5044"environment:TZ: America/New_YorkLANG: en_US.UTF-8ES_JAVA_OPTS: "-Xmx1024m -Xms1024m"volumes:                        - /home/planetflix/logstash/conf/logstash.yml:/usr/share/logstash/config/logstash.yml- /home/planetflix/logstash/conf/logstash.conf:/usr/share/logstash/pipeline/logstash.confnetworks:- es_net
#日志采集工具filebeat:container_name: filebeatimage: docker.elastic.co/beats/filebeat:7.17.14     #filebeat:轻量级的日志文件数据收集器,属于Beats六大日志采集器之一depends_on:- elasticsearch- logstash- kibanarestart: on-failureenvironment:TZ: America/New_YorkLANG: en_US.UTF-8ES_JAVA_OPTS: "-Xmx1024m -Xms1024m"volumes:- /home/planetflix/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml- /home/planetflix/filebeat/modules.d/nginx.yml:/usr/share/filebeat/modules.d/nginx.yml- /home/planetflix/filebeat/logs:/usr/share/filebeat/logs- /home/planetflix/filebeat/data:/usr/share/filebeat/data - /var/run/docker.sock:/var/run/docker.sock- /var/lib/docker/containers:/var/lib/docker/containers#挂载日志- /data/project/java/logs:/var/elk/logs- /home/planetflix/nginx/logs:/usr/local/nginx/logsnetworks:- es_net
networks:es_net:driver: bridge

2.配置filebeat.yml

# ============================== Filebeat inputs ===============================
filebeat.inputs:
- type: log           #输入filebeat的类型 这里设置为log(默认),即具体路径的日志  另外属性值还有stdin(键盘输入)、kafka、redis,具体可参考官网enabled: true       #开启filebeat采集backoff: "1s"tail_files: false##symlinks: true    #采集软链接文件paths:              #配置采集全局路径,后期可根据不同模块去做区分- /var/elk/logs/*.log  #指定读取内容类型为log,指定log文件所在路径multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'multiline.negate: truemultiline.match: afterfields:             #可想输出的日志添加额外的信息log_type: syslogtags: ["app-log"]#nginx
- type: logenabled: true       #开启filebeat采集backoff: "1s"tail_files: falsepaths:              #配置采集全局路径,后期可根据不同模块去做区分- /usr/local/nginx/logs/access.log- /usr/local/nginx/logs/error.logfields:             #可想输出的日志添加额外的信息filetype: nginxlogfields_under_root: true
# ============================== Filebeat modules ==============================filebeat.config.modules:# Glob pattern for configuration loadingpath: ${path.config}/modules.d/*.yml# Set to true to enable config reloadingreload.enabled: false# Period on which files under path should be checked for changes# reload.period: 10s# ======================= Elasticsearch template setting =======================
setup.template.settings:index.number_of_shards: 3
# ------------------------------ Logstash Output -------------------------------
output.logstash: enabled: truehosts: ["logstash:5044"]name: filebeat-node01
setup.template.name: "filebeat_log"
setup.template.pattern: "merit_*"
setup.template.enabled: true

3.配置logstash.yml和logstash.conf

logstash.yml

## 和kibana的host一样,也需要设置成0.0.0.0才能启动成功
http.host: "0.0.0.0"
## 除了可以使用docker-compose.yml中elasticsearch的容器名如 "http://elasticsearch:9200"(前提是同属于一个docker network,且类型为bridge),也可以直接改成公网ip
xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: 'elastic'
xpack.monitoring.elasticsearch.password: '1qazxsw23'

logstash.conf

##input输入日志  beats用于接收filebeat的插件  codec设置输入日志的格式 port端口为logstash的端口
input {beats {port => 5044codec => jsonclient_inactivity_timeout => 36000}
}##filter对数据过滤操作
filter {if [filetype] == "nginxlog" {json {source => "message"remove_field => "message"remove_field => "@timestamp"}date {match => ["time_local", "ISO8601"]target => "@timestamp"}grok {match => { "request" => "%{WORD:method} (?<url>.* )" }}mutate {remove_field => ["host","event","input","request","offset","prospector","source","type","tags","beat"]rename => {"http_user_agent" => "agent"}rename => {"upstream_response_time" => "response_time"}rename => {"http_x_forwarded_for" => "x_forwarded_for"}split => {"x_forwarded_for" => ", "}split => {"response_time" => ", "}}}
}##标签定义于filebeat.yml 
output {if "app-log" in [tags] {      #写入日志到 eselasticsearch{hosts => ["http://elasticsearch:9200"]index => "app-log-%{+YYYY.MM.dd}"  user => "elastic"password => "123456"}stdout {codec => rubydebug}}if [filetype] == "nginxlog" {      #写入日志到 eselasticsearch{hosts => ["http://elasticsearch:9200"]index => "logstash-nginx-%{+YYYY.MM.dd}"user => "elastic"password => "123456"}stdout {codec => rubydebug}}
}

4.启动服务

docker-compose -f compose-elk.yml --compatibility up -d filebeat
docker-compose -f compose-elk.yml --compatibility up -d logstash

5.管理索引(等于日志数据库)

访问kibana首页>stack management>索引模式>创建索引模式

6.返回discover查看日志信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/681622.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「 网络安全常用术语解读 」漏洞利用预测评分系统EPSS详解

1. 概览 EPSS&#xff08;Exploit Prediction Scoring System&#xff0c;漏洞利用预测评分系统&#xff09; 提供了一种全新的高效、数据驱动的漏洞管理功能。EPSS是一项数据驱动的工作&#xff0c;使用来自 CVE 的当前威胁信息和现实世界的漏洞数据。 EPSS 模型产生 0 到 1&…

视频号小店常见问题解答,新手做店最关心的问题!

大家好&#xff0c;我是电商小V 视频号小店可以说是今年最热门的一个风口期项目&#xff0c;想去做的人也是日益增多&#xff0c;也是凭借着自身的流量吸引了很多玩家的入驻&#xff0c; 但是对于很多玩家&#xff0c;视频号小店就是一个全新的项目&#xff0c;一个全新的领域&…

服务异步通讯MQ

同步调用存在的问题: 异步调用方案: RabbitMQ安装: 第一种:在线拉取 docker pull rabbitmq:3-management 第二种:将已有的安装包放入再用load加载 我这里放到tmp包里边 然后:cd /tmp docker load -i mq.tar 加载进去 然后运行mq容器 docker run \-e RABBITMQ_DEFAULT_USER…

倍思|西圣开放式耳机哪个好用?热门机型深度测评!

在数字化生活的浪潮中&#xff0c;耳机已成为我们不可或缺的伴侣。然而&#xff0c;长时间佩戴传统的耳机容易导致的耳道疼痛等问题&#xff0c;严重的话将影响听力。许多人开始寻找更为舒适的佩戴体验。开放式耳机因为不需要需直接插入耳道的设计&#xff0c;逐渐受到大众的青…

压缩机继电器EOCRDS-30NY7Q升级后型号:EOCRDS3-30S

EOCR-DS3系列型号&#xff1a; EOCRDS3-05S EOCRDS-05S EOCRDS1-05S EOCRDS3-30S EOCRDS-30S EOCRDS1-30S EOCRDS3-60S EOCRDS-60S EOCRDS1-60S EOCRDS3-05W EOCRDS-05W EOCRDS1-05W EOCRDS3-30W EOCRDS-30W EOCRDS1-30W EOCRDS3-60W EOCRDS-60W EOCRDS1-60W EOCR-DS3T-…

关于GitHub仓库建立及提交问题

文章目录 前言GitHub仓库创建token令牌的获取GitHub克隆到本地GitHub上传文件 前言 为了整一个GitHub仓库然后上传文件&#xff0c;笔者看了不下100篇博客&#xff0c;20段教程&#xff0c;最后在两位大佬的帮助下&#xff0c;才整明白了&#x1f62d; 先提前说一嘴从 2021年8月…

Capl简单数据类型

Capl简单数据类型&#xff0c;分为三大类&#xff0c;分别是整形、浮点型、字符型。 1.整形 在数据保存到变量中的时候&#xff0c;如果超过了变量存储的范围&#xff0c;会被截断。 在capl语言中&#xff0c;系统会默认给常量分配四个字节的空间。 例如byte a255;其中255是…

MySQL——系统变量

使用 #最大连接用户数 select MAX_CONNECTIONS; #临时存放构成每次事务的SQL的缓冲区长度 select BINLOG_CACHE_SIZE; #SQL Server的版本信息 select VERSION; 查询结果

618洗地机怎么选?洗地机品牌实测推荐

在当今快节奏的生活中&#xff0c;家庭清洁工作往往占用了宝贵的休息时间。洗地机的出现&#xff0c;解放了人们的双手&#xff0c;让家庭清洁变得更加轻松和高效。它不仅能够满足现代家庭对清洁工作的基本需求&#xff0c;更以智能化的操作和卓越的性能&#xff0c;成为提升生…

wePWNise:一款功能强大的红队Office宏VBA代码生成工具

关于wePWNise wePWNise是一款功能强大的Office宏VBA代码生成工具&#xff0c;该工具基于纯Python开发&#xff0c;可以帮助广大研究人员生成用于Office宏或模版的VBA代码&#xff0c;并以此来测试目标Office环境、应用程序控制和防护机制的安全性。 wePWNise的设计理念将自动化…

Petalinux的使用——定制Linux系统

文章目录 配置petalinux运行环境petalinux设计流程 配置petalinux运行环境 Petalinux的安装在文章Ubuntu镜像源的更改及其Petalinux的安装中已经介绍&#xff0c;下面介绍petalinux运行环境的配置过程。 进入到petalinux的安装路径下&#xff0c;使用下面的命令对petalinux的运…

怎么把多个视频合成一个视频?6个软件教你轻松合成视频

怎么把多个视频合成一个视频&#xff1f;6个软件教你轻松合成视频 合成多个视频成为一个视频可以通过专业的视频编辑软件或在线工具来实现。以下是六个方便使用的软件&#xff0c;它们可以帮助你轻松合成视频&#xff1a; 迅捷视频剪辑软件&#xff1a;这是专业的视频编辑软…