草庐IT

ELK集群部署(史上超详细)

晓说森林 2023-05-18 原文

1.ELKStack官方网址

https://www.elastic.co/

2.ELKStack全版本下载地址:

https://elasticsearch.cn/download/

ELKStacks安装版本号需要一致
3.集群部署机器

服务器ip软件名称
linux1192.168.8.185elasticsearch+elasticsearch-head
linux2192.168.8.186elasticsearch
linux3192.168.8.187elasticsearch
linux4192.168.8.188logstash、kibana、filebeat

确认时区

date

如果时区是EST,要修改为CST(中国时区)

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

tips:这里时间一定与机器采集日志的时间一致
一、安装elasticsearch
1.下载

#下载elasticsearch rpm安装包
[root@node-1 ~]# 
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-x86_64.rpm

2.安装

# 对elasticsearch rpm包进行安装
[root@node-1 ~]# rpm -ivh elasticsearch-7.8.0-x86_64.rpm
# -i<套件档>或--install<套件档>  安装指定的套件档
# -v显示指令执行过程。
# -h或--hash  套件安装时列出标记

3.更新防火墙

[root@node-1 ~]# firewall-cmd --permanent --add-port=9200/tcp
[root@node-1 ~]# firewall-cmd --permanent --add-port=9200/udp
[root@node-1 ~]# firewall-cmd --reload

ELK报错问题解决

ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max number of threads [3795] for user [es] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[1] 和 [2] 的解决方法:修改 /etc/security/limits.conf 文件

[root@node-1 ~]# vim /etc/security/limits.conf #增加以下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

[3] 的解决方法:修改 /etc/sysctl.conf 文件

[root@node-1 ~]# vim /etc/sysctl.conf
 vm.max_map_count=655360 #添加下面这一行
[root@node-1 ~]# sysctl -p  #执行命令

调整java内存大小

通过路径访问追踪错误,如果是“空间不足”
请修改
[root@node-1 ~]# sudo vim /etc/elasticsearch/jvm.options 配置文件

# 设置 JVM 初始内存为 1G。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配内存

# Xms represents the initial size of total heap space
# 设置 JVM 最大可用内存为 512mb
# Xmx represents the maximum size of total heap space
-Xms 512mb
-Xmx 512mb

(1)安装elasticsearch-head插件
1.下载node安装包


#下载node安装包
[root@node-1 ~]# wget https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz 
# 创建elk文件
[root@node-1 ~]# mkdir /usr/share/elk 
# 解压node包
tar -xf node-v8.11.3-linux-x64.tar.xz -C /usr/share/elk/

2.更新防火墙

[root@node-1 ~]# firewall-cmd --permanent --add-port=9100/tcp

[root@node-1 ~]# firewall-cmd --permanent --add-port=9100/udp

[root@node-1 ~]# firewall-cmd --reload

3.配置node环境变量

[root@node-1 ~]#
# 编辑/etc/profile文件
vim /etc/profile  
# 配置NODE环境变量
export NODE_HOME=/usr/share/elk/node-v8.11.3-linux-x64  # 
export  PATH=$PATH:$NODE_HOME/bin 
# 使环境变量生效
[root@node-1 ~]# source /etc/profile 
# 查看node版本
[root@node-1 ~] #node -v

4.安装grunt

#安装grunt
[root@node-1 ~]# npm install grunt --save-dev

5.安装 grunt-cli

#安装 grunt-cli
[root@node-1 ~]# npm install -g grunt-cli

6.下载elasticsearch-head包

[root@node-1 ~]# wget https://github.com/mobz/elasticsearch-head/archive/master.zip  
[root@node-1 ~]# unzip master.zip #解压
[root@node-1 ~]# cd elasticsearch-head-master#切换路径
[root@node-1 ~]# npm install  #安装

npm install遇到报错问题

npm ERR! phantomjs-prebuilt@2.1.16 install: node install.js

报什么错就执行如下命令

[root@node-1 ~]# npm install phantomjs-prebuilt@2.1.16 --ignore-scripts

7.修改elasticsearch-head插件配置文件
修改elasticsearch-head安装目录下的配置文件Gruntfile.js,一般97行左右增加hostname属性,设置为:“*”,注意冒号后面要空一格!

connect:{
  server:{
    options:{
      hostname: '*',  #注意冒号: 后面的空格
      port: 9100,
      base: ','
      keepalive: true

    }
  }
}

8.更新防火墙


firewall-cmd --permanent --add-port=9100/tcp

firewall-cmd --permanent --add-port=9100/udp

firewall-cmd --reload

(2)Elasticsearch配置文件
在/etc/elasticsearch/elasticsearch.yml分别修改节点名称,上传到另外两台(node-2、node-3)主机

[root@node-2 ~]# /etc/elasticsearch/elasticsearch.yml
vim node.name: node-2
cluster.initial_master_nodes: ["node-2"]
discovery.seed_hosts: ["192.168.8.186:9300"]

[root@node-3 ~]# /etc/elasticsearch/elasticsearch.yml
vim node.name: node-3
cluster.initial_master_nodes: ["node-3"]
discovery.seed_hosts: ["192.168.8.186:9300"]

elasticsearch.yml配置文件如下

[root@node-1 ~]# vim /etc/elasticsearch/elasticsearch.yml

# 加入如下配置
#集群名称
cluster.name: cluster-es
#节点名称,每个节点的名称不能重复
node.name: node-1
#ip 地址,每个节点的地址不能重复
network.host: 0.0.0.0
network.bind_host: 0.0.0.0
#是不是有资格主节点
node.master: true
node.data: true
http.port: 9200
path.data: /var/lib/elasticsearch
path.logs: /var/lib/elasticsearch
#head 插件需要这打开这两个配置
http.cors.allow-origin: "*"
http.cors.enabled: true
http.max_content_length: 200mb
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#内部节点之间沟通端口
transport.tcp.port: 9300
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.8.185:9300","192.168.8.186:9300","192.168.8.187:9300"]
gateway.recover_after_nodes: 3
network.tcp.keep_alive: true
network.tcp.no_delay: true
transport.tcp.compress: true
node.max_local_storage_nodes: 3
#集群内同时启动的数据任务个数,默认是 2 个
cluster.routing.allocation.cluster_concurrent_rebalance: 16
#添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个

修改配置文件完成后记得重启elasticsearch

二、安装kibana

1.安装

# 安装logstash
[root@node-1 ~]# 
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-x86_64.rpm
#安装
[root@node-1 ~]# rpm -ivh kibana-7.8.0-x86_64.rpm
# 启动
[root@node-1 ~]# systemctl enable kibana  ##设置开机自启动
[root@node-1 ~]# systemctl start  kibana  ##启动kibana

2.配置

  1. kibana配置文件在/etc/kibana/kibana.yml文件进行配置这三行文件
[root@localhost ~]# vim /etc/kibana/kibana.yml 
server.port:5601 
server.host:"0.0.0.0"  
elasticsearch.host:["192.168.8.188:9200"]

2.修改配置文件完成后记得重启

[root@localhost ~]# systemctl restart kibana

3.更新防火墙

[root@localhost ~]# firewall-cmd --permanent --add-port=5601/tcp

[root@localhost ~]# firewall-cmd --permanent --add-port=5601/udp

[root@localhost ~]# firewall-cmd --reload

三、安装logstash
1.安装

#下载
[root@localhost ~]# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.8.0.rpm
#安装
[root@localhost ~]# rpm -ivh logstash-7.8.0.rpm
# 启动
[root@localhost ~]# systemctl enable logstash  #设置开机自启动

[root@localhost ~]# systemctl start  logstash  #启动logstas

四、安装filebeat
1.安装

# 下载
[root@localhost ~]# 
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.8.0-x86_64.rpm
#安装
[root@localhost ~]# 
rpm -ivh filebeat-7.8.0-x86_64.rpm
# 启动
[root@localhost ~]#
systemctl enable filebeat  ##设置开机自启动
[root@localhost ~]#
systemctl start  filebeat  ##启动logstash

2.更新防火墙

[root@localhost ~]#firewall-cmd --permanent --add-port=5044/tcp

[root@localhost ~]#firewall-cmd --permanent --add-port=5044/udp

[root@localhost ~]#firewall-cmd --reload

到这里ELKStack集群就部署完成了。

有关ELK集群部署(史上超详细)的更多相关文章

  1. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  2. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  3. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  4. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  5. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  6. Ruby,使用包含 TK GUI 的 ocra 部署一个 exe - 2

    Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答

  7. ruby-on-rails - NameError(未初始化常量 Unzipper::Zip)但仅在 Heroku 部署(Rails)上 - 2

    我有一个类unzipper.rb,它使用Rubyzip解压文件。在我的本地环境中,我可以成功解压缩文件,而无需使用require'zip'明确包含依赖项但是在Heroku上,我得到一个NameError(uninitializedconstantUnzipper::Zip)我只能通过使用明确的require来解决问题:为什么这在H​​eroku环境中是必需的,但在本地主机上却不是?我的印象是Rails自动需要所有gem。app/services/unzipper.rbrequire'zip'#OnlyrequiredforHeroku.Workslocallywithout!class

  8. ruby - Sinatra + Heroku + Datamapper 使用 dm-sqlite-adapter 部署问题 - 2

    出于某种原因,heroku尝试要求dm-sqlite-adapter,即使它应该在这里使用Postgres。请注意,这发生在我打开任何URL时-而不是在gitpush本身期间。我构建了一个默认的Facebook应用程序。gem文件:source:gemcuttergem"foreman"gem"sinatra"gem"mogli"gem"json"gem"httparty"gem"thin"gem"data_mapper"gem"heroku"group:productiondogem"pg"gem"dm-postgres-adapter"endgroup:development,:t

  9. 100个python算法超详细讲解:画直线 - 2

    1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva

  10. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

随机推荐