多服务器 elk 搭建 [elasticsearch 7.0 ]

大家好,我是烤鸭:

    今天分享一下多服务器的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

 

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

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

相关文章

知乎问答:现在程序员的工资是不是被高估了?

对于优秀的程序员来说,薪酬的天花板犹如发际线,没有最高只有更高。而对于只想「混日子」的程序员来说,高薪很可能是泡沫,风一吹就碎。 一、程序员的工资真的高吗? 《2018年中国程序员生存状况报告》,来源&a…

lombok 的bug?lombok 导致 springmvc 使用 @RequestBody注解 接收 json数据 对象参数绑定失败

大家好,我是烤鸭: lombok 导致 springmvc 使用 RequestBody注解 接收 json数据 对象参数绑定失败。 环境版本: spring 5.x 1. 场景复现 问题出现在创建对象的属性名称。比如我有一个类中的属性值是 String aTest; 首字…

web APIS

WEB API系列: 很多人都很迷惑,既然有了WCF为什么还要有WEB API?WEB API会不会取代WCF? 就我的看法,WCF提供的是一种RPC实现的集合,WCF的设计更多地考虑了SOA的场景,以及各种RPC的问题。很多人也…

dubbo 整合 zipkin,最简单的方式,亲测有效

大家好&#xff0c;我是烤鸭。 之前也试过网上很多版本&#xff0c;看了好多文章。现在分享最简单的方式&#xff0c;代码侵入性最小的。 1. 修改pom,引入jar。 <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency><…

[Network Architecture]DPN(Dual Path Network)算法详解(转)

https://blog.csdn.net/u014380165/article/details/75676216 论文&#xff1a;Dual Path Networks 论文链接&#xff1a;https://arxiv.org/abs/1707.01629 代码&#xff1a;https://github.com/cypw/DPNs MXNet框架下可训练模型的DPN代码&#xff1a;https://github.com/m…

javax.script.ScriptException: ReferenceError: xxx is not defined in eval

大家好&#xff0c;我是烤鸭&#xff1a; 今天使用 javax.script.ScriptEngine 遇到一个奇怪的问题&#xff0c;无法识别js方法。 1. 报错内容&#xff1a; javax.script.ScriptException: ReferenceError: "a" is not defined in <eval> at line number…

Python的特殊成员

Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用’from module import *’导入 __xxx__ 系统定义名字 __xxx 类中的私有变量名 核心风格&#xff1a;避免用下划线作为变量名的开始。 现在我们来总结下所有的系统定义属性和方法&#xff0c; 先来看下保留属性&#…

java 实现 常见排序算法(四)基数排序

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下基础排序算法之基数排序。 1. 基数排序&#xff1a; 原理&#xff1a;基数排序&#xff08;radix sort&#xff09;属于“分配式排序”&#xff08;distribution sort&#xff09;&#xff0c;又称“桶子法”&#…

今天分享一下做支付宝小程序遇到的坑。ISV权限不足,建议在开发者中心检查对应功能是否已经添加。验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下做支付宝小程序遇到的坑。pom版本 <!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java --><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-j…

Will not attempt to authenticate using SASL | dubbo项目启动特别慢,拉取 zookeeper 服务日志打印特别慢

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下使用dubbo遇到的几个问题。 1. cause: KeeperErrorCode ConnectionLoss for /dubbo/ xxx 异常如下&#xff1a; pid9965&qos.accept.foreign.ipfalse&qos.enabletrue&qos.port10887&timestamp1567…

redis集群搭建【简版】

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下redis集群安装&#xff0c;写的比较简单&#xff0c;就是做个记录。 1. 下载&安装 wget http://download.redis.io/releases/redis-5.0.4.tar.gz tar -zxvf redis-5.0.4.tar.gz 解压并编译 https://redis.io/ 2.…

x-shell 通过堡垒机连接 ssh多个机器 自动化脚本

大家好&#xff0c;我是烤鸭&#xff1a; 1. 连接vpn 这一步就没什么说的了。我们用的easyconnect。登录后弹出堡垒机页面。 easyconnect 官网&#xff1a;https://sslvpn.zjweu.edu.cn/com/installClient.html 2. 登录堡垒机账号 登录堡垒机之后&#xff0c;如图&#xff…

javax.mail.MessagingException: while sending message;Connection reset by peer: socket write error

大家好&#xff0c;我是烤鸭&#xff1a; 阿里云邮件推送服务报错。当你也使用阿里云的邮件推送服务提示上面这个错误的话&#xff0c;我先告诉你原因和目前能想到的解决方案。 解决思路&#xff1a; 1. 换企业邮箱&#xff0c;阿里的上限15M&#xff0c;网易的不知道&…

李晓菁201771010114《面向对象程序设计(java)》第十三周学习总结

理论知识&#xff1a;事件处理 1.事件源&#xff1a;能够产生事件的对象都可以成为事件源&#xff0c;如文本框&#xff0c;按钮等。一个事件源是一个能够注册监听器并向监听器发送事件对象的对象。 2.事件监听器&#xff1a;事件监听器对象接收事件源发送的通告&#xff08;事…

记一次 OOM 的原因和处理 出现大量 close_wait,项目无法访问 activeMq和 poi 出现的 OOM

大家好&#xff0c;我是烤鸭: 记一次项目无法访问的事件和处理。由于某个模块每隔几天就会出现无法访问&#xff0c;目前的最简单粗暴的方法就是重启。 1. 现象 项目内日志打印正常&#xff0c;经过dubbo的rpc服务和接口调用正常。http接口无法访问。提示nginx 502。 2.…

谷歌浏览器中安装JsonView扩展程序

实际开发工作中经常用到json数据&#xff0c;那么就会有这样一个需求&#xff1a;在谷歌浏览器中访问URL地址返回的json数据能否按照json格式展现出来。 比如&#xff0c;在谷歌浏览器中访问&#xff1a;http://jsonview.com/example.json 展现效果如下&#xff1a; 那么安装了…

Serialized class com.xxx.xxxService must implement java.io.Serializable

大家好&#xff0c;我是烤鸭&#xff1a; 使用dubbo的时候&#xff0c;遇到如下的问题。 Serialized class com.xxx.xxxService must implement java.io.Serializable 1. 异常 dubbo无论使用哪个协议传递参数的时候&#xff0c;都需要参数实现序列化接口。 所以提示这个…

CS229 7.1应用机器学习中的一些技巧

本文所讲述的是怎么样去在实践中更好的应用机器学习算法&#xff0c;比如如下经验风险最小化问题&#xff1a; 当求解最优的 后&#xff0c;发现他的预测误差非常之大&#xff0c;接下来如何处理来使得当前的误差尽可能的小呢&#xff1f;这里给出以下几个选项&#xff0c;下面…

8号团队-团队任务三:每日立会(2018-11-27)

团队信息&#xff1a; 1.团队序号 8 2.开发软件 飞机大战 3.今日整理人&#xff1a;徐浩茗 职位&#xff1a;项目经理 学号&#xff1a;2016035107247 4.本次团队会议共有8人参加 无缺席 团队汇报&#xff1a; &#xff08;截图&#xff09;如下 . 4.燃尽图 5.本次会议中遇…

Alibaba 开源工具 Arthas 使用

大家好&#xff0c;我是烤鸭&#xff1a; 很长时间没更新了&#xff0c;最近太忙了&#xff0c;只能抽空水点文章了&#xff0c;今天给大家介绍的是阿里的开源工具 Arthas 的使用。 1. 开源地址 Arthas 是Alibaba开源的Java诊断工具 https://github.com/alibaba/arthas 中文说…