【微服务】日志搜集es+kibana+filebeat+redis+logstash(单机)

日志搜集系统搭建
基于7.17.16版本
ps: 项目是toB的,日志量不大

前置准备

软件下载

7.17.16版本。8.x版本需要JDK11

elastic.co/downloads/past-releases

JDK

java8

Linux

elastic 软件不能以root用户启动,需要创建用户

sudo useradd elastic
#给此用户设置密码
sudo passwd elastic#授权
chown -R elastic /usr/local/kw-microservices/elastic/elasticsearch
chown -R elastic /usr/local/kw-microservices/elastic/kibana

软件安装

  • redis
  • elasticsearch
  • kibana
  • logstash
  • filebeat
    下载tar包,解压即可

es部署

配置ES_JAVA_HOME

elasticsearch.yml

修改config/elasticsearch.yml中参数

#默认只能被本机访问
#修改config/elasticsearch.yml中参数
network.host: 0.0.0.0#开启远程连接之后,就默认以生产模式启动,是集群的,需要修改
#修改为
cluster.initial_master_nodes: ["node-1"]
#修改为
discovery.seed_hosts: ["127.0.0.1:9300"]
系统参数修改
#切换回root
vim /etc/sysctl.conf
#修改为
vm.max_map_count=262144
#执行
sysctl -p
sysctl -a|grep vm.max_map_countvi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65537
# 不配置 启动报错 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]#需要重新登陆一下,查看是否生效
ulimit  -H -n#说明: soft nofile表示软限制,hard nofile表示硬限制。两行语句表示,es用户的软限制为65535,硬限制为65537,即表示es用户能打开的最大文件数量为65537,不管它开启多少个shell
修改jvm参数

jvm.options
默认4G,也可以不改,看硬件配置。
-Xms1g
-Xmx1g

kibana

修改kibana.yml

#允许远程访问
server.host: "0.0.0.0"
#es地址
elasticsearch.hosts: ["http://localhost:9200"]
#指定语言 en、zh-CN,推荐使用英文
i18n.locale: "zh-CN"

日志搜集核心配置

filebeat

# ============================== Filebeat inputs ===============================filebeat.inputs:
- type: logpaths:- /Users/kw/Downloads/all.logfields:app: admin-serviceenv: dev# ============================== 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# ================================== Outputs ===================================
output.redis:hosts: ["localhost"]password: "123456"key: "filebeat"db: 0timeout: 5# ================================= Processors =================================
processors:- drop_fields:fields: ["log","host","input","agent","ecs"]ignore_missing: false

logstash

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.input {redis {id => "kw_localhost"#消息被消费完,key会丢失,有消息进来会重新创建keykey => "filebeat"host => "localhost"password => "123456"port => 6379db => "0"data_type => "list"}
}filter {grok {#匹配日志中的时间,并存储到一个字段中log_timestamp#TIMESTAMP_ISO8601 为grok中的一种时间匹配模式,具体要看自己的时间格式match => { "message" => "%{TIMESTAMP_ISO8601:log_timestamp}" }}date {match => ["log_timestamp", "yyyy-MM-dd HH:mm:ss.SSS"] #匹配timestamp字段target => "@timestamp"  #将匹配到的数据写到@timestamp字段中}#需要删除字段mutate {  remove_field => ["log_timestamp"]  }  
}output {#stdout {}elasticsearch {hosts => ["localhost:9200"]index => "backend-%{[fields][app]}-%{+YYYY.MM.dd}"}
}

服务启动

filebeat

./filebeat -e -c 指定配置文件
./filebeat test config -e -c filebeat.yml
#test config: 这是filebeat的一个子命令,用于测试配置文件是否正确。
#-e: 这个参数表示如果遇到任何错误,立即退出。
#-c 这个参数指定了要测试的配置文件的路径。在这个例子中,配置文件是filebeat.yml,并且它应该在当前目录下#后台启动
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &
#查看
jobs
#查看进程
ps -ef|grep filebeat|grep -v grep
#调为前台进程 ctrl c关闭进程 或者 直接kill -9 pid
fg %1

logstash

#解压即可
tar -zxvf
#启动
./bin/logstash -f 指定配置文件
#检测配置是否正确
./bin/logstash -t -f 指定配置文件#后台启动,使用nohup

es

#bin目录 启动
./elasticsearch#后台启动nohup

kibana

#bin目录 启动
./kibana
#后台启动nohup

测试效果

访问kibana localhost:5601
在这里插入图片描述
在这里插入图片描述

问题记录

kibana启动,有错误信息

有错误信息,但不影响使用。
报如下错误,下载插件失败,需要科学上网,重启即可

Error: Failed to download https://storage.googleapis.com/headless_shell/chromium-38c7255-locales-linux_x64.zip: Error: Unable to download https://storage.googleapis.com/headless_shell/chromium-38c7255-locales-linux_x64.zip: Error: read ECONNRESET

es启动报错

#能启动,但报错如下:(百度说,这是个bug)
[node-1] error updating geoip database [GeoLite2-Country.mmdb]
java.net.SocketException: Connection reset#解决 elasticsearch.yml增加配置
#关闭geoip数据库的更新
ingest.geoip.downloader.enabled: false

启动报错
ElasticsearchException[Failure running machine learning native code. This could be due to running on an unsupported OS or distribution, missing OS libraries, or a problem with the temp directory. To bypass this problem by running Elasticsearch without machine learning functionality set [xpack.ml.enabled: false].]

#解决 elasticsearch.yml增加配置
xpack.ml.enabled: false

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

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

相关文章

零基础学习 AI 绘画的进阶之路!必收藏!!

手把手教你入门绘图超强的AI绘画程序,用户只需要输入一段图片的文字描述,即可生成精美的绘画。给大家带来了全新保姆级教程资料包(文末可获取) 计算机和绘画都是零基础的初学者——既不懂编程,也没有接受过任何美术方面…

Python类型转换,数据类型转换函数大全 与 strip()函数介绍

Python类型转换,数据类型转换函数大全 虽然 Python 是弱类型编程语言,不需要像 Java 或 C 语言那样还要在使用变量前声明变量的类型,但在一些特定场景中,仍然需要用到类型转换。 比如说,我们想通过使用 print() 函数…

牛客网-JAVA(错题集)-1

1 Java的抽象类和接口不可以进行实例化 2 知识点: 1、不论如何 finally里面的代码是一定会执行的 2、finally里面的代码块比return早执行 3、多个return是按顺序执行的,只执行一次 public abstract class Test {public static void main(String[] ar…

x-cmd pkg | ctop - 针对容器的类 top 命令

目录 介绍首次用户功能特点类似工具与竞品进一步阅读 介绍 ctop 是一个基于容器的类似 top 命令的性能监控工具,采用 Go 语言编写的,它以类似于 top 命令的方式显示运行中的容器的资源使用情况。ctop 提供了一个交互式的界面,可以让用户实时…

SpringMVC工作原理

文章目录 Spring MVC 概述组件介绍Spring MVC的工作原理 Spring MVC 概述 SpringMVC是一个基于MVC模式的Web框架,它是Spring Framework的一部分。SpringMVC主要用于在Java Web应用程序中实现Web层,提供了一套与平台无关的、可重用的Web组件。 Spring MV…

2024年程序员必备:掌握未来技术架构的关键方向

随着科技的飞速发展,程序员的角色也在不断演变。 到了2024年,仅仅掌握基本的编程技能已经远远不够,程序员必须紧跟技术潮流,深入理解并掌握新兴的技术架构方向,以确保在职场中的竞争力。本文将探讨2024年程序员必须关…

时间差异导致数据缺失,如何调整Grafana时间与Prometheus保持同步?

Grafana时间如何调快或调慢? 在k8s环境中,常使用prometheusgrafana做监控组件,prometheus负责采集、存储数据,grafana负责监控数据的可视化。 在实际的使用中,有时会遇到这样的问题,k8s集群中的时间比真实…

通义千问Qwen-72B-Chat基于PAI的低代码微调部署实践

作者:熊兮、求伯、一耘 引言 通义千问-72B(Qwen-72B)是阿里云研发的通义千问大模型系列的720亿参数规模模型。Qwen-72B的预训练数据类型多样、覆盖广泛,包括大量网络文本、专业书籍、代码等。Qwen-72B-Chat是在Qwen-72B的基础上…

电脑提示dll丢失怎么办,教你一招将dll修复

使用电脑时,你的电脑是否出现关于dll文件丢失或找不到的问题,出现这种问题又该如何解决呢,dll文件问题会导致软件无法打开,或者会导致系统崩溃。今天就来教大家如何快速解决dll文件修复。 一.如何修复dll修复 方法一:…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷5

某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack搭建企业内部私有云平台,开源Kubernetes搭建云原生服务平台,选…

(N-137)基于springboot,vue运动会报名管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueAvueElementUI 服务端技术:springbootmybatis 本项…

Qt优秀开源项目之二十:RedPanda-CPP(小熊猫C++)

小熊猫C是跨平台、轻量易用的开源C/C集成开发环境。 官网:http://royqh.net/redpandacpp github:https://github.com/royqh1979/RedPanda-CPP 小熊猫C(原名小熊猫Dev-C 7)是基于Qt开发的Dev-C替代版本。和经典的Dev-C 5.11、新的Embarcadero …