dockerfile部署ELK

2024-08-23 10:04
文章标签 部署 elk dockerfile

本文主要是介绍dockerfile部署ELK,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

架构

一台docker虚拟机

docker部署elasticsearch-6.7.2  ES1 :172.111.0.11

docker部署elasticsearch-6.7.2  ES2 :172.111.0.12

docker部署logstash-6.7.2 :172.111.0.13  可以用现成的镜像

docker部署kibana-6.7.2-x86_64 :172.111.0.14  可以用现成的镜像


实验步骤

cd /opt

mkdir es1 es2 logstash kibana

Elasticsearch镜像

ES1

cd /opt
上传elasticsearch的rpm包安装包
cd es1
cp /etc/yum.repos.d/Centos-7.repo  .
rpm -ivh /opt/elasticsearch-6.7.2.rpm

cp /etc/elasticsearch/elasticsearch.yml .
对elasticsearch.yml文件进行修改
vim elasticsearch.yml

# --17行-- 取消注释
cluster.name: elk-cluster
# --23行-- 取消注释
node.name: node-1
# --55行-- 取消注释,修改
network.host: 0.0.0.0
# --59行-- 取消注释
http.port: 9200
#--23行-- 回到23行开始添加内容
node.master: true
node.data: true
# --61行-- 添加
transport.tcp.port: 9300
# --71行-- 取消注释,修改,这里可以直接用容器名通信,不必非得写IP地址
discovery.zen.ping.unicast.hosts: ["172.111.0.11:9300","172.111.0.12:9300"]
 

编写Dockerfile

vim Dockerfile

FROM centos:7
MAINTAINER this is ES1 <ELK>
COPY Centos-7.repo elasticsearch-6.7.2.rpm /opt/
WORKDIR /etc/yum.repos.d/
RUN rm -rf * && \cp /opt/Centos-7.repo . && \yum clean all && yum makecache && \yum -y install java ntpdate net-tools && \useradd -M -s /bin/bash elasticsearch && \rpm -ivh /opt/elasticsearch-6.7.2.rpm && \chown -R elasticsearch:elasticsearch /usr/share/elasticsearch
COPY elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
RUN chown -R elasticsearch:elasticsearch /etc/elasticsearch
USER elasticsearch
EXPOSE 9200
CMD ["/usr/share/elasticsearch/bin/elasticsearch"]

docker build -t es:master .
# 创建自定义网络
docker run -itd --name es1 --net=mynetwork1 --ip 172.111.0.11 -p 9200:9200 es:master
docker exec -it es1 bash
docker ps -a

ES2

cp /opt/es1/* /opt/es2
对elasticsearch.yml文件进行修改
vim elasticsearch.yml

# --23行-- 修改
node.name: node2
node.master: false
 

再修改Dockerfile

MAINTAINER this is ES2 <ELK>

完整版

vim DockerfileFROM centos:7
MAINTAINER this is ES2 <ELK>
COPY Centos-7.repo elasticsearch-6.7.2.rpm /opt/
WORKDIR /etc/yum.repos.d/
RUN rm -rf * && \cp /opt/Centos-7.repo . && \yum clean all && yum makecache && \yum -y install java ntpdate net-tools && \useradd -M -s /bin/bash elasticsearch && \rpm -ivh /opt/elasticsearch-6.7.2.rpm && \chown -R elasticsearch:elasticsearch /usr/share/elasticsearch
COPY elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
RUN chown -R elasticsearch:elasticsearch /etc/elasticsearch
USER elasticsearch
EXPOSE 9200
CMD ["/usr/share/elasticsearch/bin/elasticsearch"]

docker build -t es:slave .
docker run -itd --name es2 --net=mynetwork1 --ip 172.111.0.12 -p 9201:9201 es:slave
docker exec -it es2 bash

验证

浏览器访问宿主机的地址

http://192.168.233.11:9200/ ,http://192.168.233.11:9201/

Logstash镜像

拉取logstash和kibana的v6.7.2版本镜像

docker pull logstash:6.7.2
docker pull kibana:6.7.2

logstash镜像编排

cd /opt/logstash
vim logstash.yml
编写yml文件
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.url: [ "http://es1:9200","http://es2:9200" ]

vim logstash.conf
编写 conf 文件,定义输入输出,指定输入之一为宿主机Apache的日志文件
input {
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 5044
    codec => "json"
  }
  file {
    path => "/opt/logs/*_log"
    start_position => "beginning"
  }
}
output {
  elasticsearch {
    hosts => [ "http://es1:9200","http://es2:9202" ]
    index => "elk-%{+YYYY.MM.dd}"
  }
}

vim Dockerfile

FROM logstash:6.7.2
USER root
COPY logstash.yml ./config/logstash.yml
COPY logstash.conf ./pipeline/logstash.conf

docker build -t logstash:elk . 
docker run -itd --name logstash -v /etc/httpd/logs/:/opt/logs/ --net mynetwork1 --ip 172.111.0.13 -p 5044:5044 -p 9600:9600 logstash:elk
docker exec -it logstash bash
cd /opt/logs/

注:为了方便,把logstash镜像的权限设置为root,否则宿主机共享过去的Apache日志文件logstash都无权限访问

访问几次宿主机的Apache服务,并查看Apache的日志文件是否共享到容器内

kibana镜像

cd /opt/kibana
vim kibana.yml
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://es1:9200","http://es2:9201" ]

vim Dockerfile

FROM kibana:6.7.2
COPY kibana.yml ./config/kibana.yml
USER root
RUN chown kibana.kibana ./config/kibana.yml
USER kibana

docker build -t kibana:elk . 
docker run -itd --name kibana --net mynetwork1 --ip 172.111.0.14 -p 5601:5601 kibana:elk
docker exec -it kibana bash

访问kibana的web页面,查看日志数据并建立对应索引

这篇关于dockerfile部署ELK的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1099070

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

Linux部署jar包过程

《Linux部署jar包过程》文章介绍了在Linux系统上部署Java(jar)包时需要注意的几个关键点,包括统一JDK版本、添加打包插件、修改数据库密码以及正确执行jar包的方法... 目录linux部署jar包1.统一jdk版本2.打包插件依赖3.修改密码4.执行jar包总结Linux部署jar包部署

deepseek本地部署使用步骤详解

《deepseek本地部署使用步骤详解》DeepSeek是一个开源的深度学习模型,支持自然语言处理和推荐系统,本地部署步骤包括克隆仓库、创建虚拟环境、安装依赖、配置模型和数据、启动服务、调试与优化以及... 目录环境要求部署步骤1. 克隆 DeepSeek 仓库2. 创建虚拟环境3. 安装依赖4. 配置模型

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选