ELK

  • filebeat:具有日志收集功能,相比logstash,+filebeat更轻量,占用资源更少,适合客户端使用。
  • redis消息队列选型:Redis 服务器通常都是用作 NoSQL 数据库,不过这里的 redis 只是用来做消息队列,海量日志建议使用kafka。
  • logstash:主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
  • elasticsearch:Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • kibana:Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
主机名 配置 角色 软件版本
filebeat 日志搜集客户端 https://www.elastic.co/cn/downloads/beats/filebeat
redis 2 vCPU 8 GiB 消息队列 redis-stable.tar.gz
logstash 4 vCPU 16 GiB 日志搜集 https://www.elastic.co/cn/downloads/logstash
elasticsearch 4 vCPU 16 GiB 日志搜索引擎 https://www.elastic.co/cn/downloads/elasticsearch
kibana 2 vCPU 4 GiB 日志数据展示 https://www.elastic.co/cn/downloads/kibana

ES激活白金版:https://www.jianshu.com/p/1ff67bb363dd

1 redis部署

  • 上传部署包至/usr/local/src/redis/,依赖安装及环境配置

  • mkdir -p /usr/local/src/redis/
    yum -y install gcc-c++ make tcl
    service iptables stop && chkconfig iptables off
    echo 511 > /proc/sys/net/core/somaxconn
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo "echo 511 > /proc/sys/net/core/somaxconn" >> /etc/rc.local
    echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
    echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf && modprobe bridge && sysctl -p
  • 编译安装redis server

  • mkdir -p /usr/local/src/redis/{data,log}
    cd /usr/local/src/redis && tar -zxvf redis-stable.tar.gz -C . && cd redis-stable && make && make install
    (此处可一路回车选择默认配置,配置文件在cat /etc/redis/6379.conf)
    ./utils/install_server.sh
  • 启动redis

  • chkconfig redis_6379 on
    service redis_6379 start
  • 检查启动后服务是否正常

  • redis-cli -h 本机IP

    **localhost:6379> keys ***

    (empty list or set)

    localhost:6379> set test abc

    OK

    localhost:6379> get test

    "abc"

    localhost:6379> del test

    (integer) 1

    localhost:6379> quit

2 filebeat

  • 上传filebeat包,解压修改配置

  • mkdir /usr/local/src/filebeat
    #上传压缩包
    tar -zxvf filebeat-7.3.1-linux-x86_64.tar.gz
    cd filebeat-7.3.1-linux-x86_64
    vim filebeat.yml

(paths:对应日志位置)

enabled: true

paths:

  • /tomcat/apache-tomcat-7.0.72/logs/*.out

multiline.pattern: ^[

multiline.negate: false

multiline.match: after

(tags:变量TEMPLATE_TAG用于部署到对应服务器后批量替换为对应实例名称)

tags: ["192.168.192.10"]

注释掉Elasticsearch相关的配置

----------------------------- Redis output --------------------------------

(key变量为保存到redis中的键名,用于部署到对应服务器后批量替换为对应应用名)

output.redis:

hosts: ["localhost:6379"]

db: 0

timeout: 5

key: "project-name"

================================ Global =====================================

filebeat.global:

filebeat.spool_size: 64

filebeat.idle_timeout: 5s

  • 启动

  • ./filebeat -e -c filebeat.yml
  • 查看redis是否已有日志记录

  • redis-cli -h 本机IP
    #查看所有KEY
    keys *
    #查看日志长度
    LLEN project-name
    #查看某一行日志
    INDEX project-name 1

3 ElasticSearch

ElasticSearch启动问题:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

切换到root用户,编辑limits.conf添加如下内容(需要重启生效)

vi /etc/security/limits.conf

* soft nofile 65536

* hard nofile 65536

[2]: max number of threads [3818] for user [es] is too low, increase to at least [4096]

最大线程个数太低。修改配置文件etc/security/limits.conf,增加配置

* soft nproc 4096

* hard nproc 4096

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144

vi /etc/sysctl.conf

sysctl -p

执行命令sysctl -p生效

[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

问题原因:因为Centos6不支持SecComp,而ES5.2.1默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动

解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

4 Logstash

  • 下载解压

  • mkdir /usr/local/src/logstash
    #上传压缩包
    tar -zxvf logstash-7.3.1.tar.gz
  • 创建一个配置文件

  • vim logstash.conf

    input {

    ​ redis {

    ​ host => "redis所在机器"

    ​ data_type => "list"

    ​ port => "6379"

    ​ key => "project-name"

    ​ type => "project-name"

    ​ }

    }

    output {

    ​ if[type == "project-name"]{

    ​ elasticsearch {

    ​ hosts => "es所在机器:9200"

    ​ user => "elastic"

    ​ password => "刚刚es环境设置的密码"

    ​ codec => "json"

    ​ index => "project-name-%{+YYYY.MM.dd}"

    ​ }

    ​ }

    }

  • 启动

  • bin/logstash -f logstash.conf

5 kibana

  • 下载解压

  • mkdir /usr/local/src/kibana
    #上传压缩包
    tar -zxvf kibana-7.3.1-linux-x86_64.tar.gz cd kibana-7.3.1-linux-x86_64
    mkdir logs
    #进入kibana配置下
    cd config
    #修改配置文件
    vim kibana.yml

server.port: 5601

server.host: "本机IP"

elasticsearch.hosts: ["http://ES服务器IP:9200"]

kibana.index: ".kibana"

elasticsearch.username: "kibana"

elasticsearch.password: "es环境设置的kibana密码"

pid.file: /var/run/kibana.pid

logging.dest: /usr/local/src/kibana/kibana-7.3.1-linux-x86_64/logs/kibana.log

  • 启动(kibana不建议以root用户启动,如果用root启动,需要加--allow-root)

  • bin/kibana
    #bin/kibana --allow-root
    (观察配置的日志)
  • 访问5601端口(使用es用户)(以下没有更新,参考使用)

  • 创建日志索引

  • 查看日志量等信息

ELKBR部署检测项目日志的更多相关文章

  1. 部署java项目日志乱码求解!!!

    springboot项项目打成war包放到tomcat9上,项目日志出现乱码,tomcat乱码已解决,这个不知道咋回事!!!!!! 这是项目的打包坐标 <parent> <group ...

  2. ELK部署检测nginx日志demo

    ELK E: ElasticSearch 搜索引擎 存储 https://www.elastic.co/cn/downloads/elasticsearch L: Logstash 日志收集 http ...

  3. 通过Docker部署Java项目的日志输出到宿主机指定目录

    之前写过2篇关于Docker部署的文章: 1.超!超!超简单,Linux安装Docker 2.Docker通过阿里云镜像仓库使用Gitlab_CI部署SpringBoot项目 用上篇博客部署Java程 ...

  4. 明火烟雾目标检测项目部署(YoloV5+Flask)

    明火烟雾目标检测项目部署 目录 明火烟雾目标检测项目部署 1. 拉取Docker PyToch镜像 2. 配置项目环境 2.1 更换软件源 2.2 下载vim 2.3 解决vim中文乱码问题 3. 运 ...

  5. mac osx 上面部署Django项目 apache+mysql+mod_wsgi

    1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...

  6. CentOS 6.8 部署django项目一

    CentOS 6.8 部署django项目二 1.安装python3.5(默认是2.6) 参考:http://blog.csdn.net/shaobingj126/article/details/50 ...

  7. redhat7学习笔记之从零到部署javaweb项目

    REDHAT7学习笔记 1. 安装vmware10 安装过程略,下载地址:链接: https://pan.baidu.com/s/16odKKkRYBxGWDVo1cz_wxA 注意,10以上版本不在 ...

  8. 在裸机centos7系统中部署django项目的过程

    概要 本文用一台安装了centos7.5系统的裸奔Linux机器(当然是虚拟机)详细讲解从无到有部署django项目的过程. 安装必要的工具 配置yum源 至于什么是yum源大家请自行百度,本人用的是 ...

  9. tomcat部署java项目

    tomcat部署java项目 1.启动tomcat 进入到tomcat安装目录下的bin #cd /opt/tomcat/bin #./startup.sh // 执行重启命令 2.重建一个新目录导入 ...

随机推荐

  1. 【Kubernetes 系列三】Kubernetes 学习文档推荐

    标题 地址 备注 Kubernetes 官方文档 https://kubernetes.io/docs 英文文档,全面 Kubernetes Handbook ttps://jimmysong.io/ ...

  2. mongoDB的CRUD的总结

    今天开始接触非关系型数据库的mongoDB,现在将自己做的笔记发出来,供大家参考,也便于自己以后忘记了可以查看. 首先,mongoDB,是一种数据库,但是又区别与mysql,sqlserver.orc ...

  3. java的八种数据类型

    1)四种整数类型(byte.short.int.long):    byte:8 位,用于表示最小数据单位,如文件中数据,-128~127    short:16 位,很少用,-32768 ~ 327 ...

  4. Hive安装与部署

    进去root权限(su) 1.从https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.ta ...

  5. c排序

    #pragma once//如果写头文件 放置头文件重复包含 #include<stdio.h> //定义类型 结构体类型定义 //宏定义 #define //函数申明 void prin ...

  6. 版本管理·玩转git(快速入门git)

    如果你用过Word文档写过文章,那么你一定会有这样的经历. 我觉得某一段或者某一句写得不够好,但是,删掉之后我可能会后悔把它删掉了,进而又想把删掉的段落找回来,这时,你想到了一个好办法,将每次的修改都 ...

  7. c++json构建与解析组件 RapidJSON 没用过永远不会知道有多好用

    参考资料: 官方文档 推荐[腾讯RapidJSON]学习笔记 原理请参考以上资料 构建json Document doc; Document::AllocatorType &allocator ...

  8. 「每日五分钟,玩转JVM」:线程共享区

    前言 上一篇中,我们了解了JVM中的线程独占区,这节课我们就来了解一下JVM中的线程共享区,JVM中的线程共享区是跟随JVM启动时一起创建的,包括堆(Heap)和方法区()两部分,而线程独占区的程序计 ...

  9. HTML 参考手册(摘自菜鸟教程)

    标签 描述 基础   <!DOCTYPE>  定义文档类型. <html> 定义一个 HTML 文档 <title> 为文档定义一个标题 <body> ...

  10. ElasticSearch专栏

    1.es的分布式架构原理(es是如何实现分布式)? elasticsearch设计的理念就是分布式搜索引擎,底层其实还是基于lucene的.核心思想就是在多台机器上启动多个es进程实例,组成了一个es ...