1. 用途

    ▷ 通过各个beat实时收集日志、传输至elasticsearch集群

    ▷ 通过kibana展示日志

  2. 实验架构

    名称:IP地址:CPU:内存

    kibana&cerebro:192.168.75.20:1核:2G

    es-1:192.168.75.21:2核:4G

    es-2:192.168.75.22:2核:4G

    es-3:192.168.75.23:2核:4G

各beat均安装在ES集群上,也就是三个es主机节点

  1. 软件安装
  • 版本说明:

    均为7.3.0版本
  • 注意事项

    各组件版本必须一致,elasticsearch必须3台及其以上且总数量为单数
  • 软件保存路径:/usr/local/src
  • 采用rpm文件方式安装
  • 官方下载地址:https://www.elastic.co/cn/downloads/past-releases

3.1 elasticsearch

3.1.1 安装

3台es均执行相同的安装步骤

echo "vm.max_map_count = 655350" >> /etc/sysctl.conf
sysctl -p
cd /usr/local/src
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-x86_64.rpm
rpm -vi elasticsearch-7.3.0-x86_64.rpm

默认配置文件路径:/etc/elasticsearch/

默认程序安装路径:/usr/share/elasticsearch/

默认存储文件路径:/var/lib/elasticsearch/

默认日志文件路径:/var/log/elasticsearch/

3.1.2 配置

# es-1主机

# cat /etc/elasticsearch/elasticsearch.yml | grep -v '^#'

# 集群名字
cluster.name: my-application # 节点名称
node.name: 192.168.75.21 # 数据路径
path.data: /var/lib/elasticsearch # 日志路径
path.logs: /var/log/elasticsearch # 本界面访问IP
network.host: 192.168.75.21 # 本届点访问端口
http.port: 9200 # 节点运输端口
transport.port: 9300 # 集群中其他主机列表
discovery.seed_hosts: ["192.168.75.21", "192.168.75.22","192.168.75.23"] # 首次启动全新的Elasticsearch集群时,在第一次选举中便对其票数进行计数的master节点的集合
cluster.initial_master_nodes: ["192.168.75.21", "192.168.75.22","192.168.75.23"] # 启用跨域资源共享
http.cors.enabled: true
http.cors.allow-origin: "*"
# es-2主机
# cat /etc/elasticsearch/elasticsearch.yml | grep -v '^#'
cluster.name: my-application
node.name: 192.168.75.22
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 192.168.75.22
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.75.21", "192.168.75.22","192.168.75.23"]
cluster.initial_master_nodes: ["192.168.75.21", "192.168.75.22","192.168.75.23"]
http.cors.enabled: true
http.cors.allow-origin: "*"
# es-3主机
# cat /etc/elasticsearch/elasticsearch.yml | grep -v '^#'
cluster.name: my-application
node.name: 192.168.75.23
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 192.168.75.23
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.75.21", "192.168.75.22","192.168.75.23"]
cluster.initial_master_nodes: ["192.168.75.21", "192.168.75.22","192.168.75.23"]
http.cors.enabled: true
http.cors.allow-origin: "*"

3.1.3 启动/重启/停止

systemctl start elasticsearch
systemctl stop elasticsearch
systemctl restart elasticsearch
systemctl status elasticsearch

3.1.4 查看集群健康、节点状态

# 注:第一个IP为集群中任一节点ip,第二个ip为界面名称

# elasticsearch启动后查看是否启动成功
curl -XGET "http://192.168.75.21:9200/_cluster/health?pretty=true" # 停止elasticsearch应用
curl -XPOST "http://192.168.75.21:9200/_shutdown" # 查看集群健康
curl 192.168.75.21:9200/_cluster/health?pretty # 检查集群状态
curl 192.168.75.21:9200/_cluster/stats?pretty # 节点状态
curl 192.168.75.21:9200/_nodes/process?pretty curl 192.168.75.21:9200/_nodes/192.168.75.21/process?pretty # 当你不知道有那些属性可以查看时,会返回可以查看的属性
curl '192.168.75.21:9200/_cat/'

3.2 kibana

3.2.1 安装

cd /usr/local/src
curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.3.0-x86_64.rpm
rpm -vi kibana-7.3.0-x86_64.rpm

默认配置文件路径:/etc/kibana/

默认程序安装路径:/usr/share/kibana/

3.2.3 配置

# cat /etc/kibana/kibana.yml| grep -v '^#'

# 访问端口号
server.port: 5601
# 访问地址
server.host: "192.168.75.20"
# 名称
server.name: "192.168.75.20"
# es集群地址
elasticsearch.hosts: ["http://192.168.75.21:9200", "http://192.168.75.22:9200","http://192.168.75.23:9200"]
# 中文界面
i18n.locale: "zh-CN"

3.2.3 启动/重启/停止

systemctl start kibana
systemctl stop kibana
systemctl restart kibana
systemctl status kibana

3.2.4 浏览器访问

地址: http://192.168.75.20:5601

3.3 cerebro

官方地址:https://github.com/lmenezes/cerebro

下载地址:https://github.com/lmenezes/cerebro/releases

前提条件:需要有java环境

wget https://github.com/lmenezes/cerebro/releases/download/v0.8.5/cerebro-0.8.5.tgz
tar xzf cerebro-0.8.5.tgz -C /usr/local # 配置ES服务器
# 非必须:如果经常使用的话,可以先在conf/application.conf中配置好ElasticSearch服务器地址
# 第一个是不加密的,第二个是加密的
hosts = [
{
host = "http://192.168.75.21:9200" # 设置集群中的一个地址
name = "Localhost cluster"
headers-whitelist = [ "x-proxy-user", "x-proxy-roles", "X-Forwarded-For" ]
}
# Example of host with authentication
# {
# host = "http://172.17.107.187:9203"
# name = "my-application"
# auth = {
# username = "elastic"
# password = "escluter123456"
# }
# }
] # 启动,默认使用9000端口
cerebro-0.8.1/bin/cerebro
[info] play.api.Play - Application started (Prod)
[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000 # 指定端口启动
bin/cerebro -Dhttp.port=8080 # 指定地址启动
bin/cerebro -Dhttp.address=192.168.75.20 # 使用浏览器访问http://192.168.75.20:9000

3.4 Filebeat

在三台es主机节点上进行安装,收集elasticsearch的日志,默认索引为filebeat-7.3.0-*

Filebeat 模块 elasticsearch 解析 Elasticsearch 创建的日志

# 下载并安装 Filebeat
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.0-x86_64.rpm
rpm -vi filebeat-7.3.0-x86_64.rpm # 修改 /etc/filebeat/filebeat.yml 以设置连接信息: setup.kibana:
host: "192.168.75.20:5601" output.elasticsearch:
hosts: ["192.168.75.21:9200","192.168.75.22:9200","192.168.75.23:9200"] # 启用和配置 elasticsearch 模块,在 /etc/filebeat/modules.d/elasticsearch.yml 文件中修改设置
filebeat modules enable elasticsearch # 启动 Filebeat
filebeat setup
service filebeat start

3.5 Metricbeat

在三台es主机节点上进行安装,收集es主机的日志,默认索引为metricbeat-7.3.0-*

# 下载并安装 metricbeat
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.3.0-x86_64.rpm
rpm -vi metricbeat-7.3.0-x86_64.rpm # 修改 /etc/metricbeat/metricbeat.yml 以设置连接信息: setup.kibana:
host: "192.168.75.20:5601" output.elasticsearch:
hosts: ["192.168.75.21:9200","192.168.75.22:9200","192.168.75.23:9200"] # 启用和配置 system 模块,在 /etc/metricbeat/modules.d/system.yml 文件中修改设置
metricbeat modules enable system # 启动 Metricbeat
metricbeat setup
service metricbeat start

3.6 Heartbeat

在三台es主机节点上进行安装,通过主动探测来监测服务的可用性,默认索引为heartbeat-7.3.0-*

# 下载并安装 heartbeat
curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-7.3.0-x86_64.rpm
rpm -vi heartbeat-7.3.0-x86_64.rpm # 修改 /etc/heartbeat/heartbeat.yml 以设置连接信息 setup.kibana:
host: "192.168.75.20:5601" output.elasticsearch:
hosts: ["192.168.75.21:9200","192.168.75.22:9200","192.168.75.23:9200"] # 添加监测,注意每台es节点主机ip不同,其中 <http://192.168.75.21:9200> 是受监测 URL
heartbeat.monitors:
- type: http
urls: ["http://192.168.75.21:9200"]
schedule: "@every 10s" # 启动 Heartbeat
heartbeat setup
service heartbeat-elastic start

部署elasticsearch(三节点)集群+filebeat+kibana的更多相关文章

  1. ambari单节点集群塔建

    配置2台机器,发别为ambari01.ambari03.ambari01上部署Ambari-server和Mirror server,另一台机器上部署agent. 一.配置静态IP 运行命令,让配置生 ...

  2. ElasticSearch 深入理解 三:集群部署设计

    ElasticSearch 深入理解 三:集群部署设计 ElasticSearch从名字中也可以知道,它的Elastic跟Search是同等重要的,甚至以Elastic为主要导向. Elastic即可 ...

  3. Windows下ELK环境搭建(单机多节点集群部署)

    1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...

  4. Elasticsearch系列---生产集群部署(下)

    概要 本篇继续讲解Elasticsearch集群部署的细节问题 集群重启问题 如果我们的Elasticsearch集群做了一些离线的维护操作时,如扩容磁盘,升级版本等,需要对集群进行启动,节点数较多时 ...

  5. 1.ElasticSearch系列之集群部署

    第一步:安装JDK JDK要求jdk1.8+,不安装也可以,ES自带JDK 第二步:系统配置 2.1 禁用交换区 sudo swapoff -a 2.2 开最大文件数的限制 编辑文件 /etc/sec ...

  6. k8s, etcd 多节点集群部署问题排查记录

    目录 文章目录 目录 部署环境 1. etcd 集群启动失败 解决 2. etcd 健康状态检查失败 解决 3. kube-apiserver 启动失败 解决 4. kubelet 启动失败 解决 5 ...

  7. 最新二进制安装部署kubernetes1.15.6集群---超详细教程

    00.组件版本和配置策略 00-01.组件版本 Kubernetes 1.15.6 Docker docker-ce-18.06.1.ce-3.el7 Etcd v3.3.13 Flanneld v0 ...

  8. 使用Kubespray在ubuntu上自动部署K8s1.9.0集群

    Kubespray 是 Kubernetes incubator 中的项目,目标是提供 Production Ready Kubernetes 部署方案,该项目基础是通过 Ansible Playbo ...

  9. ElasticSearch高可用集群环境搭建和分片原理

    1.ES是如何实现分布式高并发全文检索 2.简单介绍ES分片Shards分片技术 3.为什么ES主分片对应的备分片不在同一台节点存放 4.索引的主分片定义好后为什么不能做修改 5.ES如何实现高可用容 ...

随机推荐

  1. logger(二)logback简介及其实现原理

    一.logback简介 logback是log4j创始人写的,性能比log4j要好,目前主要分为3个模块 logback-core:核心代码模块 logback-classic:log4j的一个改良版 ...

  2. pip requirements.txt

    生成文件 pip freeze > requirements.txt 依赖库会导到于requirements.txt 比如:   image.png 从requirements.txt安装依赖库 ...

  3. CDH5.13快速体验

    相对于易用性很差Apache Hadoop,其他商业版Hadoop的性能易用性都有更好的表现,如Cloudera.Hortonworks.MapR以及国产的星环,下面使用CDH(Cloudera Di ...

  4. Jupyter Notebook 更换主题(背景、字体)

    通过命令行窗口或 Anaconda Prompt 窗口 1.安装 Jupyter 主题 pip install jupyterthemes 2.更新 Jupyter 主题 (可选) pip insta ...

  5. python 和 R 语言中的等差数列

    等差数列的通项公式:an = a0 + n*d. 数学上 n 是可以取遍整个整个正整数集的,在现实中,n  是有范围的. 1.R 语言用 seq()  函数产生等差数列: 2.python 中 ran ...

  6. Java精通并发-Condition编程模式详解与分析

    继续上一次https://www.cnblogs.com/webor2006/p/11890688.html的Condition接口说明进行阅读: 上面这个程序会在之后手动来实现一下,说实话这种写法在 ...

  7. WPF 用户控件的自定义依赖属性在 MVVM 模式下的使用备忘

    依赖属性相当于扩充了 WPF 标签的原有属性列表,并可以使用 WPF 的绑定功能,可谓是十分方便的:用户控件则相当于代码重用的一种方式:以上几点分开来还是比较好理解的,不过要用到MVVM 模式中,还是 ...

  8. ubuntu配置定时任务crontab何保存退出

    crontab -e配置完成后,如何把保存并退出? 1.Ctrl+o 写入 2.出现“FIile name to Write...”,输入Enter 3.Ctrl+x 保存输出 提示“crontab: ...

  9. Comet OJ 夏季欢乐赛 分配学号

    Comet OJ 夏季欢乐赛 H 分配学号 题目传送门 题目描述 今天,是JWJU给同学们分配学号的一天!为了让大家尽可能的得到自己想要的学号,鸡尾酒让大家先从 [1,10^{18}][1,1018] ...

  10. Problem B. 即时战略 ———2019.10.12

    题目:   代码~:感谢土蛋 #include <iostream> #include <cstring> #include <cmath> #include &l ...