安装部署filebeat + kafka + logstack + elasticsearch

 

一、系统环境

Linux(小红帽)、jdk1.8

二、下载安装包

1、下载filebeat

 下载:https://www.elastic.co/cn/downloads/beats/filebeat

 现在最新的是:filebeat-7.3.0-linux-x86_64.tar

2、下载kafka

下载地址:http://kafka.apache.org/downloads.html

我们下载第二种(已经被编译过的),将安装包存在在 /software/ 下

3、下载logstach

下载地址:https://www.elastic.co/cn/downloads/logstash

现在最新的是:logstash-7.3.0.tar

4、下载elasticsearch

下载地址:https://www.elastic.co/cn/downloads/elasticsearch

现在最新的是:elasticsearch-7.2.1-linux-x86_64.tar

三、安装filebeat

将安装包放在自己喜欢的目录即可

我放在/opt/collectlog/

1、解压

[root@omsdev /opt/collectlog]# tar -xvf filebeat-7.3.0-linux-x86_64.tar

2、配置

配置/opt/collectlog/filebeat-7.3.0-linux-x86_64/filebeat.yml文件,可以修改此文件,也可以自己新建一个.yml文件,比如我filebeat的输出端是kafka,则新建一个kafkabeat.yml将filebeat.yml中的内容复制过来进行修改即可;

本文没有新建,直接修改filebeat.yml,修改两处地方

第一处修改inputs(输入)

第二处修改outputs(输出)

到此为止filebeat安装配置完成

3、启动(等kafka安装配置启动完了在启动filebeat)

[root@omsdev /opt/collectlog/filebeat-7.3.0-linux-x86_64]# ./filebeat -e -c filebeat.yml -d "publish"

命令上的filebeat.yml是我们配置的文件,如果你是新建的配置文件则这里用新建的文件即可

四、安装kafka

将安装包放在自己喜欢的目录即可

我放在/opt/collectlog/

1、解压

[root@omsdev /opt/collectlog]# tar -xvf kafka_2.12-2.3.0.tar

2、配置

1)修改server.properties (/opt/collectlog/kafka_2.12-2.3.0/config)

#broker的全局唯一编号,不能重复

broker.id=0

#如果是虚拟机的话此处需要配置自己的IP和端口

listeners=PLAINTEXT://10.15.32.20:9092

#日志输出的地方

log.dirs=/tmp/kafka-logs

#kafka启动需要zookeeper,我们这用自带的

zookeeper.connect=10.15.32.20:2181

2)修改producer.properties

bootstrap.servers=10.15.32.20:9092

3)修改consumer.properties

bootstrap.servers=10.15.32.20:9092

还有好多配置参考这位的:https://blog.csdn.net/Poppy_Evan/article/details/79415460

3、启动服务

运行kafka需要使用Zookeeper,所以你需要先启动Zookeeper,如果你没有Zookeeper,你可以使用kafka自带打包和配置好的Zookeeper。

[root@omsdev /opt/collectlog/kafka_2.12-2.3.0]# bin/zookeeper-server-start.sh config/zookeeper.properties

现在启动kafka服务

[root@omsdev /opt/collectlog/kafka_2.12-2.3.0]# bin/kafka-server-start.sh config/server.properties &

4、创建一个主题(topic)

创建一个名为“test”(和你在filebeat一致)的Topic,只有一个分区和一个备份:

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

主意:如果出现一下错误

WARN [Consumer clientId=consumer-1, groupId=console-consumer-77210] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

将localhost换为你的机器IP,也就是server.properties中配置的IPlisteners=PLAINTEXT://10.15.32.20:9092

创建好之后,可以通过运行以下命令,查看已创建的topic信息:

bin/kafka-topics.sh --list --zookeeper localhost:2181

5、发送消息

Kafka提供了一个命令行的工具,可以从输入文件或者命令行中读取消息并发送给Kafka集群。每一行是一条消息。
运行producer(生产者),然后在控制台输入几条消息到服务器。

 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
This is a message
This is another message

主意:如果出现一下错误

WARN [Consumer clientId=consumer-1, groupId=console-consumer-77210] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

将localhost换为你的机器IP,也就是server.properties中配置的IPlisteners=PLAINTEXT://10.15.32.20:9092

6、Kafka也提供了一个消费消息的命令行工具,将存储的信息输出出来。

> bin/kafka-console-consumer.sh --bootstrap-server localhsot:9092 --topic test --from-beginning
This is a message
This is another message

参考:https://www.orchome.com/6

五、验证filebeat是否和kafka联通

经过上面的步骤kafka服务已经起来了,filebeat还没有启动;

1、准备filebeat输入的数据

           新建.log文件到filebeat.yml配置的目录下内容随便,本文测试内容为: 2017-11-09T15:18:05+08:00|~|127.0.0.1|~|-|~|hy_xyz|~|200|~|0.002

2、启动filebeat

[root@omsdev /opt/collectlog/filebeat-7.3.0-linux-x86_64]# ./filebeat -e -c filebeat.yml -d "publish"

3、在kafka中查看,查看方式用kafka消费消息的命令行

[root@omsdev /opt/collectlog/kafka_2.12-2.3.0]# bin/kafka-console-consumer.sh --bootstrap-server 10.15.32.20:9092 --topic test --from-beginning
This is a message
This is another message
{"@timestamp":"2019-08-02T05:48:55.596Z","@metadata":{"beat":"filebeat","type":"_doc","version":"7.3.0","topic":"test"},"log":{"offset":0,"file":{"path":"/opt/collectlog/testlog/test.log"}},"message":"2017-11-09T15:18:05+08:00|~|127.0.0.1|~|-|~|hy_xyz|~|200|~|0.002","input":{"type":"log"},"agent":{"version":"7.3.0","type":"filebeat","ephemeral_id":"b8d0688f-0001-4020-8620-4d5dafcdcb82","hostname":"omsdev","id":"94cee931-8e7c-46d5-9696-7b928feb4368"},"ecs":{"version":"1.0.1"},"host":{"id":"c352ba6808ff408195ab53d9abf5e854","name":"omsdev","containerized":false,"hostname":"omsdev","architecture":"x86_64","os":{"version":"7 (Core)","family":"redhat","name":"CentOS Linux","kernel":"3.10.0-862.el7.x86_64","codename":"Core","platform":"centos"}}}

This is a message
This is another message

这两句是我已命令发送进去的数据,第三局json格式是解析处.log中的数据,其中message的值为原值

出现以上信息则证明filebeat和kafka通了

 

六、安装logstash

将安装包放在自己喜欢的目录即可

我放在/opt/collectlog/

1、解压

[root@omsdev /opt/collectlog]# tar -xvf logstash-7.3.0.tar

2、启动测试(-e启动)

[root@omsdev /opt/collectlog/logstash-7.3.0]# ./logstash -e 'input { stdin{} } output { stdout{} }'

-e参数允许我们在命令行中直接输入配置,而不同通过-f参数指定配置文件

启动完后输入hello world,回车

hello World
2018-09-13T01:45:28.703Z localhost hello World

ogstash会加上日期和主机名(IP)输出到终端。这就是Logstash最基本的工作模式,接受输入,然后将信息加工后放入到输出。

以上测试完成,直接kill掉就行(我们这里不能-e启动,而需要-f配置启动)

3、配置

在/opt/collectlog/logstash-7.3.0目录下新建文件first-pipeline.conf并编辑

#inputs
input{
        kafka{
                bootstrap_servers => "10.15.32.20:9092"
                topics => "test"
                group_id => "zxj"
        }
}

# the filter




#outputs
output {
        elasticsearch {
                hosts => ["10.15.32.20:9200"] 
                index => "logstash-%{+YYYY.MM.dd}" 
        }
}

index => "logstash-%{+YYYY.MM.dd}" # es中保存的索引

过滤器以后补

4、启动logstash(-f配置启动)

bin/logstash -f first-pipeline.conf --config.reload.automatic --path.data=/home/hadoop/logstash

--path.data=/home/hadoop/logstash是指存放数据的路径

七、安装elasticsearch

将安装包放在自己喜欢的目录即可

我放在/opt/collectlog/

1、解压

[root@omsdev /opt/collectlog]# tar -xvf elasticsearch-7.2.1-linux-x86_64.tar

2、创建用户,elasticsearch不允许root用户启动

useradd  ela
            passwd ela

chown -R ela /opt/collectlog/elasticsearch-7.2.1

--切换用户

su ela

3、用新用户启动

[ela@omsdev /opt/collectlog/elasticsearch-7.2.1]# sh bin/elasticsearch

4、遇到的错误(修改配置用root用户)

1)http://ip:9200/  无法访问

vim config/elasticsearch.yml

# 增加

network.host: 0.0.0.0

2) bootstrap checks failed

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

vi /etc/security/limits.d/90-nproc.conf 
修改如下内容:
* soft nproc 1024

#修改为
* soft nproc 4096

3)bootstrap checks failed

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

vi /etc/security/limits.conf

添加 

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
vi /etc/sysctl.conf 

添加 

vm.max_map_count=655360

最后

sysctl -p

4)bootstrap checks failed

[1]the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

[2]system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

[3] the default discovery settings are unsuitable for production use; at least one of  [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

修改elasticsearch.yml配置

bootstrap.memory_lock: false
           bootstrap.system_call_filter: false

取消注释保留一个节点cluster.initial_master_nodes: ["node-1"]

最后用新建用户重启

参考:https://blog.csdn.net/happyzxs/article/details/89156068

https://blog.csdn.net/q15150676766/article/details/75578614

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值