Elasticsearch 集群日志收集搭建

Elasticsearch-7.2.0+Logstash-7.2.0+Kibana-7.2.0+-Filebeat-7.6.0

第一台集群内网ip:10.0.0.223

ES配置文件:/es_data/es/elasticsearch-7.2.0/config/elasticsearch.yml

ES启动命令:/es_data/es/elasticsearch-7.2.0/bin/elasticsearch

cluster.name: es-search
node.name: node-machine-namenode.master: true
node.data: truepath.data: /es_data/data/es
path.logs: /es_data/log/estransport.tcp.port: 9300
transport.tcp.compress: true
http.port: 9200
network.host: 10.0.0.223http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"cluster.initial_master_nodes: ["10.0.0.223","10.0.1.9","10.0.1.10"]
discovery.seed_hosts: ["10.0.0.223", "10.0.1.10", "10.0.1.9"]gateway.recover_after_nodes: 2
gateway.expected_nodes: 2
gateway.recover_after_time: 5maction.destructive_requires_name: false
cluster.routing.allocation.disk.threshold_enabled: true
cluster.routing.allocation.disk.watermark.low: 20gb
cluster.routing.allocation.disk.watermark.high: 10gb
cluster.routing.allocation.disk.watermark.flood_stage: 5gb# 需求锁住物理内存,是:true、否:false
bootstrap.memory_lock: false
# SecComp检测,是:true、否:false
bootstrap.system_call_filter: false

Kibana配置文件:/es_data/es/kibana-7.2.0/config/kibana.yml

启动命令:/es_data/es/kibana-7.2.0/bin/kibana

server.port: 5601server.host: "localhost"server.basePath: ""server.rewriteBasePath: falseelasticsearch.hosts:["http://10.0.0.223:9200","http://10.0.1.9:9200","http://10.0.1.10:9200"]kibana.index: ".kibana"i18n.locale: "zh-CN"

Kibana nginx   代理配置文件

server {listen       80;server_name www.elasticsearch.com;client_max_body_size 1000m;location / {proxy_read_timeout 300;proxy_connect_timeout 300;proxy_redirect off;proxy_http_version 1.1;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto http;proxy_pass http://10.0.0.223:9200;}
}

第二台ES集群内网ip:10.0.1.10

ES配置文件:/es_data/es/elasticsearch-7.2.0/config/elasticsearch.yml

cluster.name: es-search
node.name: node-machine-namenode.master: true
node.data: true
path.data: /es_data/data/es
path.logs: /es_data/log/estransport.tcp.port: 9300
transport.tcp.compress: truehttp.port: 9200
network.host: 10.0.1.10http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"cluster.initial_master_nodes: ["10.0.0.223","10.0.1.9","10.0.1.10"]
discovery.seed_hosts: ["10.0.0.223", "10.0.1.10", "10.0.1.9"]gateway.recover_after_nodes: 2
gateway.expected_nodes: 2
gateway.recover_after_time: 5maction.destructive_requires_name: false
cluster.routing.allocation.disk.threshold_enabled: true
cluster.routing.allocation.disk.watermark.low: 20gb
cluster.routing.allocation.disk.watermark.high: 10gb
cluster.routing.allocation.disk.watermark.flood_stage: 5gb# 需求锁住物理内存,是:true、否:false
bootstrap.memory_lock: false
# SecComp检测,是:true、否:false
bootstrap.system_call_filter: false

Logstatsh 接收器配置

启动命令:/es_data/es/logstash-7.2.0/bin/logstash -f /es_data/es/logstash-7.2.0/conf.d/es_log.conf --path.data=/esdata/data/logstash/es_log/

配置文件:/es_data/es/logstash-7.2.0/conf.d/es_log.conf

input {beats {port => 5044}
}filter {mutate {split => ["message", "|"]}if [message][3] =~ '[0-9a-z]{40}' {mutate {add_field => { "log_time" => "%{[message][0]}"}add_field => { "log_level" => "%{[message][1]}"}add_field => { "log_process_id" => "%{[message][2]}"}add_field => { "log_session" => "%{[message][3]}"}add_field => { "log_file_name" => "%{[message][6]}"}add_field => { "log_func_name" => "%{[message][7]}"}add_field => { "log_line" => "%{[message][8]}"}}mutate {update => { "message" => "%{[message][9]}" }}}else if [message][2] =~ '[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]' {mutate {add_field => { "log_time" => "%{[message][0]}"}add_field => { "log_level" => "%{[message][1]}"}add_field => { "log_process_id" => "%{[message][3]}"}add_field => { "log_session" => "%{[message][2]}"}add_field => { "log_thread_id" => "%{[message][4]}"}add_field => { "log_file_name" => "%{[message][5]}"}add_field => { "log_func_name" => "%{[message][6]}"}add_field => { "log_line" => "%{[message][7]}"}}mutate {update => { "message" => "%{[message][8]}" }}}else{mutate {split => ["message", ","]}mutate {add_field => { "log_time" => "%{[message][0]}"}add_field => { "log_level" => "%{[message][1]}"}add_field => { "log_process_id" => "%{[message][2]}"}}mutate {update => { "message" => "%{[message][3]}" }}}mutate {strip => ["log_time"]}
}output {elasticsearch {hosts => ["10.0.0.223:9200","10.0.1.10:9200","10.0.1.9:9200"]index => "supervisor-log-%{[@metadata][version]}-%{+YYYY.MM.dd}"}
}

第三台ES集群内网ip:10.0.1.9

ES配置文件:/es_data/elasticsearch-7.2.0/config/elasticsearch.yml

cluster.name: es-search
node.name: node-machine-namenode.master: true
node.data: true
path.data: /es_data/data/es
path.logs: /es_data/log/estransport.tcp.port: 9300
transport.tcp.compress: true
http.port: 9200
network.host: 10.0.1.9# 增加新的参数,这样head插件可以访问es (5.x版本,如果没有可以自己手动加)
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"cluster.initial_master_nodes: ["10.0.0.223","10.0.1.9","10.0.1.10"]
discovery.seed_hosts: ["10.0.0.223", "10.0.1.10", "10.0.1.9"]gateway.recover_after_nodes: 2
gateway.expected_nodes: 2
gateway.recover_after_time: 5maction.destructive_requires_name: false
cluster.routing.allocation.disk.threshold_enabled: true
cluster.routing.allocation.disk.watermark.low: 20gb
cluster.routing.allocation.disk.watermark.high: 10gb
cluster.routing.allocation.disk.watermark.flood_stage: 5gb# 需求锁住物理内存,是:true、否:false
bootstrap.memory_lock: false
# SecComp检测,是:true、否:false
bootstrap.system_call_filter: false

第四台具体生产日志的地方

Filebeat配置:/www/filebeat/filebeat.yml

启动命令:/www/filebeat/filebeat -e -c /www/filebeat/filebeat.yml

- type: logenabled: truedocument_type: "supervisor"exclude_files: ["filebeat-out.log$"]paths:- /var/log/supervisor/*.logfields:type: supervisorencoding: plaininput_type: logmultiline.pattern: '^\s\d{4}\-\d{2}\-\d{2}\s\d{2}:\d{2}:\d{2}'multiline.negate: truemultiline.match: after# Filebeat modules
filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false# Elasticsearch template setting
setup.template.settings:index.number_of_shards: 1index.number_of_replicas: 0setup.template.overwrite: true
setup.template.name: "machine-name"
setup.template.pattern: "machine-name*"# 生命周期管理
setup.ilm.enabled: true
setup.ilm.rollover_alias: "machine-name"
setup.ilm.pattern: "{now/d}-000001"
setup.ilm.policy_name: "machine-name-policy"# Logstash output
output.logstash:enabled: truehosts: ["10.0.1.10:5044"]worker: 1compression_level: 3loadbalance: truepipelining: 0index: 'log_index'# Processors
processors:- add_host_metadata: ~- add_cloud_metadata: ~- add_docker_metadata: ~- add_kubernetes_metadata: ~

Kibana 配置:

设置-索引模式:创建索引模式 supervisor-log-*

上面的索引管理里面就可以看到已经匹配的索引了

创建生命周期策略-操作匹配索引模版,自动移除周期外的日志,保证集群健康运行

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

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

相关文章

elasticsearch7.17.3实现按terms传入内容排序,类似mysql中order by filed()的排序方式

现有一个需求,需要在elasticsearch中实现用terms筛选内容,并且按terms传入的内容顺序排列 类型于mysql中order by filed()的排序方式,具体实现如下 目录 一、需求二、整体思路三、es查询语句四、java生成es连接五、java调用es六、最终实现结果…

linux上虚拟机vmware-workstation离线安装详细教程

linux上虚拟机vmware-workstation详细教程 一、VMWare基本介绍二、VMWare下载2.1 查看本地系统信息2.2 选择及下载合适的版本 三、VMWare安装3.1 安装依赖库3.2 vmware安装3.3 验证安装3.4 异常及解决方案3.4.1 Failed to start SYSV3.4.2 GLib does not have GSettings suppor…

Nacos架构与原理 - Nacos-Sync

文章目录 概述官网系统模块架构同步任务管理页面注册中心管理页面使用场景 概述 NacosSync 是⼀个支持多种注册中心的同步组件,基于 Spring boot 开发框架,数据层采用Spring Data JPA ,遵循了标准的 JPA 访问规范,支持多种数据源存储,默认使用Hibernate…

用于语义图像分割的弱监督和半监督学习:弱监督期望最大化方法

这时一篇2015年的论文,但是他却是最早提出在语义分割中使用弱监督和半监督的方法,SAM的火爆证明了弱监督和半监督的学习方法也可以用在分割上。 这篇论文只有图像级标签或边界框标签作为弱/半监督学习的输入。使用期望最大化(EM)方法,用于弱…

qt Qss 边框渐变

目录 背景渐变 方案一 Qss 方案二 paintEvent函数 方案三 QGraphicsDropShadowEffect投影效果 背景渐变 QT里面背景是可以渐变,其中qlineargradient里面参数意思 spread:渐变方式(具体可以查看qt帮助文档搜索PadSpread) 坐…

走进人工智能|机器学习 解码未来的科技革命

前言: 机器学习的发展为我们提供了更智能、高效和便捷的科技产品和服务,可以改善我们的生活和工作方式。 文章目录 序言背景解码未来的科技革命技术支持应用领域程序员如何学总结 序言 机器学习是一种人工智能领域的技术,它让计算机通过数据自动地学习和…

SpringBoot 整合redis + Aop防止重复提交 (简易)

1.redis的安装 redis下载 解压 安装 # wget http://download.redis.io/releases/redis-6.0.8.tar.gz # tar xzf redis-6.0.8.tar.gz # cd redis-6.0.8 # make 看一下就会有 进入redis-6.0.8下的src目录 [rootVM-16-8-centos redis]# cd redis-6.0.8 [rootVM-16-8-centos re…

GPT模型训练实践(2)-Transformer模型工作机制

Transformer 的结构如下,主要由编码器-解码器组成,因为其不需要大量标注数据训练和天然支持并行计算的接口,正在全面取代CNN和RNN: 扩展阅读:What Is a Transformer Model? ​ ​ 其中 编码器中包含自注意力层和前馈…

STM32速成笔记—IWDG

文章目录 一、IWDG简介二、STM32的IWDG2.1 STM32的IWDG简介2.2 喂狗2.3 IWDG框图 三、IWDG配置步骤四、IWDG配置程序4.1 IWDG初始化程序4.2 喂狗 五、应用实例 一、IWDG简介 独立看门狗(Independent Watchdog, IWDG),什么是看门狗&#xff1…

Spring Cloud 之注册中心 Eureka 精讲

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

【SpringCloud config分布式配置中心】—— 每天一点小知识

💧 S p r i n g C l o u d c o n f i g 分布式配置中心 \color{#FF1493}{SpringCloud config分布式配置中心} SpringCloudconfig分布式配置中心💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的…

软考A计划-系统集成项目管理工程师-项目范围管理(四)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…