• 基于Docker的ELK日志平台搭建


    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) 创建带JDKTomcat的镜像tempos

    docker commit af7 tempos

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

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

    FROM         tempos

    #配置javatomcat环境变量  

    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) 整合FilebeatLogstashElasticSearch

    修改Logstash配置文件logstash.conf

    input {  

      beats {

            port => 5044

        }

     }

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

    output.logstash:

      # The Logstash hosts

      hosts: ["127.0.0.1:5044"]

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

  • 相关阅读:
    玲珑oj 1129 ST
    HDU 3397 线段树区间修改
    bzoj 1798 双标记区间修改线段树
    HDU 4417 BIT or ST
    HDU 2492 BIT/逆序数/排列组合
    uva 12086 线段树or树状数组练习
    cf 833 A 数论
    wcf的DataContractAttribute与DataMenmberAttribute
    wcf服务查看工具
    git学习-综合性文章
  • 原文地址:https://www.cnblogs.com/devinzhang/p/6962404.html
Copyright © 2020-2023  润新知