裸机安装部署运行ELK全套教程

裸机安装部署运行ELK全套教程

1: 内容概要

  • 1.1:本教程的核心目标是从基础出发,首先学习如何从头开始搭建一套ELK(Elasticsearch, Logstash, Kibana)系统。在此过程中,您将获得关于虚拟机(VM)安装和使用的知识,同时掌握Docker命令的基础操作。最终,本教程将通过模拟业务场景的应用演示,来展示ELK系统的运行和使用。

  • 1.2:涉及软件和应用组件:vmware、docker、elasticsearch、kibana、logstash、kafka、springboot。

  • 1.3:如果您对一些基本概念感到不熟悉,可以自行通过百度进行查询和学习。

  • 1.4: 本教程将提供一个Spring Boot应用程序的示例,该程序演示了如何与ELK(Elasticsearch, Logstash, Kibana)集成。

  • 1.5:博客地址:https://blog.csdn.net/itman1010

  • 1.6:在本人博客资源下载所有安装介质
    在这里插入图片描述

1.7:构建系统一定要仔细和耐心!!!!!!


2: 系统架构


3: 安装vmware

  • 3.1:如果已经有linux系统,则可以直接跳到步骤5

  • 3.2:如果是windows系统,则需要安装vmware,安装步骤如下:

  • 3.3:使用vmware版本如下
    在这里插入图片描述

  • 3.4:提供vmware安装介质和序列,加微信可以获取

  • 3.5:vmware安装后界面如下
    在这里插入图片描述


4:安装centos

  • 4.1:在vmware安装centos系统

  • 4.2:免费提供CentOS的安装介质:CentOS-7-x86_64-DVD-2009.iso,博客资源里有下载地址

  • 4.3:在vmware点击“”创建虚拟机”,选择安装介质:CentOS-7-x86_64-DVD-2009.iso

  • 4.4:在software selection选择最小化安装,快速安装,节省资源使用
    在这里插入图片描述
    在这里插入图片描述

  • 4.5:内存直接调整3G
    在这里插入图片描述

  • 4.6:网络选择NAT,当然可以根据自己需要选择其他方式
    在这里插入图片描述

  • 4.7:CPU调大写:至少能有3核
    在这里插入图片描述

  • 4.8:用root用户进行登录,密码是安装centos过程中设置密码:elk

  • 4.9:确定是否已安装yum。使用命令`yum list installed`来检查系统中是否已经安装了yum。如果已安装,终端会输出yum的版本信息

  • 4.10:关闭和禁止防火墙
    关闭防火墙:systemctl stop firewalld
    禁止防火墙启动:systemctl disable firewalld

  • 4.11:设置静态IP
    进入目录:cd /etc/sysconf ig/network-scripts, 使用vi命令修改文件:ifcfg-ens33
    IP必须是网关所在网段192.168.48.X
    修改:
    BOOTPROTP=“static”
    增加:
    IPADDR =192.168.48.120
    NETMASK=255.255.255.0
    GATEWAY=192.168.48.2
    DNS1=192.168.48.2

    在这里插入图片描述
    网关按照下面流程寻找:
    在这里插入图片描述
    重启网络服务:systemctl restart network
    查看IP设置执行命令: ip addr
    ![descript]
    在虚拟机上ping物理机IP,执行命令:ping 192.168.3.138
    ![descript]
    在物理机上ping虚拟机IP,执行命令:ping 192.168.48.120
    在这里插入图片描述
    在虚拟机上ping百度,执行命令:ping <www.baidu.com> ,说明虚拟机可以连上外网
    在这里插入图片描述


5:安装SecureCRT

  • 5.1:在物理机上安装secureCRT或类似软件,方便登录操作虚拟机linux系统
  • 5.2:提供安装介质,见后面资源提供
  • 5.3:打开主页,创建系统连接
    在这里插入图片描述
  • 5.4: 设置192.168.48.120连接界面
    在这里插入图片描述

6:安装docker以及镜像

  • 6.1:执行docker安装命令:yum install docker
    在这里插入图片描述
    安装过程提示输入y,一直安装结束

  • 6.2:启动docker命令:systemctl start docker, 然后执行docker命令检查是否安装成功
    在这里插入图片描述

  • 6.3:设置docker镜像源
    进入目录:/etc/docker,修改文件daemon.json添加如下内容(一定要复制完整):
    在这里插入图片描述
    “registry-mirrors”:["https://docker.mirrors.ustc.edu.cn",“https://cr.console.aliyun.com/”,“http://hub-mirror.c.163.com”\]
    在这里插入图片描述
    注:两处中间横线要复制出来,别漏了
    然后重启docker,执行命令:systemctl restart docker

  • 6.4: 安装elk需要相关的docker镜像

docker pull elasticsearch:7.7.1
docker pull kibana:7.7.1
docker pull logstash:7.7.1
docker pull docker.io/zookeeper:3.7.1
docker pull wurstmeister/kafka:latest

查看已经下载镜像执行命令:docker images
![descript]
下载镜像要有些耐性,有些镜像下载可能有点慢,有些时候可能会超时要多执行几次
下面安装步骤一定要安装顺序执行,因为容器内IP会安装启动顺序生成172.17.0.2、172.17.0.3 …


7:安装elastricsearch

  • 7.1:运行elastricsearch, 执行启动命令
    docker run --name elasticsearch -d -e ES_JAVA_OPTS=“-Xms512m -Xmx512m” -e “discovery.type=single-node” -p 9200:9200 -p 9300:9300 elasticsearch:7.7.1

  • 7.2:查看启动elastricsearch的docker容器,执行命令: docker ps
    ![descript]
    确保状态是up状态表示容器运行正常

  • 7.3:浏览器运行: http://192.168.48.120:9200 (多等几秒钟,多刷新几次浏览器) 界面上显示如下信息表示elastricsearch启动运行成功
    在这里插入图片描述

  • 7.4:执行命令:docker inspect elasticsearch获取容器里IP地址172.17.0.2
    在这里插入图片描述


8:安装kibana

  • 8.1:新建本地配置目录和配置文件:/home/elk/kibana/kibana.yml
    # Default Kibana configuration for docker target
    server.name: kibana
    server.host: “0”
    elasticsearch.hosts: [ “http://172.17.0.2:9200” ]
    monitoring.ui.container.elasticsearch.enabled: true
    在这里插入图片描述
    172.17.0.2 也可以使用虚拟机192.168.48.120替换

  • 8.2:执行启动命令:
    docker run -d --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kibana -p 5601:5601 -v /home/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml --privileged=true kibana:7.7.1

  • 8.3:查看状态UP成功,执行命令:docker images
    ![descript]

  • 8.4:浏览器运行: http://192.168.48.120:5601 (一定多刷几次,多等几分钟)
    在这里插入图片描述


9: 安装zookeeper

  • 9.1:执行启动命令:
    docker run -d --name zookeeper -p 2181:2181 --privileged=true zookeeper:3.7.1

  • 9.2:查看容器状态,执行命令docker ps
    在这里插入图片描述

  • .9.3:验证zookeeper是否可能,需要进入容器内部:
    进入容器内部,执行命令:docker exec -it zookeeper bash
    进入目录bin ,执行如下命令:./zkServer.sh status
    看到如下信息,说明zookeeper安装成功
    在这里插入图片描述


10:安装kafka

  • 10.1:执行启动脚本:
    docker run -d --name kafka -p 9092:9092 --env KAFKA_ADVERTISED_HOST_NAME=192.168.48.120 --env KAFKA_ADVERTISED_PORT=9092 --env KAFKA_ZOOKEEPER_CONNECT=172.17.0.4:2181 wurstmeister/kafka:latest
    注:KAFKA_ADVERTISED_HOST_NAME填写地址是虚拟机主机地址192.168.48.120,后面业务应用直接发送这个地址

  • 10.2:查看容器启动是否成功,执行命令:docker ps
    在这里插入图片描述

  • 10.3:进入容器内部验证是否能正常发送消息:
    进入容器执行命令:docker exec -it kafka bash
    进入kafka目录:/opt/kafka/bin
    创建topic : ./kafka-topics.sh --create --zookeeper 172.17.0.4:2181 --replication-factor 1 --partitions 8 --topic elktopic
    注:这里创建topic连接zk的Ip是172.17.0.4,可以执行命令查看zookeeper的容器IP
    查看topic : kafka-topics.sh --list --bootstrap-server 127.0.0.1:9092
    终端1模拟消息生产:./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic elktopic
    终端2模拟消息消费: ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic elktopic


11:安装logstash

  • 11.1:新建本地配置目录/home/elk/logstash;新增配置文件:logstash.yml和logstash.conf

  • 11.2:logstash.yml文件信息增加如下:
    http.host: “0.0.0.0”
    xpack.monitoring.elasticsearch.hosts: [ “http://172.17.0.2:9200” ]
    注:172.17.0.2是elasticesearch,可以执行命令查看elasticsearch的容器IP

  • 11.3:logstash.conf文件信息如下:
    input {
    kafka {
    bootstrap_servers => “172.17.0.5:9092”
    group_id => “logstash” #分组id
    topics => [“elktopic”]
    codec => “plain”
    consumer_threads => 8 #消费者线程数,与分区数量保持一致
    auto_offset_reset => latest #自动将偏移重置为最新偏移
    decorate_events => “true” #将元数据添加到事件中
    }
    }
    output {
    elasticsearch {
    hosts => ["http://172.17.0.2:9200"\] #es
    index => “logs_%{[@metadata][kafka][topic]}_%{+YYYY.MM.dd}” #动态创建索引
    }
    }
    注:172.17.0.2是elasticesearch,可以执行命令查看elasticsearch的容器IP;
    172.17.0.5是kafka,可以执行命令查看kafka的容器IP

  • 11.4:执行logstash启动命令:
    docker run -d --name logstash \
    -p 5044:5044 -p 9600:9600 \
    -v /home/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \
    -v /home/elk/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
    –privileged=true logstash:7.7.1

  • 11.5:查看容器启动成功,执行命令:docker ps
    在这里插入图片描述

  • 11.6:后续稍等5分钟,刷新日志执行命令:docker logs logstash


12:模拟演示1

  • 12.1:模拟演示从kafka发送模拟消息在kibana界面展示
  • 12.2:登录kafka容器内部执行模拟发送消息命令,具体参考上面步骤10
    在这里插入图片描述
  • 12.3:登录kibana界面查看elastricsearch生成索引
    在这里插入图片描述
  • 12.4:建立kibana的对elastricseach这个索引的监控
    在这里插入图片描述
  • 12.5:切回到监控界面
    在这里插入图片描述

13:开发、演示Springboot应用

  • 13.1:代码加微信获取
    在这里插入图片描述
    源代码,可以根据自己需求增加业务代码
    ![descript])
    二进制运行文件,直接启动:
    java -jar elkdemo-1.0-SNAPSHOT.jar
    在这里插入图片描述
    界面打开网址:http://localhost:9386/elkDemo/sayHello?yourname=jack
    jack可以替换输入的内容

  • 13.2:教学视频使用
    裸机部署运行ELK全套视频.mp4,加微信获取


14:注意点和异常分析解决

  • 见文档教程和视频,加微信获取
  • 49
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值