089、初探ELK (2019-05-13 周一)

 
在开源的日志管理方案中,最出名的莫过于ELK了。ELK是三个软件的合称: Elasticsearch、Logstash、Kibana。
 
Elasticsearch
 
一个近乎实时查询的全文搜索引擎。Elasticsearch的设计目的就是要能够处理和搜索巨量的日志数据。
 
Logstash
 
读取原始日志,并对其进行分析和过滤,然后将其转发给其他组件(比如Elasticsearch)进行索引和存储。Logstash 支持丰富的Input和Output类型,能够处理各种应用的日志。
 
Kibana
 
一个基于JavaScript的Web图形界面程序,专门用于可视化Elasticsearch的数据。Kibana能够查询Elasticsearch并通过丰富的图表展示结果。用户可以创建Dashboard来监控系统的日志。
 
日志处理流程
 
下图展示了Docker 部署环境下典型的ELK日志处理流程
 
Logstash 负责从各个Docker 容器中提取日志,Logstash将日志转发到 Elasticsearch进行索引和保存,Kibana分析和可视化数据。
 
安装ELK
 
ELK的部署方案可以非常灵活,在规模较大的生产系统中,ELK有自己的集群,实现了高可用和负载均衡。我们的目标是在最短的时间内学习并实践ELK,因此采用最小部署方案,在容器中搭建ELK
 
root@host1:~# docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -itd --name elk sebp/elk
 
我们这里使用 sebp/elk 这个现成的image,里面包含了整理ELK stack。容器启动后ELK各个组件将分别监听如下端口
 
    5601    Kibana web 接口
    9200    Elasticsearch JSON 接口
    5044    Logstash 日志接收接口
 
启动时如果报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
 
执行下面命令临时修改系统参数
sysctl -a|grep vm.max_map_count
sysctl -w vm.max_map_count=262144
sysctl -a|grep vm.max_map_count
 
或者 在/etc/sysctl.conf文件最后添加一行,永久修改系统参数
vm.max_map_count=262144
 
我们先访问以下Kibana http://IP:5601
 
 
访问一下 Elasticsearch的JSON接口  http://IP:9200/_search?pretty
 
 
 
posted @ 2019-05-13 10:55  三角形  阅读(266)  评论(0编辑  收藏  举报