ELK是ElasticSearch、Logstash、Kibana的简称,一般用于日志系统,从日志收集,日志转储,日志展示等入手,用以提供简洁高效的日志处理机制。

鉴于没有额外的机器,这里就用docker来简单模拟下一个简单ELK系统的部署和使用。

搭建ElasticSearch

新建elasticsearch目录,并再其下新建文件config/elasticsearch.yml,文件内容如下:

network.host: 0.0.0.0
xpack:
ml.enabled: false
monitoring.enabled: false
security.enabled: false
watcher.enabled: false

在ubuntu 主机配置vm.max_map_count参数(永久生效):

vi /etc/sysctl.conf
#修改vm.max_map_count =
sysctl -p

(一次生效):sysctl -w vm.max_map_count=262144

2.在elasticsearch 文件夹下执行

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.4.
docker run --rm -it -p : -p : -v "$PWD"/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml docker.elastic.co/elasticsearch/elasticsearch:6.4.

同时其他配置文件也可以写在config文件下,同时映射进容器中;至此elasticsearch安装完成。

二、安装Logstash

新建logstash文件夹,并在其下新建config、pipeline两个文件夹

其中config文件夹下有文件logstash.yml、pipelines.yml。内容分别为:

logstash.yml:

config:
reload:
automatic: true
interval: 3s
xpack:
management.enabled: false
monitoring.enabled: false

pipelines.yml:

- pipeline.id: test
path.config: "/usr/share/logstash/pipeline/logstash-test.conf"

然后pipeline文件夹下有文件logstash-test.conf,内容为(192.168.100.3 是我ubuntu的主机ip):

input {
file {
path => ["/usr/share/logstash/pipeline/logs/test.log"]
start_position => "beginning"
}
} filter {
mutate {
gsub => ["message", "\r", ""]
}
dissect {
mapping => {"message" => "%{date} %{+date} [%{task} %{+task}] [%{type}] %{class} - %{info}"}
}
} output {
elasticsearch { hosts => ["192.168.100.3:9200"] }
stdout { codec => rubydebug }
}

最后在logstash文件夹下运行命令:

docker pull docker.elastic.co/logstash/logstash:6.4.
docker run --rm -it -v "$PWD"/pipeline/:/usr/share/logstash/pipeline/ -v "$PWD"/config/:/usr/share/logstash/config/ docker.elastic.co/logstash/logstash:6.4.

在输入中:输入的日志文件使用/usr/share/logstash/pipeline/logs/test.log,只需将日志文件放入pipeline/logs/下,或者手动映射进容器即可。另外输入文件路径支持模糊匹配。

在过滤器中定义了去掉消息中的换号符号,以及定义了消息格式。这里的消息格式自定义方法参阅:https://www.elastic.co/guide/en/logstash/6.4/filter-plugins.htm

安装kibana

新建kibana文件夹,并在其下新建config/kibana.yml文件,内容如下:

server.host: "0.0.0.0"
elasticsearch.url: http://192.168.100.3:9200
xpack:
apm.ui.enabled: false
graph.enabled: false
ml.enabled: false
monitoring.enabled: false
reporting.enabled: false
security.enabled: false
grokdebugger.enabled: false
searchprofiler.enabled: false

最后在kibana文件夹下运行命令:

docker pull docker.elastic.co/kibana/kibana:6.4.
docker run --rm -it -p : -v "$PWD"/config/kibana.yml:/usr/share/kibana/config/kibana.yml docker.elastic.co/kibana/kibana:6.4.

运行结果:

当然安装也可以用 caas/docker-elk 一键搞定

参考文章 :

twtrubiks/docker-elk-tutorial

https://www.cnblogs.com/hackyo/p/9951684.html

https://www.jianshu.com/p/b81e1b7c0efb

http://chenzhijun.me/2017/12/27/elk-docker/

https://blog.csdn.net/Marksinoberg/article/details/87434155

ubuntu18 docker中部署ELK的更多相关文章

  1. 使用Docker快速部署ELK分析Nginx日志实践(二)

    Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...

  2. 使用Docker快速部署ELK分析Nginx日志实践

    原文:使用Docker快速部署ELK分析Nginx日志实践 一.背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前 ...

  3. 在docker中部署centos7镜像

    本篇文章参考自: https://www.cnblogs.com/linjj/p/5606911.html https://blog.csdn.net/u012767761/article/detai ...

  4. docker 中部署一个springBoot项目

    docker 中部署一个springBoot项目 (1)介绍 springBoot项目 1.项目结构 2.pom.xml <?xml version="1.0" encodi ...

  5. 如果在docker中部署tomcat,并且部署java应用程序

    1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创 ...

  6. ​在Docker中部署GreatSQL并构建MGR集群

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 为了方面社区用户体验GreatSQL,我们同时还提供Docker镜像,本文详细介绍如何在Docker中部署GreatSQL ...

  7. Docker中部署Kubernetes

    Kubernetes为Google开源的容器管理框架,提供了Docker容器的夸主机.集群管理.容器部署.高可用.弹性伸缩等一系列功能:Kubernetes的设计目标包括使容器集群任意时刻都处于用户期 ...

  8. docker中部署mongodb副本集

    1.基本信息如下 服务器地址 192.168.73.129 副本集名称 rs 容器节点及端口映射         m0 37017:27017         m1 47017:27017       ...

  9. docker方式部署elk日志搜索平台

    Docker部署ELKF操作文档 前提介绍 1.之前搭建elk+f+k使用原生系统软件安装方式,由于docker镜像日趋成熟,docker官网和elastic官网都有相关镜像和各自安装文档可供参考,各 ...

随机推荐

  1. JavaScript深入浅出第3课:什么是垃圾回收算法?

    摘要: JS是如何回收内存的? <JavaScript深入浅出>系列: JavaScript深入浅出第1课:箭头函数中的this究竟是什么鬼? JavaScript深入浅出第2课:函数是一 ...

  2. Python之路(第四十七篇) 协程:greenlet模块\gevent模块\asyncio模块

    一.协程介绍 协程:是单线程下的并发,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的. 协程相比于线程,最大的区别在于 ...

  3. CentOS设置静态IP及Samba等基础设置

    1. CentOS7设置静态IP CentOS的网卡IP配置文件/etc/sysconfig/network-scripts/ifcfg-网卡名字. 配置参数解析: BOOTPROTO="s ...

  4. AAC的RTP封装中的AU头分析

      解码器收到一个RTP的AAC流,发现RTP流里的音频里带有4个字节AU头,然后才是AAC的ADTS头.     这种情况之前已经出现过多次,每次我们都告知对方,不要往AAC前面加AU头,解码器不支 ...

  5. 初学者git的用法

    初学者github的用法 1.在github上创建一个自己的工程 2.按着上面的要求执行你的命令行 3.将你的代码放到这个已经创建了.git的文件夹中,执行git add . 系统出现如下错误:war ...

  6. Windows C盘扩容

    工具:大白菜pe1.将F盘数据拷贝放其他盘,并格式化F盘.2.进入大白菜PE,使用DiskGenius工具,右键C盘图示->扩容->C盘,继续其他操作.(其中,需将F盘释放为未使用,然后将 ...

  7. PyCharm编写的代码生成可执行文件操作步骤

    1.打开Pycharm.2.打开Terminal(快捷键Alt + F12) 3.安装pyinstaller工具输入:pip install pyinstaller4.生成本项目可执行文件Termin ...

  8. odoo技术笔记

    接触odoo将近半年: 学到的知识点整理如下:

  9. 原语:从0到1,从硬件指令集到OS原语,锁原语的哲学

    在道家的世界观中,无极生太极,是这个世界的从0到1. 天地之道,以阴阳二气造化万物.天地.日月.雷电.风雨.四时.于前午后,以及雄雌.刚柔.动静.显敛,万事万物,莫不分阴阳.人生之理,以阴阳二气长养百 ...

  10. IIS添加MIME类型.woff/.svg/.woff2/.eot/.otf.ttf

    IIS添加MIME类型: 文件扩展名 MIME类型 .svg     image/svg+xml.woff   application/x-font-woff.woff2 application/x- ...