大家好,我是烤鸭:

今天分享一下多服务器的elk搭建。

1.    流程规划

2.   执行搭建

最新的版本和对应下载地址可以在官网查询到 
    https://www.elastic.co/cn/products/

2.1 elasticsearch 7.0 搭建

2.1.1 下载

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-linux-x86_64.tar.gz

我这边的目录是    /opt/web_app/elk/elasticsearch-7.0.0/

tar -zxvf elasticsearch-7.0.0-linux-x86_64.tar.gz

2.1.2 安装

        由于es 不允许root账户启动,先创建用户和用户组

groupadd elk
useradd -g elk elk
#添加权限
chown -R elk:elk /opt/web_app/elk/elasticsearch-7.0.0/

 2.1.3 修改配置

elasticsearch.yml 修改内容
cluster.name: test1
node.name: test1-node1
network.host: 0.0.0.0 #允许外网访问
discovery.seed_hosts: ["内网ip"]    #集群ip
cluster.initial_master_nodes: ["test1-node1"] #默认节点

2.1.4 启动和停止:

su elk
cd /opt/web_app/elk/elasticsearch-7.0.0/
./bin/elasticsearch &
ps -ef|grep elasticsearch
kill pid

启动成功,访问如图:

2.1.5 异常记录:

1、 Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
        
        修改 elasticsearch 目录中 config/jvm.options  

vim config/jvm.options
#-Xms2g和-Xmx2g  改为 -Xms512m和-Xmx512m

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

vi /etc/sysctl.conf
#添加下面配置:
vm.max_map_count=655360 #单个jvm能开启的最大线程数
sysctl -p

3、 max number of threads [3795] for user [esuser] is too low, increase to at least [4096]

 #linux最大线程数(ulimit -u可以查看)#root用户下进行: cat /etc/security/limits.d/20-nproc.conf#注释这两行:(最前面加#)* soft nproc 2048root soft nproc unlimited#在后面加四行:*  soft nproc 5000*  hard nproc 5000root soft nproc 5000root hard nproc 5000

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

vi /etc/security/limits.conf
#用户最大打开文件数(ulimit -n可以查看)
#添加如下内容:
soft nofile 65536
hard nofile 131072
soft nproc 2048
hard nproc 4096

2.2 kinaba 搭建

由于在es 6.0之后X-Pack 就不再开源了,如果想做权限控制的话,可以用nginx。这里由于是内网访问,就暂时没考虑安全方面的。

2.2.1 下载

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.0.0-linux-x86_64.tar.gz
#我这边的目录是 /opt/web_app/elk/kibana-7.0.0-linux-x86_64
tar -zxvf kibana-7.0.0-linux-x86_64.tar.gz

2.2.2 修改配置文件

更改配置文件:

 vi /opt/web_app/elk/kibana-7.0.0-linux-x86_64/config/kibana.ymlserver.host: "0.0.0.0"server.maxPayloadBytes: 1048576000    # 防止日志内容过大,kinaba 自动挂掉elasticsearch.hosts: ["http://127.0.0.1:9200"] # kinaba 和 es在一台服务器部署的,所以这里是127.0.0.1

2.2.3 启动和停止

./bin/kinaba &
ps -ef|grep node
ps -ef|grep 5601
kill pid

启动成功,如图:

2.3 logstash 搭建

2.3.1 下载

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.0.0.tar.gz
#我这边的目录是 /opt/web_app/elk/logstash-7.0.0
tar -zxvf logstash-7.0.0.tar.gz

2.3.2 修改配置文件

 vi /opt/web_app/elk/logstash-7.0.0/config/logstash.conf#输入input {beats {port => 5044}}#过滤器 (可不加,为了看着格式方便)#filter{#    #去除换行符#    mutate{#    gsub => [ "message", "\r", "" ]   #    }#     #    #逗号分割#    mutate {  #      split => ["message",","]     #    }#     #    #字段里的日期识别,以及时区转换,生成date#    date {#      match => [ "mydate", "MM/dd/yyyy HH:mm:ss" ]#      target => "date"#      locale => "en"#      timezone => "+00:00"  #    }#     #    #删除无用字段#    mutate {    #      remove_field => "mydate"    #      remove_field => "@version"    #      remove_field => "host"    #      remove_field => "path"    #    }#    #将两个字段转换为整型#    mutate{#    convert => { "size" => "integer" }#    convert => { "attachments" => "integer" }#    }#}#输出#不同的服务器,不同的tag,下面用于区分不同的服务器生成不同的index索引output {if "test1" in [tags]{elasticsearch {hosts => ["http://127.0.0.1:9200"]index => "etc_manage-%{+YYYY.MM.dd}"}}if "test2" in [tags]{elasticsearch {hosts => ["http://127.0.0.1:9200"]index => "test2-%{+YYYY.MM.dd}"}}}

2.3.3 启动和停止

cd /opt/web_app/elk/logstash-7.0.0/
./bin/logstash -f config/logstash.conf
ps -ef|grep logstash
kill pid

2.4 filebeat 搭建

在需要的服务器安装 filebeat
        我这里是另外两台服务器。

2.4.1 下载

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.0.0-linux-x86_64.tar.gz
#我这边的目录是 /opt/web_app/elk/filebeat
tar -zxvf filebeat-7.0.0-linux-x86_64.tar.gz

2.4.2 修改配置文件(这里展示其中一台的配置文件,另一个类似,tag不同)

 vi /opt/web_app/elk/filebeat/filebeat.ymlpaths: #监听的日志路径- /opt/web_app/logs/*.log# 和logstash的filter配合使用,filter不配置的话,这个可以不配#multiline.pattern: ^\[ #必须匹配的正则表达式模式#multiline.negate: true #定义是否应取消在模式下设置的模式。 默认值为false。#multiline.match: aftertags: ["test1"] #标签,用于区分不同的服务器来源或者日志来源output.logstash: #输出到logstash的地址和端口hosts: ["logstath的ip:5044"]

filebeat 多行日志的处理
        https://www.cnblogs.com/toSeek/p/6120778.html?utm_source=itdadao&utm_medium=referral

2.4.3 启动和停止

 ./filebeat -e -c filebeat.yml &ps -ef|grep filebeatkill pid

2.4.4 问题

解决kibana后台服务挂的方法
        https://blog.csdn.net/qq_37184313/article/details/79168526

关于老版本kibana进程会挂掉的问题
        https://blog.csdn.net/caocao80/article/details/87601513

vi /opt/web_app/sh/check_kibana.shkibana_pid_num=`lsof-i:5601 | wc -l`if[ "${kibana_pid_num}" = 0 ]
then
echo"kibana Down"
cd/opt/Kibana/kibana-5.4.0-linux-x86_64
nohup./bin/kibana >/dev/null &
else
echo"kibana Live"
fiecho '0 1/1 * * * ? sh /opt/web_app/sh/check_kibana.sh' >> /var/spool/cron/root

2.4.5 官方配置

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-configuration.html

3.   配置kinaba和日志索引

首页的 management ——> Index Patterns ——> Create index pattern
如图所示:

创建索引:

看到日志:

4.   优化和不足

不足:
kinaba 频繁挂掉。(可能是内存不足的原因)
启动过慢。
日志丢失。
其他的后续待总结。

5.   各个流行日志框架分析和对比

开源日志管理最全对比:

https://blog.csdn.net/weixin_33842304/article/details/87636213

借鉴开源框架自研日志收集系统:

https://blog.csdn.net/bigsec/article/details/80110923

多服务器 elk 搭建 [elasticsearch 7.0 ]相关推荐

  1. 阿里云,百度云等云服务器中搭建gitblit-1.8.0时,报java.net.BindException: Cannot assign requested address: bind

    搭建gitblit-1.8.0服务器时,启动gitblit.cmd时,报如下错误: 2019-06-16 14:07:36 [WARN ] FAILED ServerConnector@1ba2af2 ...

  2. 云服务器 Centos7 部署 Elasticsearch 8.0 + Kibana 8.0 指南

    1.昨晚上更新云服务器部署8.0视频 Part1:https://t.zsxq.com/UJ6AY7y Part2:https://t.zsxq.com/YzVrZJq 2.Elasticsearch ...

  3. Centos7下使用ELK(Elasticsearch + Logstash + Kibana)搭建日志集中分析平台

    Centos7下使用ELK(Elasticsearch + Logstash + Kibana)搭建日志集中分析平台 日志监控和分析在保障业务稳定运行时,起到了很重要的作用,不过一般情况下日志都分散在 ...

  4. 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群

    笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群 笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装 ...

  5. 企业日志分析ELK(Logstash+Elasticsearch+Kibana)介绍及搭建

    目录 一.ELK概述 1.ELK日志分析系统 2.ELK中日志处理步骤 二.Elasticsearch介绍 1.Elasticsearch的基础核心概念 2.分片和副本 三.LogStash概述 1. ...

  6. APMServ 5.2.0 服务器平台搭建工具

    软件简介: APMServ 5.2.0 是一款拥有图形界面的快速搭建Apache 2.2.3.PHP 5.2.0.MySQL 5.0.27&4.0.26.SQLite.ZendOptimize ...

  7. 云服务如何搭建数据库_【MySQL8.0.18】阿里云服务器上搭建MySQL数据库

    要想搭建个人博客,云服务器和数据库是少不了的.笔者选择在阿里云服务器上搭建一个MySQL数据库. 系统选用CentOS8.0,MySQL数据库版本8.0.18 一.数据库压缩包选择及下载 登录MySQ ...

  8. 银河麒麟服务器版本搭建本地源2.0

    一.银河麒麟服务器版本搭建本地源2.0 1.官方源文件下载 下载银河麒麟服务器版本的所有rpm安装文件. 下载地址 http://update.cs2c.com.cn:8080/NS/ 我这里需要的是 ...

  9. 【Ruby on Rails 起步(二)】Windows下搭建RubyonRails 3.0.4 + Mongrel 1.2.0 pre + Apache2.2.17服务器

    不知道为什么,感觉Rails自带的WEBrick有点慢,于是决定利用已有的Apache搭建一个Mongrel的. 系统是Windows 7,昨天下载的Ruby1.9.2(但是除了主文件夹名是Ruby1 ...

最新文章

  1. java 数据类型转换的一场_Java基础 — 四类八种基本数据类型
  2. 漫谈C#之关键字(1)
  3. Android自动化测试工具Appium环境搭建
  4. 徐博 From RankNet to LambdaRank to LambdaMART: An Overview
  5. 跑步碰撞大数据,走进悦跑圈的数据“大观园”
  6. 关于MonoDevelop自动缩进的设置
  7. SAP Spartacus取语言设置的入口程序
  8. js java post提交_如何从Express.js发送Post请求到另一个服务器(Java)?
  9. linux中同步例子(完成量completion)
  10. PCIE传输速率详解、Gbps和GB的区分
  11. weblogic 下载文件问题
  12. miui 8.5 android,小米MIUI8.5稳定版
  13. 企业工商信息数据接口说明
  14. 如何免费将PDF旋转并保存成功?
  15. java外文文库_java外文文献毕业设计
  16. word 多级编号列表
  17. 单模光纤和多模光纤的对比
  18. wxid转扫一扫添加好友
  19. java get请求 数组_GET方式请求的url参数如果是数组,该形式/base/get?foo[]=barfoo[]=baz'报错......
  20. 【Linux】制作U-Boot烧写镜像到SD卡的过程(下篇:Makefile文件)

热门文章

  1. 前端学习(3146):react-hello-react之getBeforeUpdate
  2. PS教程第五课:套索工具进行抠图
  3. 前端学习(1954)vue之电商管理系统电商系统之重置表单数据
  4. 前端学习(1802):前端调试之事件伪类
  5. 前端学习(809):api简介
  6. 前端学习(575):margin无效情形之鞭长莫及导致无效
  7. 前端学习(508):水平和垂直居中第一种方式
  8. 34tomcat设置默认页面
  9. JS之连接数组方法concat
  10. python 学习资源推荐