使用docker安装ELK日志数据收集系统

ELK作为一套日志收集工具,顾名思义,ELK包含了三个开源工具,它们分别是elasticsearch、logstash、kibana,其中elasticsearch是一款搜索和数据分析引擎,Logstash是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,Kibana是一个免费且开放的用户界面,能够对Elasticsearch数据进行可视化。

ELK有多种架构可供部署,根据数据量大小、服务器需求等可选择不同架构,有些架构还需要用到消息队列中间件,比如kafka或者redis,用于进行数据持久化,防止日志数据丢失的这一情况。elasticsearch还支持集群方式搭建,其他架构方式不一一介绍。

此文档部署思路较为简单,通过Logstash收集日志数据来源,传输给elasticsearch,es分析处理后通过kibana可视化界面展现。

一、部署Elasticsearch

(一)、拉取镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2

(二)、运行容器

docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2

(三)、配置跨域

1)进入容器
docker exec -it es /bin/bash

2)修改elasticsearch.yml
vi /usr/share/elasticsearch/config/elasticsearch.yml

# 加入跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"

(四)、重启容器

docker restart es 

(五)、访问地址

自己的IP:9200,显示下图表示配置成功

使用docker安装ELK日志数据收集系统_第1张图片

二、ElasticSearch-Head(ES数据读取插件)

(一)、拉取镜像

docker pull mobz/elasticsearch-head:5

(二)、运行容器

docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5

(三)、访问地址

192.168.149.26:9100  显示下图表示配置成功

使用docker安装ELK日志数据收集系统_第2张图片

 三、部署logstash

(一)、拉取镜像

docker pull docker.elastic.co/logstash/logstash:6.2.4

 (二)、运行容器

docker run -d --name es_logstash docker.elastic.co/logstash/logstash:6.2.4

 (三)、进入容器

docker exec -it -u root es_logstash /bin/bash

(四)、修改logstash.yml文件

vi /usr/share/logstash/config/logstash.yml

http.host:"0.0.0.0"
xpack.monitoring.elasticsearch.url:http://192.168.149.26:9200  

#url ip为本机ip,端口为elasticsearch端口

(五)、重启logstash

docker restart es_logstash

四、部署kibana

(一)、拉取镜像

docker pull docker.elastic.co/kibana/kibana:6.3.2

(二)、运行容器

docker run --name es_kibana -p 5601:5601 -d -e ELASTICSEARCH_URL=http://192.168.149.26:9200 
docker.elastic.co/kibana/kibana:6.3.2

(三)、访问地址查看

http://192.168.149.26:5601

(四)、进入容器创建logstash日志输入输出配置文件,并授权755权限,如不授权ELK读取不了此文件

vi /usr/share/logstash/pipeline/logstash.conf

注释掉所有原本内容,添加以下参数

input {
  file {
     path => "/var/log/nginx/error.log"#收集nginx错误日志
     start_position => "beginning"
     stat_interval => "3"
     type => "nginxlog"
  }
}
output {
  if[type] == "nginxlog" {
     elasticsearch {
     hosts => ["192.168.149.26:9200"]#本机的es地址
     index => "nginx-%{+YYYY.MM.dd}"#展示在kibana中的索引
  }}
}

chmod 755 /var/log/nginx/error.log

五、重启全部容器并访问kibana

docker restart es_logstash
docker restart es_admin
docker restart es
docker restart es_kibana

访问kibana地址:
http://192.168.149.26:5601/

六、创建索引

使用docker安装ELK日志数据收集系统_第3张图片

 使用docker安装ELK日志数据收集系统_第4张图片使用docker安装ELK日志数据收集系统_第5张图片

创建完成会有日志数据显示,表示搭建成功

你可能感兴趣的:(docker,elk,elasticsearch,运维,运维开发)