ELK环境部署

目录

环境准备

Elasticsearch 部署

安装Elasticsearch

Elasticsearch-head 插件

安装node 

安装 phantomjs

安装 Elasticsearch-head

Logstash 安装部署

Kibana 安装部署

ELFK


本章纯搭建过程,几乎无任何注释解释

环境准备

ELK的搭建和测试,至少需要三台机器

172.16.233.101:apache节点

172.16.233.102:node1节点

172.16.233.103:node2节点

首先几台机器均需:

关闭防火墙

关闭增强功能

node1和node2节点需要配置主机名与IP解析

vim /etc/hosts

172.16.233.102 node1

172.16.233.103 node3

保存并退出

确定机器中都装有java

java -version 查看,如果没有直接 yum install

(也可以使用jdk)

Elasticsearch 部署

安装Elasticsearch

(注:以下操作均在node1和node2节点上完成,可以用xshell自带的工具实现,点击工具—>发送键输入到所有会话,将apache节点关闭即可)

安装 elasticsearch 包,上传至/opt 目录下

直接搜索,在官网上下载elasticsearch-rpm 包

cd /opt

rpm -ivh elasticsearch-6.6.1.rpm 

加载系统服务

systemctl daemon-reload

systemctl enable elasticsearch.service

修改elasticsearch主配置文件

以防万一,先做一个备份

cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak

vim /etc/elasticsearch/elasticsearch.yml 

--17--取消注释,指定集群名字
cluster.name: my-elk-cluster

--23--取消注释,指定节点名字,这里可以取消发送键给所有终端,分别改名,node1节点为node1,node2节点为node2
node.name: node1

--33--取消注释,指定数据存放路径
path.data: /data/elk_data

--37--取消注释,指定日志存放路径
path.logs: /var/log/elasticsearch/

--43--取消注释,改为在启动的时候不锁定内存
bootstrap.memory_lock: false

--55--取消注释,设置监听地址,0.0.0.0代表所有地址
network.host: 0.0.0.0

--59--取消注释,ES 服务的默认监听端口为9200
http.port: 9200

--68--取消注释,集群发现通过单播实现,指定要发现的节点 node1、node2
discovery.zen.ping.unicast.hosts: ["node1", "node2"]

保存并退出

查看配置文件中刚刚取消注释的并修改的行

grep -v "^#" /etc/elasticsearch/elasticsearch.yml

创建data 数据存放目录并赋权

mkdir -p /data/elk_data

chown elasticsearch:elasticsearch /data/elk_data

启动elasticsearch

systemctl start elasticsearch.service

查看端口号 9200

netstat -antp | grep 9200

测试

浏览器访问 172.16.233.102:9200  或者 172.16.233.103:9200   都可以,可以查看节点信息

访问  172.16.233.102:9200/_cluster/health?pretty  或者另一节点

查看集群监控状况,status 值为green ,表示节点正常运行

如果显示为黄色,说明数据完整,但副本有问题

如果显示为红色,那就说明连数据都不完整

这种方法虽然能查看集群健康状态以及其他信息,但其实是不太友好的,字段太过密集,也不方便操作

可以通过安装 Elasticsearch-head 插件,更方便地管理集群

Elasticsearch-head 插件

Elasticsearch 在 5.0 版本后,Elasticsearch-head 插件需要作为独立服务进行安装,需要使用npm工具(NodeJS的包管理工具)安装。

安装 Elasticsearch-head 需要提前安装好依赖软件 node 和 phantomjs

node 和 phantomjs 的安装包都可以在官网直接下载

将安装包或压缩包都放到 /opt 下

安装node 

yum install -y gcc gcc-c++ make 

cd /opt 

tar zxvf node-v8.2.1.tar.gz

cd node-v8.2.1/

./configure

make && make install            #这里内存和处理器核数最好高一点,不然需要很久

安装 phantomjs

同样的

tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/

cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin

cp phantomjs /usr/local/bin

安装 Elasticsearch-head

tar zxvf elasticsearch-head.tar.gz -C /usr/local/src/

cd /usr/local/src/elasticsearch-head/

npm install

修改Elasticsearch 主配置文件

vim /etc/elasticsearch/elasticsearch.yml

G到行尾,在末尾添加如下两行内容

http.cors.enabled: true                               #开启跨域访问支持,默认为 false
http.cors.allow-origin: "*"                            #指定跨域访问允许的域名地址为所有

保存退出

重启 elasticsearch 服务

systemctl restart elasticsearch

启动 elasticsearch-head 服务

elasticsearch-head 启动需要进入目录下启动,进程需要读取该目录下的gruntfile.js 文件

cd /usr/local/src/elasticsearch-head/

npm run start &

显示如下内容说明启动成功 ↓

> elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
> grunt server 

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100

查看9100 端口

访问172.16.233.102:9100 或 103

很显而易见,正上方健康值绿色就代表集群正常

我们插入一条索引,索引为 index-demo1 ,类型为test

curl -X PUT 'localhost:9200/index-demo1/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

刷新页面

Logstash 安装部署

(在apache节点上操作)

安装 apache 服务

yum -y install httpd

systemctl start httpd

选择相应的版本下载

Download Logstash Free | Get Started Now | Elastic

rpm -ivh logstash-6.6.1.rpm

systemctl start logstash.service                      

systemctl enable logstash.service

做一个软连接方便系统识别

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

测试Logstash

logstash -e 'input { stdin{} } output { stdout{} }'

…………

…………

等待时机输入随便一个网址

www.baidu.com    

ctrl c 取消

chmod +r /var/log/messages                        #让 Logstash 可以读取日志

vim /etc/logstash/conf.d/system.conf

input {
    file{
        path =>"/var/log/messages"
        type =>"system"
        start_position =>"beginning"
    }
}
output {
    elasticsearch {
        hosts => ["172.16.233.102:9200"]
        index =>"system-%{+YYYY.MM.dd}"
    }
}

保存并退出

重启 Logstash 服务

systemctl restart logstash  

Kibana 安装部署

(在node节点上操作,选一个节点即可)

同样在官网可以选择相应的版本进行下载

Download Kibana Free | Get Started Now | Elastic

右侧的

可以选择版本

放在 /opt 下

rpm -ivh kibana-6.6.1-x86_64.rpm

编辑 Kibana 主配置文件

vim /etc/kibana/kibana.yml

--2行--取消注释,Kiabana 服务的默认监听端口为5601
server.port: 5601

--7行--取消注释,设置 Kiabana 的监听地址,0.0.0.0代表所有地址
server.host: "0.0.0.0"

--28行--取消注释,设置和 Elasticsearch 建立连接的地址和端口
elasticsearch.hosts: ["http://192.168.10.13:9200"] 

--37行--取消注释,设置在 elasticsearch 中添加.kibana索引
kibana.index: ".kibana"

保存退出

如果没有在对应的行找到内容,可能是版本不同,在其他行寻找一下,内容是一致的

启动Kibana 服务

systemctl start kibana.service

systemctl enable kibana.service

验证

浏览器访问 172.16.233.102:5601

会进入到 Kibana 的welcome 界面

Kibana 部署就完成了

ELFK

增加一台节点服务器 Filebeat 节点(172.16.233.104)

在 Filebeat 节点上操作

安装 

tar zxvf filebeat-6.2.4-linux-x86_64.tar.gz

mv filebeat-6.2.4-linux-x86_64/ /usr/local/filebeat

编辑主配置文件

vim /usr/local/filebeat/filebeat.yml

filebeat.prospectors:

- type: log                                 #指定 log 类型,从日志文件中读取消息

enabled: true

paths:

- /var/log/messages                               #指定监控的日志文件

 - /var/log/*.log

 fields:                                   #可以使用 fields 配置选项设置一些参数字段添加到 output 中

service_name: filebeat

log_type: log

service_id: 172.16.233.104

''''''''''''''''''''''''''''''''''''''''''Elasticsearch output'''''''''''''''''''''''''''''''''''''''''
(全部注释掉)

''''''''''''''''''''''''''''''''''''''''''   Logstash   output  '''''''''''''''''''''''''''''''''''''''''
output.logstash:

hosts: ["172.16.233.104:5044"]               #指定 logstash 的 IP 和端口

在 Logstash 组件所在节点上新建一个 Logstash 配置文件

cd /etc/logstash/conf.d

vim logstash.conf
input {
    beats {
        port => "5044"
    }:
}
output {
    elasticsearch {
        hosts => ["172.16.233.102:9200"]
        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
    stdout {
        codec => rubydebug
    }
}

保存退出

logstash -f logstash.conf

安装完成

想要测试 则浏览器访问

172.16.233.102:5601

点击 Management --> Index Pattern --> Create Index Pattern --> 选择输入 Index Pattern --> 下一步 --> Time Filter field name --> @timestarmp

单机 Discover 按钮课查看图标信息及日志信息

按钮添加索引  filebeat-*

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

数据飞轮:打造业务增长的持续循环

在当今数据驱动的世界中,企业必须利用数据的力量才能保持竞争力。然而,仅仅收集和分析数据是不够的;企业必须能够从他们的数据中创造一个持续增长的循环,才能保持成功。其中一种方法就是创建数据飞轮。接下来让我们来探讨一下什么…

2024.9.20 Python模式识别新国大EE5907,PCA主成分分析,LDA线性判别分析,GMM聚类分类,SVM支持向量机

1.PCA 主成分分析用于特征提取、可视化和分类 根据要求,我在第一个代码框中完成了从指定路径提取图像数据,将其转换为灰度图像并将其展平。在这里,我将数字 88 设置为我的照片的标签,然后将所有 10 张照片传入代码。然后我定义了…

在渗入测试和峰谷测试中选Flat还是Ramp-up?

前面的一篇文章中我们为大家介绍了在基准测试和规划测试中选Flat还是Ramp-up,具体应该怎么配置,在这篇文章里,我们继续为大家介绍在渗入测试和峰谷测试中选Flat还是Ramp-up? 渗入测试(疲劳强度测试) 使用固…

全球多个知名社媒平台长期监视青少年儿童用户,每年赚取数十亿美元

根据美国联邦贸易委员会(FTC)工作人员的一份报告显示,社交媒体和视频流媒体公司一直在对用户,尤其是儿童和青少年进行广泛的监控,隐私保护不足,并通过数据货币化每年赚取数十亿美元。 此调查始于2020 年 1…

Oracle数据库逻辑与物理结构操作

一、实验步骤 1、查询所有DBA和USER开头的静态数据字典 2、查询所有V$动态性能视图 3、查询当前数据库中的表空间信息 ①查询和TABLESPACE相关的数据字典 ②通过动态性能视图查询表空间信息 ③通过数据字典查询表空间信息 4、操作数据文件 (1)向 ORC…

Machine Learning Specialization 学习笔记(3)

文章目录 前言一、神经网络基本概念基本组成工作流程训练过程类型应用举例不同层次特征的学习 为什么从基础特征到复杂特征逐渐推进什么是感受野更简单的解释具体示例总结 二、TensorFlow实现简单神经网络安装及环境配置数据预处理标准化 Dense层Convolutional Layer训练DEBUG …

Windows环境下搭建MySQL主从同步实现读写分离

文章目录 前言读写分离的基本原理 环境介绍及说明主库my.ini初始配置创建用于同步的数据库和表 一、新增mysql从库1.复制mysql文件夹2.修改从库的my.ini3.安装到windows服务 二、在my.ini中配置主、从库相关参数1.主库新增配置参数不同版本参数不同问题 2.从库新增配置参数3.删…

CSS 复合选择器简单学习

目录 1. Emmet 语法 1.1 快速生成 HTML 结构语法 1.2 快速生成 CSS 样式 1.3 格式化工具 2. 调试 2.1 打开调试工具 2.2 使用调试工具 3. 复合选择器 3.1 后代选择器 3.2 子选择器 3.3 并集选择器 3.4 伪类选择器 3.3.1 链接伪类选择器 3.3.2 :focus 伪类选择器 …

7--SpringBoot-后端开发、原理详解(面试高频提问点)

目录 SpringBoot原理 起步依赖 自动配置 配置优先级 Bean设置 获取Bean 第三方Bean SpringBoot原理 内容偏向于底层的原理分析 基于Spring框架进行项目的开发有两个不足的地方: 在pom.xml中依赖配置比较繁琐,在项目开发时,需要自己去找…

VuePress搭建文档网站/个人博客(详细配置)主题配置-侧边栏配置

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

洞悉市场先机,Vatee万腾平台助力企业精准决策

在瞬息万变的商业环境中,每一个市场动向都可能成为企业兴衰的关键。因此,洞悉市场先机,做出精准决策,成为了企业持续发展和保持竞争力的核心要素。Vatee万腾平台,凭借其强大的数据分析能力和智能化技术,正成…

生信初学者教程(八):数据收集

文章目录 数据分布表达谱数据最终数据分布自动下载GSE14520下载GSE149614下载其它数据在确定研究疾病为肝细胞癌**(Liver Hepatocellular Carcinoma: HCC)**后,系统地进行了文献回顾,专注于搜索与HCC相关的荟萃分析文章,以获取该领域的研究动态和已有成果。为了支持的研究…

dev c++输出中文乱码解决 printf乱码解决

把编码换成utf8就行 打开eiditor options

数据结构修炼——顺序表和链表的区别与联系

目录 一、线性表二、顺序表2.1 概念及结构2.2 接口实现2.3 一些思考以及顺序表的缺点 三、链表3.1 概念及结构3.2 链表的分类3.3 链表的实现3.3.1 无头单向非循环链表3.3.2 带头双向循环链表 四、顺序表和链表的区别 一、线性表 线性表(linear list)是n…

叶片检测系统源码分享

叶片检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

地平线4登录xbox后提示需要登录档案怎么解决

这个游戏是真nt(在联机上),典型搞联机2小时游玩半小时,多半时间都花费在联机上了,不是为了联机和朋友跑车,早给他卸载了。 本人的游戏问题:看了一些视频感觉没什么作用,我的现象就是…

【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第一篇-原理】

如果想直接制作,请看【第二篇】内容 这次做一个这样的东西,通过在2DRT上实时绘制,生成动态的体积纹理,也就是可以runtime的VDB 设想的文章流程: 对原理进行学习制作体积渲染制作实时绘制 第一篇(本篇)是对“…

Java面试——集合篇

1.Java中常用的容器有哪些? 容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 如图: 面试官追问:说说集合有哪些类及他们各自的区别和特点? S…

Web+Mysql——MyBatis

MyBatis 目标 能够完成Mybatis代理方式查询数据能够理解Mybatis核心配置文件的配置 1,Mybatis 1.1 Mybatis概述 1.1.1 Mybatis概念 MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发 MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由…

idea启动oom了解决

解决 Error:java: java.lang.OutOfMemoryError: WrappedJavaFileObject[org.jetbrains.jps.javac.InputFileObject[file:///D:/mingan/pb/backend/src/main/java/com/cy/backend/service/impl/StorageServiceImpl.java]]pos36199: WrappedJavaFileObject[org.jetbrains.jps.j…