搭建ELK记录(一)

mac2026-06-18  4

 

ELK具体是啥我现在也说不上来,只知道我们是拿来记录日志的。后续再补

 

首先需要docker,如果没有安装一个

yum install docker

安装好之后,启动docker

启动docker systemctl start docker

 拉取elasticsearch、logstash、logstash镜像,建议空闲时间先拉取好,比较慢, 可以打开三个ssh窗口分别下载。

docker pull logstash:6.5.4 docker pull elasticsearch:6.5.4 docker pull kibana:6.5.4

 等全部下载完毕,可以通过以下命令查看是否把镜像拉取到本地了,当出现下面图片说明已成功拉取,可以开始正文了

docker images

 

 elasricsearch

执行此行命令之前,先在自己本地建立对应文件夹。下面的 -v 挂载的内容先要准备好,配置文件我给提供一份 百度云链接,当然也可以直接跑起来之后从docker中拿出来在进行挂载

docker run --name es-node01 -d --net host -v /yunJing/es-cluster/node01/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /yunJing/es-cluster/node01/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /yunJing/es-cluster/node01/data:/usr/share/elasticsearch/data elasticsearch:6.5.4

执行完此命令后,不出意外可以跑起来了,如果没跑起来,请自行 docker logs name/id 查看日志报错

俺遇到了一个问题,大体意思就是文件权限不够,报错内容贴出来,然后各种百度各种授权,嗯........都没有解决,领导过来说把centos7的一个安全机制关闭  咳咳 好了 折腾了半天的东西就这样好了~

ava.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes

 关闭SELinux

setenforce 0

 关闭之后,直接重新启动 docker start  xx   查看已经启动了,通过浏览器访问,ok

logstash

和es一样,创建好目录 配置好文件之后直接执行以下命令

docker run -it -d -p 5044:5044 -v /yunJing/logstash/logstash-es.conf:/usr/share/logstash/logstash-es.conf --name logstash logstash:6.5.4 -f /usr/share/logstash/logstash-es.conf

 

查看是否成功启动,

本人遇到的是不能建立与es的连接

进入容器 修改 logstash.yml 的ip为es所在服务器ip就可以了

docker exec -it logstash /bin/bash cd config/ vi logstash.yml

 顺带安装下 multiline,想了解为什么安装点击下面连接进去看,可以不看 直接进行下面命令 安装上

为什么安装logstash插件

/usr/share/logstash/bin/logstash-plugin list logstash-plugin install logstash-filter-multiline Validating logstash-filter-multiline Installing logstash-filter-multiline Installation successful

安装上之后 重启 自行查看日志有没有重启成功 

 

kibana

和es一样,创建好目录 配置好文件之后直接执行以下命令

docker run -it -d -p 5601:5601 -v /yunJing/kibana:/usr/share/kibana/config --name kibana kibana:6.5.4

 木有起来...报错截图如下

解决方法:修改挂载文件内容 host为下面截图中内容 重新启动就可以了

然后 浏览器输入 http://10.1.28.xxx:5601

那么,我们只是将这几个组件运行起来了,怎么看他有没有收集到日志呢

虽然logstash可以读取日志文件,但是我们选择Filebeat,它是一个轻量级的、资源友好的工具,它从服务器上的文件中收集日志,并将这些日志转发到你的Logstash实例以进行处理。Filebeat设计就是为了可靠性和低延迟。Filebeat在主机上占用的资源很少,而且Beats input插件将对Logstash实例的资源需求降到最低。

FileBeat

在部署应用的服务器上安装fileBeat, 当然在启动前要配置好配置文件

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.4-linux-x86_64.tar.gz tar -zxvf filebeat-6.5.4-linux-x86_64.tar.gz nohup ./filebeat -c ./filebeat.yml > output 2>&1 &

 配置文件定义了输入和输出  输入选择自己的日志文件要绝对路径,输出直接输出到了搭建的logstash上面

filebeat.inputs: - type: log enabled: true paths: - /logs/serverlog/life-xxx-visit-1.0.0.txt fields: appname: visit #unit: data field_under_root: true #是否放在根节点 对json来说 setup.template.settings: index.number_of_shards: 1 output.logstash: hosts: ["10.1.28.xxx:5044"]

此时,elk就安装搭建好了

最新回复(0)