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. Django框架(八)--单表增删改查,在Python脚本中调用Django环境

    一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...

  2. iOS开发xib控件删不掉,修改xib运行不发生改变,修改xib不管用

    修改xib控件tag值,颜色,大小,甚至删除发现编译.运行之后效果没改变,用代码修改内容发现管用, 其实只需要clean一下!^_^ 快捷键:shift + command + k

  3. Windows下Redis安装配置和使用注意事项

    Windows下Redis安装配置和使用注意事项 一:下载 下载地址: https://github.com/microsoftarchive/redis/releases 文件介绍: 本文以3.2. ...

  4. 在eclipse中安装使用lombok插件

    Eclipse安装lombok插件 1.下载lombok.jar,lombok.jar官方下载地址:https://projectlombok.org/download 2.双击下载好的lombak. ...

  5. 从架构开始谈dubbo(一)

    架构发展史 一.单体应用架构      当网站流量很小时,所有的功能写在一个项目中,打包部署在tomcat中.          例如:公司管理系统,超市的收银系统         也可以将单体应用部 ...

  6. 修改Discuz!X系列开启防CC攻击,不影响搜索引擎收录

    最近网站一直被攻击,特别是新上线的交流社区,所以今天写了一个开启CC攻击防护代码,而且不影响搜索引擎收录. 在config_global.php文件中有如下代码: $_config['security ...

  7. discuz开发实现自动获取后台入口代码

    一般discuz后台入口默认是admin.php,不过部分用户为了安全可能会修改后台入口文件名称,可以用代码 '.ADMINSCRIPT.'?frame=no&action=tools& ...

  8. go安装及使用

    一.安装 Windows直接使用 MSI installer . 默认安装目录为 C:\Go,回自动配置好环境变量. 并默认设置工作目录为:C:\Users\用户名\go 二.使用 在默认的工作目录下 ...

  9. VS 编译总是出现错误: "LC.EXE 已退出,代码为-1"

    最近在开发CS的一个项目时,编译总是出现错误: "LC.EXE 已退出,代码为-1" 解决方法一:用记事本打开*.licx,里面写的全是第三方插件的指定DLL,删除错误信息,保存, ...

  10. 出现 sudo: unable to resolve host XXX 信息解决办法

    Ubuntu环境,  每次执行sudo 就出现这个警告讯息:sudo: unable to resolve host XXX虽然sudo 还是可以正常执行,是机器在反解上的问题, 所以就直接从/etc ...