`

基于Docker的ELK日志平台搭建

阅读更多

基于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"]

分享到:
评论

相关推荐

    elk的docker-compose配置

    接下来,我们来看看如何使用Docker Compose搭建ELK环境: 1. **安装Docker和Docker Compose**:确保你已经在你的系统上安装了Docker和Docker Compose。这两个工具是运行容器化应用的基础。 2. **创建`docker-...

    Centos7 docker-compose安装ELK+Filebeat.zip

    在IT行业中,ELK(Elasticsearch、Logstash、Kibana)栈是广泛...通过这个教程,你将能够在CentOS 7上搭建一个功能齐全的ELK+Filebeat日志管理平台,利用docker-compose简化部署流程,高效处理和分析服务器的日志数据。

    基于Docker快速搭建ELK的方法

    【摘要】 本文基于自建的Docker平台速搭建一套完整的ELK系统,相关的镜像直接从Docker Hub上获取,可以快速实现日志的采集和分析检索。 准备镜像 获取ES镜像:docker pull elasticsearch:latest 获取kibana镜像:...

    docker-elk-elasticsearch:Elasticsearch Docker映像

    总的来说,`docker-elk-elasticsearch` 映像是快速搭建和管理 Elasticsearch 服务的理想选择,尤其适合需要 ELK 解决方案的开发和运维团队。通过 Docker 的便捷性,你可以轻松地集成 Logstash 和 Kibana,实现完整的...

    云平台架构与部署指南

    随着容器化技术的兴起,尤其是Docker的广泛应用,越来越多的企业开始采用基于Docker的云平台进行生产环境的搭建与管理。本文旨在提供一份详细的云平台架构与部署指南,特别是针对基于Docker的环境,帮助读者更好地...

    ELK-docker:具有Curator和Beats数据托运人支持的ELK监视堆栈的Docker配置

    ELK-docker项目是一个利用Docker容器化技术搭建的、包含Curator和Beats数据托运人的ELK(Elasticsearch, Logstash, Kibana)监视堆栈。这个配置为日志管理和分析提供了灵活且高效的解决方案,尤其适用于分布式系统和...

    compose-elk.zip

    总之,“compose-elk.zip”提供了通过Docker Compose部署ELK堆栈的简便方式,简化了日志管理系统的搭建和维护过程。用户可以快速设置一个功能完备的日志分析环境,方便进行日志收集、处理、存储和可视化。

    ElasticStack(ELK)从入门到实践.pdf

    文档中也提到了一些具体的应用场景,例如使用ELK搭建蘑菇博客日志收集系统。这涉及到拉取ElasticStack镜像,制作容器,启动ElasticSearch、Logstash、Beats和Kibana的过程。通过实践,用户可以学习到如何将ELK Stack...

    Spring Cloud与Docker高并发微服务架构设计实施.rar

    例如,Prometheus和Grafana组合可以提供强大的监控解决方案,ELK(Elasticsearch、Logstash、Kibana)堆栈则有助于日志管理和分析。Jenkins作为CI/CD工具,可以自动化代码构建、测试和部署流程,确保快速迭代和高...

    基于SpringCloud 微服务框架搭建的视频直播平台 毕业设计.zip

    【标题】"基于SpringCloud 微服务框架搭建的视频直播平台 毕业设计" 提供了一个关于构建视频直播系统的技术方案,它利用了SpringCloud作为核心架构来实现微服务化。SpringCloud是一个用于简化微服务开发和管理的工具...

    docker-symfony:面向Docker Symfony SOA的NGINX,PHP7-FPM,MySQL,Redis,ELK(Elasticsearch Logstash和Kibana),Varnish和CouchDB

    这个docker-symfony项目适合于需要快速搭建和扩展复杂Web应用的开发者,尤其是那些基于Symfony框架且对性能、监控和扩展性有较高要求的项目。通过Docker Compose,可以方便地管理这些服务的启动、配置和更新,简化...

    分布式集群电商平台搭建方案 代码

    分布式集群电商平台搭建方案 在构建大型的电商平台时,分布式集群技术是不可或缺的组成部分。它能够提高系统的可扩展性、容错性和性能,确保在高并发访问下也能稳定运行。本方案将详细介绍如何使用Java实现一个...

    docker_pdf.rar

    资料可能涵盖了如何集成Prometheus、Grafana等监控工具,以及如何设置和使用Elasticsearch、Logstash、Kibana(ELK Stack)进行日志管理。 9. **安全性**:安全是k8s集群不可忽视的部分,包括RBAC(Role-Based ...

    深度学习平台搭建的关键技术点.docx

    7. **监控与日志**:监控系统如Prometheus和Grafana,以及日志管理系统如ELK(Elasticsearch, Logstash, Kibana)组合,能帮助追踪平台性能,及时发现并解决问题。 8. **安全性**:确保平台的安全性是至关重要的。...

    微服务性能监控与日志收集v2

    2. **日志收集系统搭建**:利用Fluentd作为日志收集器,将各个服务的日志信息统一收集到中央日志服务器上,再通过Splunk进行日志数据分析和检索。 #### 四、最佳实践建议 - **自动化监控配置**:尽可能自动化配置...

    springboot321基于java的校园服务平台设计与开发.zip

    使用Spring Boot Actuator进行健康检查和监控,集成ELK(Elasticsearch、Logstash、Kibana)或Prometheus+Grafana进行日志收集和可视化分析。 总结,基于Java的SpringBoot校园服务平台设计与开发,是一项综合运用...

    基于SpringCloud微服务的疑难病案编码分析学习平台.pdf

    SpringBlade提供了完整的前后端分离方案,前端基于Vue,方便快速搭建企业级微服务平台。 【Flowable工作流引擎】Flowable是一款轻量级的BPMN 2.0流程引擎,用于处理业务流程。在疑难病案编码分析学习平台中,...

    这是一个适用于在debian系统上部署nas常用软件的脚本。它可以帮助用户快速安装想要的软件环境和docker应用.zip

    9. **监控和日志**:集成监控工具(如Prometheus、Grafana)和日志管理系统(如Logstash、Elasticsearch、Kibana,即ELK栈)可以实时监控NAS的性能和健康状态。 10. **故障恢复和备份**:良好的NAS部署应考虑数据...

    基于云原生架构构建亿级多语言电商平台设计到落地实现(3个阶段全)

    "基于云原生架构构建亿级多语言电商平台设计到落地实现"的视频教程涵盖了从设计、开发到实施的全过程,旨在帮助开发者和企业理解如何利用云原生技术来搭建能够处理亿级用户流量、支持多语言的高效平台。 云原生是一...

Global site tag (gtag.js) - Google Analytics