实验 elk+filebeat+kafka

kafka 3.4.1

elk+filebeat+kafka

实现日志收集

httpd1 mysql1 topic 2.7 3.0

关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

安装 JDK

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

java -version

安装 Zookeeper

cd /opt

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz

mv apache-zookeeper-3.5.7-bin /opt/zookeeper

修改配置文件

cd /opt/zookeeper/conf/

cp zoo_sample.cfg zoo.cfg

tickTime=2000 #通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒

initLimit=10 #Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量),这里表示为10*2s

syncLimit=5 #Leader和Follower之间同步通信的超时时间,这里表示如果超过52s,Leader认为Follwer死掉,并从服务器列表中删除Follwer

dataDir=/opt/zookeeper/data ●修改,指定保存Zookeeper中的数据的目录,目录需要单独创建

dataLogDir=/opt/zookeeper/logs ●添加,指定存放日志的目录,目录需要单独创建

clientPort=2181 #客户端连接端口

#添加集群信息

server.1=192.168.176.70:3188:3288

server.2=192.168.176.71:3188:3288

server.3=192.168.176.72:3188:3288

在每个节点上创建数据目录和日志目录

mkdir /opt/zookeeper/data

mkdir /opt/zookeeper/logs

在每个节点的dataDir指定的目录下创建一个 myid 的文件

echo 1 > /opt/zookeeper/data/myid

echo 2 > /opt/zookeeper/data/myid

echo 3 > /opt/zookeeper/data/myid

配置 Zookeeper 启动脚本

vim /etc/init.d/zookeeper

#!/bin/bash

#chkconfig:2345 20 90

#description:Zookeeper Service Control Script

ZK_HOME='/opt/zookeeper'

case $1 in

start)

echo "---------- zookeeper 启动 ------------"

$ZK_HOME/bin/zkServer.sh start

;;

stop)

echo "---------- zookeeper 停止 ------------"

$ZK_HOME/bin/zkServer.sh stop

;;

restart)

echo "---------- zookeeper 重启 ------------"

$ZK_HOME/bin/zkServer.sh restart

;;

status)

echo "---------- zookeeper 状态 ------------"

$ZK_HOME/bin/zkServer.sh status

;;

*)

echo "Usage: $0 {start|stop|restart|status}"

esac

设置开机自启

chmod +x /etc/init.d/zookeeper

chkconfig --add zookeeper

分别启动 Zookeeper

service zookeeper start

查看当前状态

service zookeeper status

部署 kafka 集群

安装:

cd /opt/

tar zxvf kafka_2.13-2.7.1.tgz

mv kafka_2.13-2.7.1 kafka

修改配置文件

cd kafka/config/

cp server.properties server.properties.bak

vim server.properties

改经纪人id

如果修改了id 28行可以不改

broker.id=0 ●21行,broker的全局唯一编号,每个broker不能重复,因此要在其他机器上配置 broker.id=1、broker.id=2

listeners=PLAINTEXT://192.168.80.10:9092 ●31行,指定监听的IP和端口,如果修改每个broker的IP需区分开来,也可保持默认配置不用修改

num.network.threads=3 #42行,broker 处理网络请求的线程数量,一般情况下不需要去修改

num.io.threads=8 #45行,用来处理磁盘IO的线程数量,数值应该大于硬盘数

socket.send.buffer.bytes=102400 #48行,发送套接字的缓冲区大小

socket.receive.buffer.bytes=102400 #51行,接收套接字的缓冲区大小

socket.request.max.bytes=104857600 #54行,请求套接字的缓冲区大小

log.dirs=/var/log/kafka #60行,kafka运行日志存放的路径,也是数据存放的路径

num.partitions=1 #65行,topic在当前broker上的默认分区个数,会被topic创建时的指定参数覆盖

num.recovery.threads.per.data.dir=1 #69行,用来恢复和清理data下数据的线程数量

log.retention.hours=168 #103行,segment文件(数据文件)保留的最长时间,单位为小时,默认为7天,超时将被删除

log.segment.bytes=1073741824 #110行,一个segment文件最大的大小,默认为 1G,超出将新建一个新的segment文件

#Kafka 以日志文件的形式维护其数据,而这些日志文件被分割成多个日志段。当一个日志段达到指定的大小时,就会创建一个新的日志段。

配置连接Zookeeper集群地址

zookeeper.connect=192.168.176.70:2181,192.168.176.71:2181,192.168.176.72:2181

kafka默认不允许删除主题

每一台配置一下

修改环境变量日志段是主题分区日志文件的一部分。

vim /etc/profile

export KAFKA_HOME=/opt/kafka

export PATH=$PATH:$KAFKA_HOME/bin

配置 Zookeeper 启动脚本

vim /etc/init.d/kafka

设置开机自启

chmod +x /etc/init.d/kafka

chkconfig --add kafka

分别启动 Kafka

service kafka start

Kafka 命令行操作

创建topic

kafka-topics.sh --create --bootstrap-server 192.168.176.70:9092,192.168.176.71:9092,192.168.176.72:9092 --replication-factor 2 --partitions 3 --topic cc

查看当前服务器中的所有 topic

kafka-topics.sh --list --bootstrap-server 192.168.176.70:9092,192.168.176.71:9092,192.168.176.72:9092

查看某个 topic 的详情

kafka-topics.sh --describe --bootstrap-server 192.168.176.70:9092,192.168.176.71:9092,192.168.176.72:9092

发布消息

kafka-console-producer.sh --broker-list 192.168.176.70:9092,192.168.176.71:9092,192.168.176.72:9092 --topic cc

消费消息

kafka-console-consumer.sh --bootstrap-server 192.168.176.70:9092,192.168.176.71:9092,192.168.176.72:9092 --topic cc

kafka-console-consumer.sh --bootstrap-server 192.168.176.70:9092,192.168.176.71:9092,192.168.176.72:9092 --topic cc --from-beginning

创建单个主题

kafka-topics.sh --create --bootstrap-server 192.168.176.70:9092 --replication-factor 2 --partitions 3 --topic test1

修改分区数

kafka-topics.sh --bootstrap-server 192.168.176.70:9092,192.168.176.71:9092,192.168.176.72:9092 --alter --topic test1 --partitions 6

删除 topic

kafka-topics.sh --delete --bootstrap-server 192.168.176.70:9092,192.168.176.71:9092,192.168.176.72:9092 --topic test1

安装 Filebeat

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

mv filebeat-6.7.2-linux-x86_64/ filebeat

安装logstash

#上传软件包 logstash-6.7.2.rpm 到/opt目录下

cd /opt

rpm -ivh logstash-6.7.2.rpm

systemctl start logstash.service

systemctl enable logstash.service

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

安装nginx或者httpd

yum -y install epel-release

yum -y install nginx

yum -y install httpd

部署 Zookeeper+Kafka 集群

2.部署 Filebeat

cd /usr/local/filebeat

vim filebeat.yml

- type: log

enabled: true

paths:

- /var/log/nginx/access.log

- /var/log/nginx/error.log

tags: ["nginx"]

fields:

service_name: 192.168.176.10_nginx

log_type: nginx

from: 192.168.176.10

output.kafka:

enabled: true

hosts: ["192.168.233.70:9092","192.168.233.71:9092","192.168.233.72:9092"]

topic: "nginx"

底下output 注释

nohup ./filebeat -e -c filebeat.yml >filebeat.out &

tail -f filebeat.out

部署 ELK,在 Logstash 组件所在节点上新建一个 Logstash 配置文件

cd /etc/logstash/conf.d/

vim kafka.conf

input {

kafka {

bootstrap_servers => "192.168.176.70:9092,192.168.176.71:9092,192.168.176.72:9092"

topics => "nginx"

type => "nginx_kafka"

codec => "json"

auto_offset_reset => "earliest"

decorate_events => true

}

}

output {

if "nginx" in [tags] {

elasticsearch {

hosts => ["192.168.176.10:9200","192.168.176.50:9200"]

index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"

}

}

stdout { codec => rubydebug }

}

logstash -f kafka.conf --path.data /opt/test1 &

httpd服务

yum -y install httpd

安装 Filebeat

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

mv filebeat-6.7.2-linux-x86_64/ filebeat

安装logstash

#上传软件包 logstash-6.7.2.rpm 到/opt目录下

cd /opt

rpm -ivh logstash-6.7.2.rpm

systemctl start logstash.service

systemctl enable logstash.service

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

部署 Zookeeper+Kafka 集群

2.部署 Filebeat

cd /usr/local/filebeat

vim filebeat.yml

底下output 注释

nohup ./filebeat -e -c filebeat.yml >filebeat.out &

tail -f filebeat.out

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

cd /etc/logstash/conf.d/

vim kafkahttpd.conf

logstash -f kafkahttpd.conf --path.data /opt/test1 &

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

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

相关文章

FL Studio2024重磅更新 带你了解FL21.2最新版本功能

FL Studio2024是功能强大的音乐制作解决方案,使用旨在为用户提供一个友好完整的音乐创建环境,让您能够轻松创建、管理、编辑、混合具有专业品质的音乐,一切的一切都集中在一个软件中,只要您想,只要您需要,它…

设计模式---第四篇

系列文章目录 文章目录 系列文章目录前言一、说说策略模式在我们生活的场景?二、知道责任链模式吗?三、了解过适配器模式么?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给…

Qt实现右键菜单

一、实现方法 QWidget提供了虚函数: virtual void contextMenuEvent(QContextMenuEvent*event);覆写该函数,即可。 二、Example 创建一个基本的mainwindow项目, 头文件: class MainWindow : public QMainWindow {Q_OBJECTpublic:MainWin…

for循环定义域问题

记录一个偶然发现的问题&#xff0c;代码如下 int main(int argc, char *argv[], char *envp[]){for(int i 1; i < 10; i);printf("%d",i); return 0; } 可以看到for循环后加了一个分号&#xff0c;按理说应该报变量i未定义的错误&#xff0c;但此时在编译器中…

山西电力市场日前价格预测【2023-12-02】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-12-02&#xff09;山西电力市场全天平均日前电价为373.22元/MWh。其中&#xff0c;最高日前电价为765.50元/MWh&#xff0c;预计出现在17:45。最低日前电价为187.48元/MWh&#xff0c;预计…

(11_29)畅捷通的 Serverless 探索实践之路

作者&#xff1a;计缘 畅捷通介绍 畅捷通是中国领先的小微企业财税及业务云服务提供商&#xff0c;成立于2010年。畅捷通在2021年中国小微企业云财税市场份额排名第一&#xff0c;在产品前瞻性及行业全覆盖方面领跑市场&#xff0c;位居中国小微企业云财税厂商矩阵领军象限前…

ios分发平台怎么提交工单管理

●工单管理 ●控制台-个人中心-工单管理 ●创建工单-提交工单 ●创建工单-提交完成 ●提交成功 ●工单回复使用 ●回复流程完成

NodeJs(一):初识nodejs、模块化、CommonJS、ESModule等

目录 (一)Nodejs简介 1.nodejs是什么 2.nodejs架构 3.nodejs的应用场景 (二)准备工作 1.安装nodejs 2.nodejs版本管理工具 (三)nodejs的使用 1.node的输入 2.node的输出 3.其他的console方法 (四)全局对象 1.常见的全局对象 2.特殊的全局对象 3.global和window的…

L1-006:连续因子

题目描述 一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3567&#xff0c;其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N&#xff0c;要求编写程序求出最长连续因子的个数&#xff0c;并输出最小的连续因子序列。 输入格式&#xff1a; 输入在一行…

文献速递:人工智能在健康和医学中

人工智能在健康和医学中 01 文献速递介绍 这篇文章详细探讨了人工智能&#xff08;AI&#xff09;在医学领域的最新进展、挑战和未来发展的机遇。 1.医学AI算法的最新进展&#xff1a; **AI在医疗实践中的应用&#xff1a;**虽然AI系统在多项回顾性医学研究中表现出色&…

软件测试面试最全八股文

请你说一说测试用例的边界 参考回答&#xff1a; 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充&#xff0c;这种情况下&#xff0c;其测试用例来自等价类的边界。 常见的边界值 1)对16-bit 的整数而言 3276…

Grub编译与调试

Grub编译与调试 文章目录 Grub编译与调试1. Grub编译2. Grub文件生成2.1 grub.efi2.2 grub.cfg2.3 将grub安装至UEFI引导界面 3. GRUB界面4. 编辑GRUB选项5. 手动找grub.cfg6. 没有grub.cfg的情况下引导内核7. Grub增加串口7.1 使能串口7.2 使能串口输入 8. Grub打开debug 1. G…

工业机器视觉megauging(向光有光)使用说明书(五,轻量级的visionpro)

这个说明主要介绍抓线功能。 第一步&#xff0c;添加线工具&#xff0c;鼠标双击工具箱“抓线”&#xff0c;出现如下界面&#xff1a; 第二步&#xff0c;我们拉一条&#xff0c;“九点标定”到“抓线1”的线&#xff0c;和visionpro操作一样&#xff1a; 第三步&#xff0c;…

vue循环v-for遍历图表

循环遍历图表 index.vue主页面 <view v-if"powerPage"><view v-for"(item, index) in powerDetailsData.addMap" :key"index"><PowerEChartsCity:echartData"powerDetailsData.addMap[index]"></PowerEChartsC…

【JavaSE学习专栏】第03篇 数组

文章目录 1 数组的定义2 数组声明创建3 数组的初始化4 数组的四个基本特点5 数组边界6 数组的使用7 多维数组8 Arrays类9 冒泡排序9.1 原理9.2 代码实现 10 数组插入算法10.1 问题10.2 分析10.3 代码 11 稀疏矩阵11.1 稀疏数组介绍 1 数组的定义 数组是相同类型数据的有序集合。…

备战春招——12.1 算法

动态规划 动态规划的核心思想就是 本次只由上一次决定。 爬楼梯 第3阶由&#xff08;第1节2&#xff09;和&#xff08;第二节1&#xff09;&#xff0c;不要想着往下迭代&#xff0c;不然那是个无穷底。所以f(x)f(x-1)f(x-2) (x>2)。所以就是当前只与上个操作相关。 cla…

Jmeter组件执行顺序与作用域

一、Jmeter重要组件 1&#xff09;配置元件---Config Element&#xff1a; 用于初始化默认值和变量&#xff0c;以便后续采样器使用。配置元件大其作用域的初始阶段处理&#xff0c;配置元件仅对其所在的测试树分支有效&#xff0c;如&#xff0c;在同一个作用域的任何采样器…

肖sir__mysql之单表练习题2__(2)

mysql之单表练习题 一.建表语句 create table grade(class int(4),chinese int(8),english int(4),math int(8),name varchar(20),age int(8),sid int(4)primary key auto_increment) DEFAULT charsetutf8; insert into grade(class,chinese,english,math,name,age)values(1833…

012 OpenCV sobel边缘检测

目录 一、环境 二、soble原理介绍 三、源码实验 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、soble原理介绍 Sobel边缘检测是一种广泛应用于图像处理领域的边缘检测算法&#xff0c;它通过计算图像灰度函数在水平方向和垂直…

微服务--03--OpenFeign 实现远程调用 (负载均衡组件SpringCloudLoadBalancer)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 OpenFeign其作用就是基于SpringMVC的常见注解&#xff0c;帮我们优雅的实现http请求的发送。 RestTemplate实现了服务的远程调用 OpenFeign快速入门负载均衡组件Spr…