通过docker容器技术部署ELK日志分析系统+Filebeat

近来各个项目都顺利完成,通过了自动化运维。想把各个系统的日志统一管理起来,记得之前有朋友推荐过,后来因为时间原因一直没有上线。这两天简单研究了一下,想通过最简单直接的方法来完成而且可以快速部署完成。

现将整个过程重要步骤做一个MARK。

环境:centos7 + docker1.13.1 +ELK最新版本:7.3.0   Filebeat 7.3.-1

一、服务端安装docker就不多讲了,网上很多:

[root@docker605 data]# sudo yum install -y docker-ce

[root@docker605 data]# docker version
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      7f2769b/1.13.1
 Built:           Mon Aug  5 15:09:42 2019
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      7f2769b/1.13.1
 Built:           Mon Aug  5 15:09:42 2019
 OS/Arch:         linux/amd64
 Experimental:    false

二、出于不想发太多时间在这个日志系统上面,想快速部署ELK,那么就使用ELK for docker

安装并启动ELK,选择对应的版本,这里我们选择使用收藏星级较多的版本,应该比较热门,后来被验证是正确的(这个是最新版本的)

sudo docker search elk*

sudo docker pull sebp/elk

三、启动前做一些简要的配置更改  【这里摘录了网友的一些信息】

  • 运行ELK镜像需要vm.max_map_count至少需要262144内存
  • [root@docker605 data]# vi /etc/sysctl.conf
  • 在尾行添加以下内容 
    vm.max_map_count=262144

四、运行启动镜像

运行ELK镜像

[root@docker605 data]# sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elksebp/elk

[root@docker605 data]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                                                              NAMES
aa6b327e0df6        sebp/elk              "/usr/local/bin/st..."   20 hours ago        Up 20 hours         0.0.0.0:5044->5044/tcp, 0.0.0.0:5601->5601/tcp, 0.0.0.0:9200->9200/tcp, 9300/tcp   elk
d2048141bda2        portainer/portainer   "/portainer"             4 months ago        Up 21 hours         0.0.0.0:9000->9000/tcp                                                             myportainer
[root@docker605 data]#

这里也可以看到它的状态,

通过docker容器技术部署ELK日志分析系统+Filebeat_第1张图片

 

五、查看Kibana是否可以启动了: https://elk:5601   <最好使用IP地址登录>

通过docker容器技术部署ELK日志分析系统+Filebeat_第2张图片

六、客户端安装filebeat或系统环境相对应代理;上面只是算简单看到了庐山真面目,那接下来在客户端就要配置日志传输通道

   1>.首先建议将上面命名的镜像做DNS解析,这里用的是elk那么我就将它解析成我的内网docker物理机真实IP,这样才可以正常访问,如果不做这个处理会很麻烦。

   2>.配置filebeat文件,这里客户端环境是LINUX Centos7:注意:Filebeat 6.0后,enabled默认为关闭,如红圈外,必须要修改成true

安装filebeat在要监控日志的系统上面安装:

参考不同系统上面安装:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html

rpm:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpm
sudo rpm -vi filebeat-7.3.1-x86_64.rpm

deb:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-amd64.deb
sudo dpkg -i filebeat-7.3.1-amd64.deb

linux:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-linux-x86_64.tar.gz
tar xzvf filebeat-7.3.1-linux-x86_64.tar.gz

修改linux客户端日志系统下的filebeat.yml文件:

cd /etc/filebeat
vi filebeat.yml

 

通过docker容器技术部署ELK日志分析系统+Filebeat_第3张图片

如果你直接将日志发送到Elasticsearc,请编辑此行Elasticsearc output 
如果你直接将日志发送到Logstash,请编辑此行Logstash output 
只能使用一行输出,其它的注掉即可

通过docker容器技术部署ELK日志分析系统+Filebeat_第4张图片

3>.启动filebeat客户端传输日志:

[root@zabbix609 data]# /etc/init.d/filebeat start
Starting filebeat (via systemctl):                         [  确定  ]

4>.接下进入docker容器elk里面,修改yml文件:

[root@docker605 data]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                                                              NAMES
aa6b327e0df6        sebp/elk              "/usr/local/bin/st..."   20 hours ago        Up 11 minutes       0.0.0.0:5044->5044/tcp, 0.0.0.0:5601->5601/tcp, 0.0.0.0:9200->9200/tcp, 9300/tcp   elk
d2048141bda2        portainer/portainer   "/portainer"             4 months ago        Up 22 hours         0.0.0.0:9000->9000/tcp                                                             myportainer
[root@docker605 data]# docker exec -it aa6b327e0df6 /bin/bash
root@aa6b327e0df6:/#
root@aa6b327e0df6:/# cd /etc/init.d/
root@aa6b327e0df6:/etc/init.d# ls
cron  elasticsearch  hwclock.sh  kibana  logstash  procps  ssh  syslog-ng  x11-c
root@aa6b327e0df6:/etc/init.d# cd /etc/logstash/conf.d/
root@aa6b327e0df6:/etc/logstash/conf.d# ls
02-beats-input.conf  11-nginx.conf   logstash.conf
10-syslog.conf       30-output.conf
root@aa6b327e0df6:/etc/logstash/conf.d# vi 02-beats-input.conf

我这里不用到证书,所以注释掉

通过docker容器技术部署ELK日志分析系统+Filebeat_第5张图片

注意:sebp/elk docker是自建立了一个证书logstash.crt,默认使用*通配配符,如果你使用证书,filebeat.yml使用的服务器地址必须使用域名,不能使用IP地址,否则会报错,这个坑是我踩后得出来的心得,说见官网文档说明即可。

七、这里回到Kibana7.3.0,稍等片刻在ES里面index management可以看到

通过docker容器技术部署ELK日志分析系统+Filebeat_第6张图片

再到Kibana里面设置索引标识以便在Kibana里面查看:

通过docker容器技术部署ELK日志分析系统+Filebeat_第7张图片

通过docker容器技术部署ELK日志分析系统+Filebeat_第8张图片

通过docker容器技术部署ELK日志分析系统+Filebeat_第9张图片

八、完成,可以看到下面产生了客户端传输过来的日志了。

通过docker容器技术部署ELK日志分析系统+Filebeat_第10张图片

九、额外讲讲收集windows客户端的日志

https://www.elastic.co/cn/downloads/beats/filebeat  安装文件地址

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-getting-started.html

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html  这个是官方的安装说明

***************************在windows下安装filebeat****************************

通过docker容器技术部署ELK日志分析系统+Filebeat_第11张图片

通过docker容器技术部署ELK日志分析系统+Filebeat_第12张图片

通过docker容器技术部署ELK日志分析系统+Filebeat_第13张图片

你可能感兴趣的:(ELK)