日志存储系统:Elasticsearch
Elasticsearch是一个可高度扩展的开源全文搜索与分析引擎,它可以快速地存储、搜索与分析大规模的实时数据。Elasticsearch的底层是基于lucene,并在些基础上提供了一系统便于应用程序使用的rest API,并且还提供了先天性的集群能力,可自由水平扩展以支持日益增长的数据

  1. 运行elasticsearch容器:
docker run --rm -p 9200:9200 --name elasticsearch-db elasticsearch

需要增加一些参数 以我的为例:docker run -d --name=elasticsearch  -v "$PWD/config":/opt/data/elasticsearch/config -v "$PWD/esdata":/opt/data/elasticsearch/data docker.io/elasticsearch 

  1. 访问:curl http://localhost:9200


在启动Elasticsearch时,我们可传入一些启动参数配置集群信息,如:
docker run --rm -p 9200:9200 --name elasticsearch-db elasticsearch -Ecluster.name=es_cluster_name -Enode.name=es_node

检查ES集群是否可用:
以上的集群信息是由ES的CAT API提供的,它是一个REST API,我们可以添加指定的参数来得到想要的输出信息

使用Postman来调用ES的的Rest API

  • 创建索引
http://192.168.43.33:9200/customer

  • 创建文档


  • 查询文档


  • 修改文档



还可以使用另一种方式修改:

还可以相对的修改相应字段



  • 删除文档


  • 删除索引



日志收集系统:Logstash
Logstash是一款开源的数据收集引擎,它既提供了实时管道能力,也提供了灵活的插件机制,我们可以自由的选择已有的插件,也能自行开发所需的插件


输入组件:
  1. file
  2. syslog
  3. redis
  4. beats



过滤插件:
  1. grok
  2. mutate
  3. drop
  4. clone
  5. geoip



输出插件:
  1. elasticsearch
  2. file
  3. graphite
  4. statsd



编解码插件:
  1. json
  2. multiline

启动logstash
  1. docker pull logstash
  2. run -it --rm --name logstash logstash -e 'input {stdin{}} output{stdout{}}'

指定配置文件启动
vim /opt/data/logstash/logstash.conf

input { stdin { }}output { stdout { }}

docker run -it --rm -v /opt/data/logstash/logstash.conf:/etc/logstash.conf --name logstash logstash logstash -f /etc/logstash.conf

还可以使用Dockerfile制作Logstash镜像



日志查询系统:Kibana
Kibana是一个开源的基于Elasticsearch的分析与可视化平台,我们既可以用它查询 并搜索存储在Elasticesearch中的数据,也可用它制作各式各样的图表、表格、地图等图形化数据, https://www.cnblogs.com/zhangs1986/p/7325504.html

启动Kibana容器:
docker run --rm -p 5601:5601 --link elasticsearch-db:elasticsearch -e ELASTICSEARCH_URL=http://localhost:9200 --name kibana kibana

此时,虽然Kibana与ES已集成,但ES尚未存入任何日志数据,因此Kibana当前还无法使用

在Kibana中操作ES库:

在 Elasticsearch 中存储数据的行为就叫做索引(indexing),而前面提到的文档,属于一种类型(type),这里类型会存在索引(index)中,如果列一个表来和传统数据库比较,大概是这样的:
关系型数据
Elasticsearch
Databases
Indices
Tables
Types
Rows
Documents
Columns
Fields

一个 Elasticsearch 集群可以包含多个索引(indices,对应于“数据库”),每个索引可以包含多个类型(types,对应于“表”),每个类型可以包含多个文档(document,对应于“行”),每个文档可以包含多个字段(fields,对应于“列”)

插入:

查询:


重点来了 docker中有点很坑的就是地址不能是本机的地址 localhost都不行 必须是本容器的地址 如果启动kibana的时候url写的localhost:9200 那么 kibana可以启动 进入页面就会显示未连接es:

显示链接错误  所以就需要进入es容器中  查看es容器ip  然后将docker run 后面url改为es容器ip地址才行 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐