ELK环境部署

news2024/11/15 10:02:16

目录

环境准备

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.coloradmin.cn/o/2149649.html

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

相关文章

力扣(LeetCode)每日一题 2576. 求出最多标记下标

题目链接https://leetcode.cn/problems/find-the-maximum-number-of-marked-indices/description/?envTypedaily-question&envId2024-09-12 思路: 先排序,然后定义双指针 left,right,贪心遍历,左指针在中间&…

机器狗与无人机空地协调技术分析

随着科技的飞速发展,机器狗与无人机作为智能机器人领域的杰出代表,正逐步在军事侦察、灾害救援、环境监测、农业植保等多个领域展现出巨大的应用潜力。本文旨在深入探讨机器狗与无人机之间的空地协调技术,分析其在复杂环境中的协同作业机制、…

轻松打造:用Python实现手机与电脑间的简易消息系统

展示🎥 观看视频:👀,这是之前完成的一个项目,但今天我们的重点不是这个哦。 告别往昔,启航新篇章 现象🌟 智能互动:📱 我们每天都在享受与智能设备的互动,…

作为HR,如何考察候选人的沟通能力

如何考察候选人的沟通能力。沟通能力,这个听起来简单,实际上却是一个非常复杂的技能,它关乎到一个人能否有效地传递信息,理解他人,并且在团队中发挥积极的作用。 作为HR,我们应该怎样才能精准地把握住候选…

鸿蒙开发(HarmonyOS)组件化浅谈

众所周知,现在组件化在移动开发中是很常见的,那么组件化有哪些好处: 1. 提高代码复用性:组件化允许将应用程序的不同功能模块化,使得这些模块可以在不同的项目中重复使用,从而提高开发效率并减少重复工作。…

JAVA并发编程系列(9)CyclicBarrier循环屏障原理分析

拼多多2面,还是模拟拼团,要求用户拼团成功后,提交订单支付金额。 之前我们在系列(8)《CountDownLatch核心原理》,实现过拼团场景。但是CountDownLatch里调用countDown()方法后,线程还是可以继续执行后面的代码&#xf…

【云安全】云上资产发现与信息收集

一、云基础设施组件 1、定义 在云计算基础架构中,基础设施组件通常包括:计算、存储、网络和安全等方面的资源。例如,计算资源可以是虚拟机、容器或无服务器计算引擎;存储资源可以是对象存储或块存储;网络资源可以是虚拟…

数字电路与逻辑设计-计数器逻辑功能测试

一.实验目的 1.验证用触发器构成的计数器计数原理; 2.掌握测试中规模集成计数器功能的方法; 二.实验原理 时序逻辑电路中,有一种电路称为计数器,计数器是用来对时钟脉冲进行计数的…

稳联Profinet转Canopen网关携手伺服,高效提升生产效率

在当今的工业生产领域,追求高效、精准和可靠的生产方式是企业不断努力的方向。稳联技术Profinet转Canopen(WL-ABC3033)网关与伺服系统的携手合作,为提高生产效率带来了新的机遇和突破。 实现无缝通信,优化生产流程稳联…

Flink提交任务

第3章 Flink部署 3.1 集群角色 3.2 Flink集群搭建 3.2.1 集群启动 0)集群规划 表3-1 集群角色分配 具体安装部署步骤如下: 1)下载并解压安装包 (1)下载安装包flink-1.17.0-bin-scala_2.12.tgz,将该jar包…

无人机之控制距离篇

无人机的控制距离是一个复杂且多变的概念,它受到多种因素的共同影响。以下是对无人机控制距离及其影响因素的详细分析: 一、无人机控制距离的定义 无人机控制距离指的是遥控器和接收机之间的最远传输距离。这个距离决定了无人机在操作者控制下能够飞行的…

2024年氧化工艺证考试题库及氧化工艺试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2024年氧化工艺证考试题库及氧化工艺试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大纲随机出的氧化…

VM+Ubuntu16.04硬盘扩容

步骤: 用df -h查看自己虚拟机的硬盘空间使用情况在虚拟机下安装gparted软件备用 sudo apt-get install gparted在VM的界面或者Windows终端修改虚拟机硬盘大小回到虚拟机的gparted软件里,修改分区,先删除原有的逻辑分区和扩展分区&#xff0c…

一键快速替换PPT上的字体?这个你一定要学会。

前言 最近有个朋友在做PPT,说是准备在各大平台分发,咨询小白关于PPT上内容的事情,结果小白问了一句:字体用的是什么? 嗯……她说是:汉仪黑和字魂。 好家伙,这不是妥妥的当别人财神爷的机会吗&…

是的,第一个在Domino中整个AI本地大语言模型的开源项目已经发布

大家好,才是真的好。 做梦也没想到,上一篇《Notes,无代码应用开发王者归来!》居然又一次焕发了卓越的青春活力,阅读量超高。真希望能再接再厉,续创辉煌。 但今天咱们怎么也不能再讲HCL Notes/Dmino 14.5 …

Vue3 : Pinia的性质与作用

目录 一.性质 二.作用 三.Pinia 的核心概念 四.使用 1.count.ts 2.count.vue Vue 3 中 Pinia 是一个专为 Vue 3 设计的状态管理库,它旨在提供一种简单、直观的方式来管理应用的状态。 一.性质 1.集成性:Pinia 是 Vue 3 官方推荐的状态管理库&…

Linux C高级 day2

一、 1.mkdir ../dir1 && touch ../dir/file 2.cp -r /mnt/dir1/* /home/dir2 3.pwd 4.ls -l 5.ip或ifconfig 6.top 7.ps aux | grep python 8.kill -9 7580 9.ping 10.find /usr -type f -name *name* 11. a-> 输入内容->ese->shift冒号 wq回车 …

JAVA-期末成绩计算

要求 总评成绩 期末成绩*0.6 平时成绩*0.4 输入总评成绩和平时成绩&#xff0c;输出期末成绩要考几分&#xff08;0<平时成绩<40&#xff0c;0<总评成绩<100&#xff09; 要求能多次运行&#xff08;退出程序停止&#xff09; 代码 import java.util.Scanne…

Java 多态(难)

1. 即同一方法可以根据发送对象的不同而采用多种不同的行为方式。 2&#xff0e;一个对象的实际类型是确定的&#xff0c;但可以指向对象的引用的类型有很多。 举例说明&#xff1a;新建两个类&#xff0c;Person类和Student类&#xff0c;Student类继承Person类&#xff1a…

背景图鼠标放上去切换图片过渡效果

文章目录 css鼠标放上去之前效果鼠标放上去时效果 css <li class"message"></li>.message {width: 22px;height: 22px;background-image: url(/assets/message-01.png);background-size: cover;background-position: center;transition: background-ima…