【微服务】日志搜集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_count

vi /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: log
  paths:
    - /Users/kw/Downloads/all.log
  fields:
    app: admin-service
    env: dev

# ============================== Filebeat modules ==============================

filebeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml

  # Set to true to enable config reloading
  reload.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: 0
  timeout: 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会丢失,有消息进来会重新创建key
    key => "filebeat"
    host => "localhost"
    password => "123456"
    port => 6379
    db => "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启动报错

linux报这个错
org.elasticsearch.ElasticsearchException: not all primary shards of [.geoip_databases] index are active
不解决得话,head插件,head这里点不了
在这里插入图片描述

#能启动,但报错如下:(百度说,这是个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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】Redis持久化方式

Redis 中有两种持久化方式,分别为 RDB 和 AOF。 RDB RDB 全称 Redis Database Backup file,也叫做 Redis 数据快照。简单来说就是把 Redis 中的数据记录到磁盘中。当 Redis 实例故障重启后,从磁盘读取快照文件,恢复数据。 RDB有…

Vue新手村(二)

目录 1、计算属性 2、事件修饰符 2.1、stop事件修饰符 2.2、prevent事件修饰符 2.3、self事件修饰符 2.4、once事件修饰符 3、按键修饰符 3.1、enter回车键 1、计算属性 计算属性: computed:vue官方提供一个计算属性作用:在完成某种业…

文件上传进阶绕过技巧(一)和靶场实战

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 0、环境准备 请移步《文件上传靶场实战:upl…

【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)

目录 问题描述 思路分析 数据结构构建部分 计算部分 代码实现 结果测试 此问题解决方法不唯一,这里介绍的是一种使用数组和循环实现的简单办法 问题描述 思路分析 问题的要求是输入一个日期,计算这是当年的第几天——要解决这个问题,逻…

S7-200SMART实例之冒泡法排序子程序

需求分析 编写程序实现冒泡法排序的算法。 冒泡法排序是一种简单的排序算法。因其过程如同水中气泡最终会上浮到水面一样,故被形象地称为“冒泡法排序”。 实现原理 根据以上需求分析可以按以下步骤实现算法: 1.比较相邻的元素。如果第一个比第二个…

Java面试题之JVM

Java面试题之JVM 1. JVM的组成部分及其作用?2. JVM的堆和栈的区别?3. 简述一下垃圾回收机制?(垃圾回收的原理?)4. 垃圾回收器都有什么?该怎么选择?5. 如何判断垃圾可以回收了?6. 垃圾回收算法有…

c++学习笔记-STL案例-机房预约系统1-准备工作

前言 准备工作包括:需求分析、项目创建、主菜单实现、退出功能实现 目录 1 机房预约系统需求 1.1 简单介绍 1.2 身份介绍 1.3 机房介绍 1.4 申请介绍 1.5 系统具体要求 1.6 预约系统-主界面思维导图 2 创建项目 2.1 创建项目 2.2 添加文件 ​编辑 3 创建…

小程序基础学习(事件处理)

概述&#xff1a;点击某一个标题&#xff0c;使标题选中增加不同颜色。 <!--pages/four/four.wxml--> <navigation-bar title"牧原" back"{{false}}" color"black" background"#FFF"></navigation-bar> <view c…

讲讲关于跨域的问题,什么是跨域?怎么办?

文章目录 什么是跨域如果非同源&#xff0c;共有三种行为受到限浏览器客户端和向服务器跨域请求的判定流程 跨域问题演示参考 以下内容为我结合他人知识进行的自我总结, 如有错误欢迎指出~ 什么是跨域 跨域就是不同的域名下的资源访问&#xff0c;会被浏览器的本地安全策略阻…

CISP-DSG证书含金量分析

CISP-DSG证书的含金量主要体现在以下几个方面&#x1f447; 1️⃣专业知识 CISP-DSG认证要求持有者具备深入的数据an全治理知识&#xff0c;包括数据分类、数据隐私、合规性、风险管理等。&#x1f4d2;这些知识对于处理和保护组织的敏感数据至关重要&#xff0c;因此具有高含金…

ubantu中的docker安装

1.Ubuntu Docker 安装 | 菜鸟教程 (runoob.com) 我就是看这个教程进行操作的 2.执行下面两步&#xff0c;就算是安装完成了 3.启动&#xff0c;并检查是否安装成功&#xff1a; 4.安装之后&#xff0c;怎么用&#xff0c;那就是自己随便探索咯&#xff0c;可以看博客&#xf…

【已解决】c语言编写的lib如何调用

本博文源于笔者在vs2015正在编写的lib想要调用的问题&#xff0c;正常的操作是将项目生成lib&#xff0c;但是然后又如何操作呢&#xff0c;本博文就是解决这样的问题 文章目录 问题再现步骤1&#xff1a;编写lib.h与lib.c步骤2&#xff1a;生成lib步骤3&#xff1a;添加用得到…

【昕宝爸爸小模块】HashMap用在并发场景存在的问题

HashMap用在并发场景存在的问题 一、✅典型解析1.1 ✅JDK 1.8中1.2 ✅JDK 1.7中1.3 ✅如何避免这些问题 二、 ✅HashMap并发场景详解2.1 ✅扩容过程2.2 ✅ 并发现象 三、✅拓展知识仓3.1 ✅1.7为什么要将rehash的节点作为新链表的根节点3.2 ✅1.8是如何解决这个问题的3.3 ✅除了…

c#图片作为鼠标光标

图片转换为鼠标光标代码如下&#xff1a; private void Form1_Load(object sender, EventArgs e) {//button1.Cursor System.Windows.Forms.Cursors.Hand;Bitmap bmp new Bitmap("780.jpg");Cursor cursor new Cursor(bmp.GetHicon());button1.Cursor cursor;} …

黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(4)员工管理|修改员工、配置文件

指路&#xff08;1&#xff09;&#xff08;2&#xff09;&#xff08;3&#xff09;&#x1f447; 黑马程序员JavaWeb开发|案例&#xff1a;tlias智能学习辅助系统&#xff08;1&#xff09;准备工作、部门管理_tlias智能学习辅助系统的需求分析-CSDN博客https://blog.csdn.n…

可狱可囚的爬虫系列课程 11:Requests中的SSL

一、SSL 证书 SSL 证书是数字证书的一种&#xff0c;类似于驾驶证、护照、营业执照等的电子副本。SSL 证书也称为 SSL 服务器证书&#xff0c;因为它是配置在服务器上。 SSL 证书是由受信任的数字证书颁发机构 CA 在验证服务器身份后颁发的&#xff0c;其具有服务器身份验证和…

Bom 和 Dom 区别 ----- 真是DOM 和 虚拟Dom区别

DOM和BOM的区别 我们都指代&#xff0c;javascript由三个部分组成&#xff1a; ECMAScript&#xff1a;描述了JS的语法和基本对象 BOM(浏览器对象)&#xff1a;与浏览器交互的方法和对象 DOM(文档对象模型)&#xff1a;处理网页内容的方法和接 ps&#xff1a;根据宿主&#x…

桌面微信多开小工具正式发布

本博客站点已全量迁移至 DevDengChao 的博客 https://blog.dengchao.fun , 后续的新内容将优先在自建博客站进行发布, 欢迎大家访问. 社牛: 我需要同时登录多个微信, 一个微信已经满足不了我了! Android: 让我看看系统里有没有自带的多开功能, 不行的话去应用市场下一个多开软…

DLT:dlt-daemon示例解析2

DLT&#xff1a;dlt-daemon示例解析 回顾一下上期第一个示例打印DLT日志的流程。 这次来分析第二个示例。 目录dlt-daemon/examples/example2/下有以下文件 CMakeLists.txt dlt_id.h example2.c example2.xml 其中example2.xml编译用不到&#xff0c;里面描述了一些程序的…

代码随想录算法训练营第二天|977 有序数组的平方、209长度最小的子数组、59 螺旋矩阵||

977 有序数组的平方 题目链接&#xff1a;有序数组的平方 思路 暴力解法 很容易想到的就是按照题目的说明&#xff0c;先给非递减数组中的每个元素做平方&#xff0c;然后使用一个排序函数对齐进行排序即可。 class Solution { public:vector<int> sortedSquares(ve…