1.安装Docker

Docker可简单理解为一个轻量级的虚拟机。Docker对进程进行封装隔离,隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker和传统虚拟化方式的不同。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而Docker内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便:资源利用率高、启动迅速、迁移方便等。

1) 安装

官网有各种平台的安装指南,可参考:

https://docs.docker.com/engine/installation/

不同平台Docker安装大同小异,这里以MacOS系统为例:

a. 直接下载安装即可(命令注意输入法的中英文)

https://docs.docker.com/docker-for-mac/

b. 命令安装

$ brew install docker

2) 安装成功检测

输入如下命令:

$ docker --version

$ docker-compose --version

$ docker-machine –version

3) 镜像加速

鉴于国内的环境,可以采用VPN或阿里云等进行镜像加速,加快镜像软件的下载。

2. JavaWeb镜像软件制作

1) 安装CentOS

拉取最新稳定版本

$ docker pull centos

拉取特定版本

$ docker pull centos:centos6

注:若出现权限问题,命令行前面加sudo

查看当前所有镜像,确保安装成功

$ docker images

2) 创建CentOS容器

$ docker run –i -t centos /bin/bash

完整创建CentOS容器命令

& docker run -i -t --name centos1 -v /Users/devin/Documents/:/usr/local/ centos /bin/bash

注:-v<宿主机目录>:<容器目录>表示需要将本地哪个目录挂载到容器中,--name centos1表示创建的容器名字

退出容器命令行

& exit

停止容器

& docker stop容器ID

启动容器

& docker start 容器ID

进入容器命令

& docker exec -i -t 容器ID /bin/bash

查看容器命令

& docker ps      默认显示运行的容器

& docker ps –a   显示所有容器

删除容器

& docker rm 容器ID

删除镜像

& docker rmi 镜像ID

3) 安装JDK环境

进入CentOS命令环境,进入jdk存放存放目录,解压

# tar -zxvf jdk8.tar.gz

把jdk移动到/usr/local/java目录下

# mv jdk1.8.0_121 java

配置环境变量

# vi /etc/profile

在最后一行插入(快捷键G->o)

export JAVA_HOME=/usr/local/java/jdk1.8.0_121

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

export CATALINA_HOME=/usr/local/java/tomcat-8.5.12

export CATALINA_BASE=/usr/local/java/tomcat-8.5.12

按ESC退到命令模式,按:wq保存文件并退出vi,运行如下命令使保存生效

# source /etc/profile

查看是否安装成功

# java –version

4) 安装Tomcat

# tar -zxvf tomcat-8.5.tar.gz

把Tomcat移动到/usr/local/java目录下

# mv tomcat-8.5.12 java

启动Tomcat

# cd tomcat-8.5.12/bin

# ./startup.sh    #./shutdown.sh 关闭

5) 创建带JDK和Tomcat的镜像tempos

docker commit af7 tempos

在tempos镜像的基础上配置环境变量

a. 创建一个Dockerfile的目录,在里面建立一个Dockerfile文件,内容如下:

FROM         tempos

#配置java与tomcat环境变量

ENV JAVA_HOME /usr/java/jdk1.8.0_121

ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV CATALINA_HOME /usr/java/tomcat-8.5.12

ENV CATALINA_BASE /usr/java/tomcat-8.5.12

ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

#容器运行时监听的端口,多个端口可以继续换行EXPOSE  9200

EXPOSE  8080

b. 命令行中进入Dockerfile目录所在的路径,创建新的镜像javaweb

docker build -t tempos Dockerfile

镜像javaweb即是最终我们要的带开发环境和环境变量的镜像

& docker run -p 8080:8080 -i -t --name javaweb1 javaweb /bin/bash

如果暴露多个端口:-p <host_p1>:<container_p1> -p <host_p2>:<container_2>

启动Tomcat测试

# cd /usr/local/java/tomcat-8.5.12/bin                 ./startup.sh

3. ELK环境搭建

1) 安装和配置ElasticSearch

官网下载ElasticSearch

https://www.elastic.co/

安装ElasticSearch(需安装JDK8及以上版本),并移动至相应目录

# tar -zxvf elasticsearch-5.2.2.tar.gz

# mv elasticsearch-5.2.2 java

配置ElasticSearch

# vi config/elasticsearch.yml

network.host: 0.0.0.0   #设置这个配置,保证本机可以访问(Docker下)

启动ElasticSearch,进入elasticsearch-5.2.2/bin目录,执行

# ./elasticsearch                 # ./elasticsearch –d 不显示控制台信息

注:出于安全考虑,ElasticSearch不能用root账户启动,切换账户即可。

root切换为普通用户:su - username

普通切换为root用户:su - (docker exit退出)

添加用户、修改密码、删除用户

# adduser devin   # passwd devin  # userdel devin

查看用户信息

用户列表文件:/etc/passwd
用户组列表文件:/etc/group

查看所有用户:cut -d : -f 1 /etc/passwd
查看可登录用户:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1

通过下面命令查看是否成功:

curl http://127.0.0.1:9200 #直接输出网站前端源码

2) 安装和配置logstash

官网下载logstash、安装并移到java目录

https://www.elastic.co/downloads/logstash
# tar -zxvf logstash-5.2.2.tar.gz

# mv logstash-5.2.2 java

创建logstash配置文件:

# cd logstash-5.2.2/config

# vi logstash.conf

启动logstash(在目录elasticsearch-5.2.2下执行)

bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts  => "127.0.0.1:9200"} }'

其中也可以直接配置logstash的文件

input { stdin { } }

output {

elasticsearch { hosts => ["localhost:9200"] }

stdout { codec => rubydebug }

}

# ./bin/logstash -f config/logstash.conf

简单测试

bin/logstash -e 'input { stdin { } } output { stdout {} }'

Logstash检测

检测:bin/logstash -f config/logstash.conf --config.test_and_exit

开始:bin/logstash -f config/logstash.conf --config.reload.automatic

3) 安装和配置kibana

官网下载kibana

https://www.elastic.co/downloads/kibana

安装并移到java目录

# tar -zxvf kibana-5.2.2.tar.gz

# mv kibana-5.2.2 java

配置kibana

# cd java/kibana-5.2.2

# vi config/kibana.yml

server.port: 5601

server.host: "0.0.0.0"  #本机可访问

elasticsearch.url: http://127.0.0.1:9200

kibana.index: ".kibana"

启动kibana:

# ./bin/kibana

浏览器访问即可: http://localhost:5601

4) 安装和配置Filebeat

官网下载Filebeat

https://www.elastic.co/downloads/beats

安装并移到java目录

# tar -zxvf filebeat-5.2.2.tar.gz

# mv filebeat-5.2.2 java

编辑filebeat.yml(输出到elasticsearch)

paths:

- /usr/local/appLogs/*

output.elasticsearch:

# Array of hosts to connect to.

hosts: ["127.0.0.1:9200"]

启动filebeat

./filebeat -e -c filebeat.yml -d "publish"

5) 整合Filebeat、Logstash和ElasticSearch

修改Logstash配置文件logstash.conf

input {

beats {

port => 5044

}

}

修改Filebeat配置文件,注释掉其他的Outputs项,打开logstash的Outputs项

output.logstash:

# The Logstash hosts

hosts: ["127.0.0.1:5044"]

--------------------------------------------------------------------
PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。
--------------------------------------------------------------------

基于Docker的ELK日志平台搭建的更多相关文章

  1. elk日志平台搭建小记

    最近抽出点时间,搭建了新版本的elk日志平台 elastaicsearch 和logstash,kibana和filebeat都是5.6版本的 中间使用redis做缓存,版本为3.2 使用的系统为ce ...

  2. ELK日志平台搭建

    功能: 1. 查看当天的服务器日志信息(要求:在出现警告甚至警告级别以上的都要查询)2. 能够查看服务器的所有用户的操作日志3. 能够查询nginx服务器采集的日志(kibana作图)4. 查看tom ...

  3. Springboot项目使用aop切面保存详细日志到ELK日志平台

    上一篇讲过了将Springboot项目中logback日志插入到ELK日志平台,它只是个示例.这一篇来看一下实际使用中,我们应该怎样通过aop切面,拦截所有请求日志插入到ELK日志系统.同时,由于往往 ...

  4. ELK 日志平台构建

    elastic中文社区 https://elasticsearch.cn/ 完整参考 ELK实时日志分析平台环境部署--完整记录 https://www.cnblogs.com/kevingrace/ ...

  5. 基于Docker的TensorFlow机器学习框架搭建和实例源码解读

    概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的 ...

  6. Springboot项目搭配ELK日志平台

    上一篇讲过了elasticsearch和kibana的可视化组合查询,这一篇就来看看大名鼎鼎的ELK日志平台是如何搞定的. elasticsearch负责数据的存储和检索,kibana提供图形界面便于 ...

  7. 基于Docker&Kubernetes构建PaaS平台基础知识梳理

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 基于Docker&Kubernetes构建Paa ...

  8. 亿级 ELK 日志平台构建部署实践

    本篇主要讲工作中的真实经历,我们怎么打造亿级日志平台,同时手把手教大家建立起这样一套亿级 ELK 系统.日志平台具体发展历程可以参考上篇 「从 ELK 到 EFK 演进」 废话不多说,老司机们座好了, ...

  9. Docker 运行ELK日志监测系统,汉化Kibana界面

    1.ELK日志监控简介 ELK由Elasticsearch.Logstash和Kibana三部分组件组成: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引 ...

随机推荐

  1. POJ3083 Children of the Candy Corn(Bfs + Dfs)

    题意:给一个w*h的迷宫,其中矩阵里面 S是起点,E是终点,“#”不可走,“.”可走,而且,S.E都只会在边界并且,不会在角落,例如(0,0),输出的话,每组数据就输出三个整数,第一个整数,指的是,以 ...

  2. 白话图解HTTPS原理

        [前言]最近看过几篇文章,内容是关于"全民HTTPS"的.为什么HTTPS,突然会受到如此多业内人士的青睐呢?HTTPS究竟是什么呢?它与HTTP又有怎样的区别呢? 带着这 ...

  3. webMagic解析淘宝cookie 提示Invalid cookie header

    webMagic解析淘宝cookie 提示Invalid cookie header 在使用webMagic框架做爬虫爬取淘宝极又家页面时候一直提醒cookie设置不可用如下图 淘宝的验证特别严重,c ...

  4. win10下Python3.6安装、配置以及pip安装包教程

    0.目录 1.前言 2.安装python 3.使用pip下载.安装包 3.1 安装Scrapy 3.2 安装PyQt 3.3 同时安装多个包 3.4 pip的常用命令 1.前言 之前在电脑上安装了py ...

  5. java 后台代码调用接口

    import com.jiuqu.jollykeys.common.util.JsonUtil;import java.io.UnsupportedEncodingException;import j ...

  6. SqlParameter 用法总结

    作用 解决恶意的T-sql语句攻击第一种 //传入参数 string ProductGroupCode, string Ismaintain, int HierarchyID, string BOMN ...

  7. Object-Relational Structural Patterns

    Single Table Inheritance Represents an inheritance hierarchy of classes as a single table that has c ...

  8. linux0.11学习笔记(1)

    公布软件包包括内容: bootimage.Z - 具有美国键盘代码的压缩启动映像文件: rootimage.Z - 以1200kB 压缩的根文件系统映像文件: linux-0.11.tar.Z- 内核 ...

  9. 自己手写WEB程序框架并执行

    1.新建目录,起名MyWeb 2.目录下,新建两个目录 WEB-INF, META-INF,,还能够新建一些jsp,html文件 ,如 index.html 3在WEB-INF中必须存在一个文件WEB ...

  10. 赵雅智_Swift(1)_swift简单介绍及类型

    Swift 是 iOS 和 OS X 应用开发的一门新语言. 假设你有 C 或者 Objective-C 开发经验, Swift 的非常多内容都是你熟悉的. Swift 的类型是在 C 和 Objec ...