1、安装docker前安装pip

sudo yum -y install epel-release

sudo yum install python-pip

2、安装docker

#安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2
#添加docker yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#可选操作:允许拓展最新的不稳定的repository
yum-config-manager --enable docker-ce-edge
#安装Docker
yum -y install docker-ce

#安装docker-compose

sudo pip install -U docker-compose
#启动Docker
systemctl start docker

安装ELK:

1、下载镜像

这里我们使用elk集成镜像,地址:https://hub.docker.com/r/sebp/elk/tags

[root@centos-mq ~]# docker pull sebp/elk:660

注:660为elk版本

2、启动

[root@centos-mq ~]# echo "vm.max_map_count=262144" > /etc/sysctl.conf
[root@centos-mq ~]# sysctl -p
[root@centos-mq ~]# docker run -dit --name elk \
-p 5601:5601 \
-p 9200:9200 \
-p 5044:5044 \
-v /opt/elk-data:/var/lib/elasticsearch \
-v /etc/localtime:/etc/localtime \
sebp/elk:660

说明:-p 指定映射端口,5601kibana访问,9200es端口,5044 logstash收集日志端口;-v 指定es数据目录

3、访问

启动后等待数据初始化后,浏览器输入:http://10.200.110.106:5601/app/kibana,可看到kibana web界面

4、文件目录

通过docker exec -it elk /bin/bash可进入容器中,具体各服务配置文件路径如下

 [root@centos-mq ~]# docker exec -it elk /bin/bash
/etc/logstash/ ## logstash 配置文件路径
/etc/elasticsearch/ ##es 配置文件路径
/var/log/ ## 日志路径

5、通过filebeat收集java

filebeat部署,版本最好与elk一直,这里也选择6.6.0版本,filebeat部署在应用所在服务器,进行日志收集,日志样例;

  a)下载安装

[root@centos-mq ~]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.0-x86_64.rpm
[root@centos-mq ~]# rpm -ivh filebeat-6.6.0-x86_64.rpm

我本地是windows的,参考《windows系统安装运行filebeat

 b)配置收集java日志

[root@vanje-dev02 ~]# vim /etc/filebeat/filebeat.yml
#=========================== Filebeat inputs ============================
filebeat.inputs:- type: log
enabled: true
paths:
- /apps/oneJars/himalaya/logs/one.log ## 日志路径
tags: ["one-himalaya"]             ## 标签,用于判断
multiline.pattern: '^\d{4}-\d{2}-\d{2}'   ## 匹配日志开头
multiline.negate: true             ## 日志合并
multiline.match: after
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  #hosts: ["localhost:9200"]      ## 注释 这里是配置采集的日志存放的方式,我们先经过logstash处理,所以这里注释
#----------------------------- Logstash output --------------------------------
output.logstash:
  hosts: ["10.10.0.13:5044"]   ## 采集日志输出到logstash,ip为logstash服务ip
## 启动filebeat
[root@vanje-dev02 ~]# systemctl restart filebeat

  c)logstash配置

以下配置只是收集"2019-06-19 14:34:23.261 [http-nio-8090-exec-7] INFO  com.one.api.user.controller.UserBacklogController - [李强]:获取待办数"格式日志,用来分析用户使用时间及姓名

## 定过滤指定日志,没用的日志我们这里不收集,正常是要收集所有,
vim /etc/logstash/conf.d/02-beats-input.conf
input {
beats {
port => 5044
}
}
filter {
#if "one-himalaya" in [tags] {
if [message] =~ '获取待办数' {
grok {
patterns_dir => ["/etc/logstash/patterns"]
match => {
"message" => "%{DAYTIME:day}\s*%{THREAD:thread}\s%{LOGEVL:level}\s*%{JAVACLASS:class}\s*- \[%{JAVALOGMESSAGE:logmessage}\]:"
}
}
}
}
output {
# if "one-himalaya" in [tags] {
if [message] =~ '获取待办数' {
elasticsearch {
hosts => ["172.16.223.55:9200"]
index => "one-himalaya10-15-%{+YYYY.MM.dd}"
}
}
} ## 自定义匹配规则
vim /etc/logstash/patterns
DAYTIME \d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{1,2}.\d{1,4}
LOGEVL [a-zA-Z]{4}
NUM \d{1}
THREAD \[http-nio-\d{4}-exec-\d{1,3}\] ## 重启logstash
/etc/init.d/logstash restart

说明:实际生产中,我们会对收集的日志做各种分析提取,需要灵活使用grok 正则匹配来提取自己想要的数据。 可以通过Kibana Dev Tools>>Grok Debugger工具进行调式,例如:

6、kibana查看日志

打开kibana web界面,跟据提示创建索引,即可看到已经收集的日志信息:day logmessage 这两个字段,为切割日志自定义的字段,这些字段跟据自己所需灵活定义,以区分切割的数据。

Docker 部署ELK的更多相关文章

  1. Docker 部署 elk + filebeat

    Docker 部署 elk + filebeat kibana 开源的分析与可视化平台logstash 日志收集工具 logstash-forwarder(原名lubmberjack)elastics ...

  2. Docker 部署ELK之Sentinl日志报警

    前篇文章简单介绍了Docker 部署ELK,以及使用filebeat收集java日志.这篇我们介绍下日志报警配置,这里我们使用Sentinl插件. 1.修改kibana参数 进入elk容器,修改对应参 ...

  3. 利用docker部署elk交换机日志分析

    今天我们来聊一下利用docker部署elk日志分析系统,这里解析一下elk是啥东西.elk分别是Elasticsearch,Logstash和Kibana的首字母缩写. Elasticsearch是一 ...

  4. 被一位读者赶超,手摸手 Docker 部署 ELK Stack

    被一位读者赶超,容器化部署 ELK Stack 你好,我是悟空. 被奇幻"催更" 最近有个读者,他叫"老王",外号"茴香豆泡酒",找我崔更 ...

  5. Linux实战(20):非docker部署ELK

    部署环境: Elasticsearch:7.5.2 Kibana:7.5.2 Logstash:7.5.2 filebeat:7.5.2 redis:最新版 部署方式:rpm+二进制包 使用架构 软件 ...

  6. Docker部署ELK之部署filebeat7.6.0(3)

    1. filebeat介绍 Filebeat是用于转发和集中日志数据的轻量级传送工具.Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logsta ...

  7. docker部署ELK日志处理

    docker环境下部署的ELK系统,日志处理,保留最近五个小时的日志 dockerlog.sh #!/bin/bash logs=`find /var/lib/docker/containers/ - ...

  8. Docker部署ELK 日志归集

    ELK ELK是Elasticsearch.Logstash.Kibana的缩写,使用ELK的原因是因为公司使用Spring cloud部署了多个微服务,不同的微服务有不同的日志文件,当生产上出现问题 ...

  9. Docker部署ELK 7.0.1集群之Logstash安装介绍

    1.下载镜像 [root@vanje-dev01 ~]# docker pull logstash: 2.安装部署 2.1  创建宿主映射目录 [root@vanje-dev01 ~]# mkdir ...

随机推荐

  1. centos7安装jdk1.7(rpm版)

    一.环境 centos7 jdk-7u80-linux-x64.rpm下载:链接:https://pan.baidu.com/s/10UMrxNE1d2ZbDt7kvBM1yQ   提取码:pmov  ...

  2. jQuery常用API之jQuery选择器

    3.jQuery常用API 3.1 jQuery选择器 3.1.1 jQuery基础选择器 原生JS获取元素的方式很多.很杂,而且兼容性情况不一致,因此jQuery给我做了封装,是获取元素统一了标准 ...

  3. 关于网页布局中常见的margin: 0px ; padding: 0px; 总结

    我们在网页布局中常用到margin: 0px; padding: 0px;  但是在大型的网站布局中通常不这样写通常是按下面这种方式. ul, li, ol, dl, dt, dd, div, p, ...

  4. Scrum冲刺第一篇

    一.各个成员在 Alpha 阶段认领的任务 负责人和协作者 任务内容 陈嘉欣 设计编码规范 邓镇港 UI设计 肖烈涛 数据库设计 林德泽 设计测试计划 余晓东 用户注册登陆验证模块 陈嘉欣 余晓东 林 ...

  5. 使用策略组禁止win10某个程序运行

    打开策略组:win+R----gpedit.msc 一.计算机配置——windows设置——安全设置——软件限制策略——其他规则——空白处右键,新建哈希规则 点击浏览,并不安全级别设置为不允许,选中程 ...

  6. [Go] golang的用途和windows搭建环境

    Golang核心编程: 区块链研发工程师(分布式账本技术,互联网数据库技术,特点是去中心化) Go服务器端/游戏软件工程师(现在主流是C C++,处理日志,数据打包,文件处理,美团后台流量支撑,处理大 ...

  7. kolla-ansible部署openstack allinone单节点

    环境准备 2 network interfaces 8GB main memory 40GB disk space 1.修改hostname hostnamectl set-hostname koll ...

  8. 简易解说拉格朗日对偶(Lagrange duality)(转载)

    转载自https://www.cnblogs.com/90zeng/p/Lagrange_duality.html,本人觉得讲的非常好! 1.原始问题 假设是定义在上的连续可微函数(为什么要求连续可微 ...

  9. Python中print用法里面% ,"%s 和 % d" 代表的意思

    Python 编程 里面% . "%s 和 % d" 代表的意思 %s,表示格化式一个对象为字符 %d,整数 "Hello, %s"%"zhang3& ...

  10. 201871010132--张潇潇--《面向对象程序设计(java)》第十二周学习总结

    博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...