Elasticsearch6.X 记一次ELK+Beats+kafka实时日志搭建过程(linux小白)

       很早之前就在windows上搭建过ELK日志,最近项目用到分布式系统,涉及到很多linux服务器,再用原来的logstash去采集日志明显不合适,原因是logstash占用内存过高,每台机子上都部署的话比较浪费内存。以前是用windows环境,现在用阿里云的CentOS7.4,其中也有许多坑(对于我这linux小白来说),记录下来希望能帮助其他人

说一下环境与软件配置:

linux服务器:阿里云CentOS7.4

kafka版本:阿里云kafka消息队列

ELK+Filebeat版本:6.3.0

正式开始:

一、Elasticsearch配置与安装

Elasticsearch的安装与在windows上的安装没什么区别,只是linux小白可能会遇到一些坑

1.下载elasticsearch-6.3.0安装包并且解压,我这里解压到根目录/ELK/下面

2.修改config目录下jvm.options与elasticsearch.yml文件

jvm.options文件:elasticsearch的默认运行内存为1GB,根据实际需要,修改成自己想要的。可以设置成不超过机器物理内存的50%,但是不要超过32G,31G较为合适,(这里设置为3G)。

-Xms3g
-Xmx3g

elasticsearch.yml文件:改文件主要是做一些集群的配置(如集群名称,端口号,节点名称,主节点,数据节点等等),如果想要跨机子访问,network.host设置为:

network.host: 0.0.0.0

如果在阿里云内网环境不同机子搭建的集群,记得要把所有节点的地址都要加到discovery.zen.ping.unicast.hosts参数中区,格式为:

discovery.zen.ping.unicast.hosts: ["172.18.x.x:9300","172.18.x.x:9300", "172.18.x.x:9300"]

其中9300为默认transport连接端口,如果前面做了修改,请一起修改。

3.创建ES用户和组(创建elsearch用户组及elsearch用户),因为使用root用户执行ES程序,将会出现错误;所以这里需要创建单独的用户去执行ES 文件,命令如下:

命令一:groupadd elsearch   #创建用户组

命令二:useradd elsearch -g elsearch  #创建用户

命令三:chown -R elsearch:elsearch  /ELK/elasticsearch-6.3.0   #该命令是更改该文件夹下所属的用户组的权限

命令四:chmod 755 /ELK/elasticsearch-6.3.0/modules/x-pack/x-pack-ml/platform/linux-x86_64/bin/controller #需要给xpack的脚本增加可执行权限(这是其他资料没提及到的)

4.创建好之后,切换到创建的用户,进入到bin 目录下执行命令:

./elasticsearch   (执行 sh elasticsearch -d是后台运行)

前端执行时会出现以下错误:

 

解决上面2个问题的方法:

1)修改/etc/security/limits.conf ,在文件后面加上下面2行

elsearch soft nofile 65536

elsearch hard nofile 65536

2)问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144;

切换到root用户,执行命令:

sysctl -w vm.max_map_count=262144

上述方法修改之后,如果重启虚拟机将失效,解决办法:在   /etc/sysctl.conf文件最后添加一行

vm.max_map_count=262144

即可永久修改。

5.切换到新建的用户elsearch,进入到bin 目录下执行 sh elasticsearch 命令就可以了(执行 sh elasticsearch -d 是后台运行)

如果没有什么问题话,就可以安全生成了;然后执行:curl 'http://127.0.0.1:9200/' 命令,就出现下面的结果

6.end。Elasticsearch部署成功,(其他节点同理,注意添加到discovery.zen.ping.unicast.hosts: ["172.x.x.1:9300","172.x.x.2:9300", "172.x.x.3:9300"]参数中)

二、kibana部署,这个比较简单,下载linux版本的kibana,解压到/ELK/目录下后,

启动命令需要先给kibana权限

chmod 755 /ELK/kibana-6.3.0-linux-x86_64/bin/kibana

再启动kibana(可用root用户启动):

sh /ELK/kibana-6.3.0-linux-x86_64/bin/kibana   (后台启动命令:nohup /ELK/kibana-6.3.0-linux-x86_64/bin/kibana &)

三、kafka部署,因为我是直接购买的阿里云的kafka消息队列,故不用部署,在VPC内网中可用直接连

四、部署logstash,这个和在windows区别也不大,解压到/ELK/目录下后,

启动命令需要先给logstash权限

chmod 755 /ELK/logstash-6.3.0/bin/logstash

再启动(注意,配置文件logstash.conf得文件编码要是utf-8,logstash消费kafka消息写入ES的配置,请查阅其他资料,这里不赘述)

/ELK/logstash-6.3.0/bin/logstash -f /ELK/logstash-6.3.0/bin/logstash.conf

后台启动命令:nohup /ELK/logstash-6.3.0/bin/logstash -f /ELK/logstash-6.3.0/bin/logstash.conf &

配置好上面的之后只差在每一个应用服务器上配置Filebeat,监听应用日志消息写入kafka

五、下载Filebeat的linux对应版本,解压到/ELK/目录下后(其他Beat系列同理)

启动命令需要先给Filebeat权限

chmod 755 /ELK/filebeat-6.3.0-linux-x86_64/filebeat

再执行命令

./filebeat -e -c filebeat.yml   (后台启动:nohup ./filebeat -e -c filebeat.yml &)

下附 filebeat监听日志消息写入kafka配置

至此,所有配置都已完成,打开kibana查看日志的实时消息吧

好啦,最好放一下整体的的架构图

有什么问题欢迎留言咨询,希望能帮到您。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值