ELK + filebeat集群部署
ELK + filebeat集群部署
一、ELK简介
1. Elasticsearch
Elasticsearch是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。它被用作全文检索、结构化搜索、分析以及这三个功能的组合
2.Logstash
Logstash是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理。
3.Kibana
kibana是一个开源和免费的工具,它可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以帮助您汇总、分析和搜索重要数据日志。
4.ELK版本信息为7.2.1,你可以从官网下,也可以直接从下面地址下载:
https://artifacts.elastic.co/downloads/logstash/logstash-7.2.1.tar.gz https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz https://artifacts.elastic.co/downloads/kibana/kibana-7.2.1-linux-x86_64.tar.gz
官网地址:https://www.elastic.co/cn/downloads/
百度网盘地址:
链接: https://pan.baidu.com/s/1G7zfve-XnWwQcSQx6wqHuA
提取码: 8816
二、环境准备
1.三台Linux服务器,系统统一
[root@ELK1 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
2.角色划分
|
NODE |
IP |
节点类型 |
|
ELK1 |
192.168.3.181 |
数据、主节点(安装elasticsearch、logstash、kabana、filebeat) |
|
ELK2 |
192.168.3.182 |
数据节点(安装elasticsearch、filebeat) |
|
ELK3 |
192.168.3.183 |
数据节点(安装elasticsearch、filebeat) |
3.安装jdk11
这里安装jdk11,如果安装9或者8会报错,具体可看官方文档:
https://www.elastic.co/cn/support/matrix
https://www.elastic.co/guide/en/elasticsearch/reference/7.2/setup.html
下载安装包
[root@ELK1 tools]# pwd /home/tools [root@ELK tools]# wget https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz
[root@ELK1 tools]# mkdir -p /home/elk
百度网盘
链接:https://pan.baidu.com/s/1QK82p1eb-NbgxaFLKsSlqg
提取码:9dx8
解压到指定目录
[root@ELK1 tools]# tar -xzvf jdk-11.0.4_linux-x64_bin.tar.gz -C /usr/local/jdk
配置环境变量
#set java environment
JAVA_HOME=/usr/local/jdk/jdk-11.0.1
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
使环境变量生效
[root@ELK1 tools]# source /etc/profile
查看
[root@ELK1 tools]# java -version
openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
三、 安装Elasticsearch(简称ES)集群
1.下载及解压
#下载
[root@ELK1 tools]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz #创建目录
[root@ELK1 tools]# mkdir -p /home/elk #解压
[root@ELK1 tools]# tar -zvxf elasticsearch-7.2.1-linux-x86_64.tar.gz -C /home/elk
2.创建用户及授权
ElasticSerach要求以非root身份启动,在每个节点创建用户及用户组
[root@ELK1 tools]# groupadd elasticsearch
[root@ELK1 tools]# useradd elasticsearch -g elasticsearch
在每个节点上创建数据data和logs目录:
[root@ELK1 tools]# mkdir -p /data/elasticsearch/{data,logs}
[root@ELK1 tools]# chown -R elasticsearch. /data/elasticsearch/
[root@ELK1 tools]# chown -R elasticsearch. /home/elk/elasticsearch-7.2.1
3.修改elasticsearch.yml配置文件
[root@ELK1 elk]# vim /home/elk/elasticsearch-7.2.1/config/elasticsearch.yml path.data: /data/elasticsearch/data #数据
path.logs: /data/elasticsearch/logs #日志
cluster.name: ELK1 # 集群中的名称
cluster.initial_master_nodes: ["192.168.3.181","192.168.3.182","192.168.3.183"] #主节点
node.name: ELK1 # 该节点名称,与前面配置hosts保持一致
node.master: true # 意思是该节点是否可选举为主节点
node.data: true # 表示这不是数据节点
network.host: 0.0.0.0 # 监听全部ip,在实际环境中应为一个安全的ip
http.port: 9200 # es服务的端口号
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["192.168.3.181", "192.168.3.182", "192.168.3.183"] # 配置自动发现
discovery.zen.minimum_master_nodes: 2 #防止集群“脑裂”,需要配置集群最少主节点数目,通常为 (主节点数目/2) + 1
4.修改elasticsearch的JVM内存
elasticesearch在实际生产中非常消耗cpu,需要将初始申请的JVM内存调高,默认是1G
[root@ELK1 elk]# vim /home/elk/elasticsearch-7.2.1/config/jvm.options #修改这两行
-Xms4g #设置最小堆的值为4g
-Xmx4g #设置组大堆的值为4g
5.启动elasticsearch
其它两个节点也类似配置,只需要修改下node.name:即可,在配置好相应的节点后,首先启动主节点,然后在启动相应节点
[root@ELK1 elk]# su - elasticsearch
Last login: Mon Aug 12 09:58:23 CST 2019 on pts/1 [elasticsearch@ELK1 ~]$ cd /home/elk/elasticsearch-7.2.1/bin/
[elasticsearch@ELK1 bin]$ ./elasticsearch -d
查看端口号,分别为9200和9300
[root@ELK1 tools]# netstat -lntup|grep java
tcp6 0 0 192.168.3.181:9200 :::* LISTEN 9721/java
tcp6 0 0 192.168.3.181:9300 :::* LISTEN 9721/java
集群基本操作
#查看集群的健康信息
curl '192.168.3.181:9200/_cluster/health?pretty' #查看集群的详细信息
curl '192.168.3.181:9200/_cluster/state?pretty' #查询索引列表
curl -XGET http://192.168.3.181:9200/_cat/indices?v #创建索引
curl -XPUT http://192.168.3.181:9200/customer?pretty #查询索引
curl -XGET http://192.168.3.181:9200/customer/external/1?pretty #删除索引
curl -XDELETE http://192.168.3.181:9200/customer?pretty #删除指定索引
curl -XDELETE 192.168.3.181:9200/nginx-log-2019.08 #删除多个索引
curl -XDELETE 192.168.3.181:9200/system-log-2019.0606,system-log-2019.0607 #删除所有索引
curl -XDELETE 192.168.3.181:9200/_all #在删除数据时,通常不建议使用通配符,误删后果会很严重,所有的index都可能被删除,为了安全起见需要禁止通配符,可以在elasticsearch.yml配置文件中设置禁用_all和*通配符
action.destructive_requires_name: true
四、安装logstash
在主节点上进行部署
1.下载解压
#下载
[root@ELK1 tools]# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.1.tar.gz #解压
[root@ELK1 tools]# tar -zvxf logstash-7.2.1.tar.gz -C /home/elk #创建数据及日志目录
[root@ELK1 tools]# mkdir -p /data/logstash/{logs,data}
2.修改logstash配置文件
[root@ELK1 tools]# vim /home/elk/logstash-7.2.1/config/logstash.yml http.host: "ELK1"
path.data: /data/logstash/data
path.logs: /data/logstash/logs
xpack.monitoring.enabled: true #kibana监控插件中启动监控logstash
xpack.monitoring.elasticsearch.hosts: ["192.168.3.181:9200","192.168.3.182:9200","192.168.3.183:9200"]
3.创建配置文件
[root@ELK1 tools]# vim /home/elk/logstash-7.2.1/config/logstash.conf
input {
beats {
port => 5044
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["192.168.3.181:9200","192.168.3.182:9200","192.168.3.183"]
}
}
4.启动服务
[root@ELK1 tools]# cd /home/elk/logstash-7.2.1/
[root@ELK1 logstash-7.2.1]# nohup bin/logstash -f config/logstash.conf &
五、安装kibana
1.下载及解压
#进入工具目录
[root@ELK1 tools] cd /home/tools #下载
[root@ELK1 tools] wget https://artifacts.elastic.co/downloads/kibana/kibana-7.2.1-linux-x86_64.tar.gz #解压
[root@ELK1 tools] tar xf kibana-7.2.1-linux-x86_64.tar.gz -C /home/elk #创建日志目录
mkdir -p /data/kibana/logs/
2.修改kibana配置文件
[root@ELK1 tools]# vim /home/elk/kibana-7.2.1-linux-x86_64/config/kibana.yml server.port: 5601 # 配置kibana的端口
server.host: 192.168.3.181 # 配置监听ip(设置本地ip使用nginx认证登录)
elasticsearch.hosts: ["http://192.168.3.181:9200","http://192.168.3.182:9200","http://192.168.3.183:9200"] # 配置es服务器的ip
logging.dest: /data/kibana/logs/kibana.log # 配置kibana的日志文件路径,默认messages
i18n.locale: "zh-CN" #配置中文语言
3.启动服务
[root@ELK1 tools]# cd /home/elk/kibana-7.2.1-linux-x86_64/
[root@ELK1 kibana-7.2.1-linux-x86_64]# nohup bin/kibana --allow-root &
六、安装filebeat
1.下载及解压
#进入工具目录
[root@ELK1 kibana-7.2.1-linux-x86_64]# cd /home/tools/ #下载
[root@ELK1 tools]#
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.1-linux-x86_64.tar.gz #解压
[root@ELK1 tools]# tar -zvxf filebeat-7.2.1-linux-x86_64.tar.gz -C /home/elk/
2.修改filebeat配置文件
[root@ELK1 tools]# vim /home/elk/filebeat-7.3.0-linux-x86_64/filebeat.yml #=========================== Filebeat inputs =============================
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/access.log
fields:
document_type: nginx
#============================= Filebeat modules ===============================
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false #==================== Elasticsearch template setting ==========================
setup.template.settings:
index.number_of_shards: 1
#============================== Kibana =====================================
setup.kibana:
host: "192.168.3.181:5601" #----------------------------- Logstash output --------------------------------
output.logstash:
hosts: ["192.168.3.181:5044"]
#================================ Processors =====================================
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
如果需要添加多个日志,只需要添加
- type: log
enabled: true
paths:
- /var/log/*.log
3.启动filebeat
[root@ELK1 tools]# cd /home/elk/filebeat-7.3.0-linux-x86_64/
[root@ELK1 filebeat-7.3.0-linux-x86_64]# nohup ./filebeat -e -c filebeat.yml &
通过tail -f nohup.out 可以看到我们的服务已经启动!
ELK + filebeat集群部署的更多相关文章
- ELK5.2+kafka+zookeeper+filebeat集群部署
架构图 考虑到日志系统的可扩展性以及目前的资源(部分功能复用),整个ELK架构如下: 架构解读 : (整个架构从左到右,总共分为5层) 第一层.数据采集层 最左边的是业务服务器集群,上面安装了file ...
- Windows下ELK环境搭建(单机多节点集群部署)
1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...
- zookeeper集群+kafka集群 部署
zookeeper集群 +kafka 集群部署 1.Zookeeper 概述: Zookeeper 定义 zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目 Zooke ...
- ELK+Kafka集群日志分析系统
ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...
- ActionMQ集群部署
ActiveMQ集群部署 一.应用场景 消息中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题.实现高性能,高可用,可伸缩和最终一致性架构.是大型分布式系统不可缺少的中间件.目 ...
- centos7搭建ELK Cluster集群日志分析平台(四):Fliebeat-简单测试
续之前安装好的ELK集群 各主机:es-1 ~ es-3 :192.168.1.21/22/23 logstash: 192.168.1.24 kibana: 192.168.1.25 测试机:cli ...
- centos7搭建ELK Cluster集群日志分析平台(三):Kibana
续 centos7搭建ELK Cluster集群日志分析平台(一) 续 centos7搭建ELK Cluster集群日志分析平台(二) 已经安装好elasticsearch 5.4集群和logst ...
- centos7搭建ELK Cluster集群日志分析平台(二):Logstash
续 centos7搭建ELK Cluster集群日志分析平台(一) 已经安装完Elasticsearch 5.4 集群. 安装Logstash步骤 . 安装Java 8 官方说明:需要安装Java ...
- centos7搭建ELK Cluster集群日志分析平台(一):Elasticsearch
应用场景: ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用.易用的监控架构, 很多公司利用它来搭建可视化的海量日志分析平 ...
随机推荐
- javascript 链式调用+构造函数
前几天面试,有一个问题是使用构造函数实现链式调用,后面查看了一些简单的资料,整理一下 首先,先说一下JS 中构造函数和普通函数的区别,主要分为以下几点 1.构造函数也是一个普通函数,创建方式和普通函数 ...
- NOIP2002-字串变换【双向BFS】
NOIP2002-字串变换 Description 已知有两个字串A,BA,B及一组字串变换的规则(至多66个规则): A_1A1 ->B_1B1 A_2A2 -> B_2B2 规 ...
- 【Python】Python读取文件报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0x99 in position 20: illegal multibyte sequence
环境描述 text.txt 今天的天气不错 是个皻的选择 读取文件的代码 #!/usr/bin/python #-*- coding:UTF-8 -*- f = open(r'D:\Python\Py ...
- Linux小记 -- [已解决]Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
问题描述 操作系统:Ubuntu Server 18.04 LTS Ubuntu每次启动时产生如下motd(message of today)输出 Failed to connect to https ...
- input 输入框效验
input 输入框效验 1:只能输入正整数: <el-input v-model.number="formData.projectNum" type='number' min ...
- system系统调用返回值判断命令是否执行成功
system函数对返回值的处理,涉及3个阶段: 阶段1:创建子进程等准备工作.如果失败,返回-1. 阶段2:调用/bin/sh拉起shell脚本,如果拉起失败或者shell未正常执行结束(参见备注1) ...
- FireMonkey 绘图(1)
FireMonkey 绘图(1) FMX 的 Canvas 在不同的系统上会分别使用:WinVista.Win7: D2D (FMX.Canvas.D2D.pas)WinXP: GDI+ (FMX.C ...
- Tensorflow Learning1 模型的保存和恢复
CKPT->pb Demo 解析 tensor name 和 node name 的区别 Pb 的恢复 CKPT->pb tensorflow的模型保存有两种形式: 1. ckpt:可以恢 ...
- HTML5实现绘制几何图形
HTML5新增了一个<canvas.../>属性.该元素自身并不绘制图形,只是相当于一张空画布.如果开发者需要向<canvas.../>上绘制图形则必须使用JavaScript ...
- 【Linux开发】如何查看Linux kernel的内置模块驱动列表和进程ID
[Linux开发]如何查看Linux kernel的内置模块驱动列表和进程ID 标签:[Linux开发] 命令: cat /lib/modules/$(uname -r)/modules.builti ...