最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

CentOS7 Docker安裝ELK全過程

 更新時間:2025年10月30日 10:19:41   作者:「已注銷」  
文章詳細介紹了在CentOS 7上使用Docker安裝ELK(Elasticsearch, Logstash, Kibana)的準備工作和步驟,包括安裝Docker、Docker Compose,創(chuàng)建相關(guān)掛載目錄和配置文件,啟動ELK服務(wù),設(shè)置ES密碼以及開放端口

CentOS7 Docker 安裝ELK

準備工作

安裝docker

第一步:查看已安裝的docker

docker -v

注:若已安裝的docker滿足需求,則無需重新安裝docker

第二步:卸載舊版本

# 查詢docker相關(guān)rpm
rpm -qa | grep docker
# 移除相關(guān)rpm(將上一步查詢出來的進行移除)
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 移除后,再查詢docker相關(guān)rpm,確保移除成功
rpm -qa | grep docker

第三步:安裝docker依賴包

提示:中間需要確認幾次,輸入y回車即可

#安裝所需資源包
sudo yum install -y yum-utils
#設(shè)置docker下載地址
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
#安裝docker
sudo yum install docker-ce docker-ce-cli containerd.io

第四步:查看安裝docker列表

yum list docker-ce --showduplicates | sort -r

第五步:啟動docker

sudo systemctl start docker

第六步:查看docker版本

#查看docker的版本
docker -v

# 查看本地主機上已有鏡像的基本信息。
docker images

安裝docker-compose

第一步:安裝docker-compose到/usr/local/bin/目錄下

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
ll /usr/local/bin

第二步:添加docker-compose可執(zhí)行權(quán)限

chmod +x /usr/local/bin/docker-compose
ll /usr/local/bin

第三步:查看docker-compose版本

docker-compose -v

安裝elk

第一步:創(chuàng)建相關(guān)掛載目錄

# 創(chuàng)建目錄/usr/local/elk/es/data和/usr/local/elk/es/plugins和/usr/local/elk/es/config和/usr/local/elk/logstash和/usr/local/elk/kibana
mkdir -p /usr/local/elk/{es/data,es/plugins,es/config,logstash,kibana/config,kibana/data}
ll  /usr/local/elk
ll /usr/local/elk/es
ll /usr/local/elk/kibana
# 授權(quán)相關(guān)文件夾權(quán)限
chmod -R 777 /usr/local/elk/es
chmod -R 777 /usr/local/elk/logstash
chmod -R 777 /usr/local/elk/kibana

第二步:創(chuàng)建配置文件

第一小步:創(chuàng)建docker-compose.yml

vim /usr/local/elk/docker-compose.yml

內(nèi)容如下

version: '3' #指定compose文件的版本號,目前有1,2,3這三個版本

services:
  elasticsearch: # 指定服務(wù)名
    image: elasticsearch:7.17.5  #鏡像
    container_name: elasticsearch-7.17.5  #定義容器名稱
    restart: always  #開機啟動,失敗也會一直重啟
    environment:
      - "cluster.name=elasticsearch" #設(shè)置集群名稱為elasticsearch
      - "discovery.type=single-node" #以單一節(jié)點模式啟動
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" #設(shè)置使用jvm內(nèi)存大小
    volumes:
      - /usr/local/elk/es/plugins:/usr/share/elasticsearch/plugins #插件文件掛載({宿主機目錄}:{容器目錄})
      - /usr/local/elk/es/data:/usr/share/elasticsearch/data #數(shù)據(jù)文件掛載({宿主機目錄}:{容器目錄})
      - /usr/local/elk/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # 配置文件掛載({宿主機文件}:{容器文件})
    ports:
      - "9200:9200" #  {宿主機端口}:{容器端口}, 9200是ES節(jié)點與外部通訊使用的端口。它是http協(xié)議的RESTful接口(各種CRUD操作都是走的該端口,如查詢:http://localhost:9200/user/_search)
      - "9300:9300" # {宿主機端口}:{容器端口}, 9300是ES節(jié)點之間通訊使用的端口。它是tcp通訊端口,集群間和TCPclient都走的它。(java程序中使用ES時,在配置文件中要配置此端口)

  kibana: # 指定服務(wù)名
    image: kibana:7.17.5
    container_name: kibana-7.17.5
    restart: always
    volumes:
      - /usr/local/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml #掛載logstash的配置文件 {宿主機文件}:{容器文件}
      - /usr/local/elk/kibana/data:/usr/share/kibana/data #數(shù)據(jù)文件掛載({宿主機目錄}:{容器目錄})
    depends_on:
      - elasticsearch #kibana在elasticsearch啟動之后再啟動
    environment:
      - ELASTICSEARCH_URL=http://172.31.113.186:9200 #設(shè)置訪問elasticsearch的地址,不能寫localhost或者127.0.0.1,可以寫內(nèi)網(wǎng)(或公網(wǎng))地址
    ports:
      - "5601:5601" # {宿主機端口}:{容器端口}

  logstash: # 指定服務(wù)名
    image: logstash:7.17.5
    container_name: logstash-7.17.5
    restart: always
    volumes:
      - /usr/local/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml #掛載logstash的配置文件 {宿主機文件}:{容器文件}
      - /usr/local/elk/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf #掛載logstash的數(shù)據(jù)傳輸配置文件 {宿主機文件}:{容器文件}
    depends_on:
      - elasticsearch #kibana在elasticsearch啟動之后再啟動
    ports:
      - "5044:5044" #{宿主機端口}:{容器端口}, logstash中輸入源涉及到的所有端口號都需要映射,5044為默認端口號

第二小步:創(chuàng)建elasticsearch配置文件

vim /usr/local/elk/es/config/elasticsearch.yml

內(nèi)容如下

network.host: 0.0.0.0  #使用的網(wǎng)絡(luò)
http.cors.enabled: true #跨域配置
http.cors.allow-origin: "*"
xpack.security.enabled: true  #開啟密碼配置
http.cors.allow-headers: Authorization
xpack.security.transport.ssl.enabled: true

第三小步:創(chuàng)建kibana配置文件

# 創(chuàng)建配置文件logstash配置文件
vim /usr/local/elk/kibana/config/kibana.yml

內(nèi)容如下

server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: ["http://172.31.113.186:9200"] #es地址;不能寫localhost或者127.0.0.1,可以寫內(nèi)網(wǎng)(或公網(wǎng))地址
i18n.locale: "zh-CN"  #漢化
elasticsearch.username: elastic # 設(shè)置賬號密碼
elasticsearch.password: elastic123
xpack.encryptedSavedObjects.encryptionKey: "fhjskloppd678ehkdfdlliverpoolfcr" # 任意不少于32位的字符即可, 官方解釋https://www.elastic.co/guide/en/kibana/7.16/alert-action-settings-kb.html#general-alert-action-settings

第四小步:創(chuàng)建logstash配置文件

  • logstash.yml,logstash配置
# 創(chuàng)建配置文件logstash.yml
vim /usr/local/elk/logstash/logstash.yml
  • 內(nèi)容如下
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://172.31.113.186:9200" ]  # es地址,不能寫localhost或者127.0.0.1,可以寫內(nèi)網(wǎng)(或公網(wǎng))地址
xpack.monitoring.elasticsearch.username: "elastic"   # es賬號
xpack.monitoring.elasticsearch.password: "elastic123" # es密碼
  • logstash.config,數(shù)據(jù)傳輸配置
# 創(chuàng)建配置文件logstash配置文件
vim /usr/local/elk/logstash/logstash.conf

內(nèi)容如下

# 數(shù)據(jù)輸入配置
input {
    # 從TCP套接字讀取數(shù)據(jù)
    tcp {
         mode => "server"
         host => "0.0.0.0"
         port => 5044 # 每個輸入源都可以使用不同的端口號
         codec => json_lines
    }

    # 從Elastic Beats框架(如filebeat)接收數(shù)據(jù)
    #beats {
    #    port => 5044
    #}
}

# 數(shù)據(jù)處理配置


# 數(shù)據(jù)輸出配置
output {
  elasticsearch {
    hosts => ["http://172.31.113.186:9200"] # es的地址和端口,不能寫localhost或者127.0.0.1,可以寫內(nèi)網(wǎng)(或公網(wǎng))地址
    user => "elastic" # es的賬號密碼
    password => "elastic123" # es的賬號密碼
    index => "all-log-%{+YYYY.MM.dd}" # 索引(自定義即可,因為想要按天分索引,所以后面使用變量%{+YYYY.MM.dd})
  }
}

第三步:啟動ELK

提示:docker-compose相關(guān)指令詳見docker-compose相關(guān)指令

# 報錯的話,嘗試切換至docker-compose.yml所在目錄執(zhí)行此指令試試 cd /usr/local/elk
# 啟動elk
docker-compose up -d
# docker-compose stop # 停止所有
# docker-compose rm # 移除所有

# 報錯的話,嘗試切換至docker-compose.yml所在目錄執(zhí)行此指令試試 cd /usr/local/elk
docker-compose ps

第四步:設(shè)置es相關(guān)密碼并重啟

提示:啟動ELK需要一點時間,等一會兒(或通過docker-compose logs xxx觀察到elasticsearch服務(wù)啟動完成后)再進行此步驟

進入es容器

# docker exec -it {es容器名} /bin/bash
# 注:docker ps可查看容器名或容器id
docker exec -it elasticsearch-7.17.5 /bin/bash

執(zhí)行設(shè)置密碼的腳本

./bin/elasticsearch-setup-passwords interactive

然后依次給各個賬號設(shè)置密碼

elastic、apm_system、kibana_system、logstash_system、beats_system、remote_monitoring_user

注:本人設(shè)置的密碼較簡單,直接以{賬號名}123作為的密碼

退出容器Ctrl+P+Q,然后重啟es容器即可

# docker-compose restart {服務(wù)名}
# 注:docker-compose.yaml中可查看服務(wù)名
docker-compose restart elasticsearch

第五步(報錯時,可觀察):檢查日志是否正常

# 分別檢查這三個的日志是否正常
docker-compose logs -f elasticsearch
docker-compose logs -f kibana
docker-compose logs -f logstash

第六步:開放端口

提示:如果用的阿里云,那么還需要在阿里云控制臺配置開啟端口

# es端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent
# kibina端口
firewall-cmd --zone=public --add-port=5601/tcp --permanent
# logstash端口(只設(shè)置了一個端口為5044的輸入源,這里只需要開放一個端口即可)
firewall-cmd --zone=public --add-port=5044/tcp --permanent
firewall-cmd --reload

第七步:訪問測試(es、kibana)

訪問elastic(地址http://{address}:9200):

訪問kibana(地址http://{address}:5601):

密碼也是第四步我們設(shè)置的elastic/elastic123

第八步:日志傳輸測試(logstash)

第一步:創(chuàng)建一個臨時的spring-boot項目

第二步:引入logstash依賴支持

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>7.2</version>
</dependency>

第二步:編寫日志配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <springProperty name="appName" scope="context" source="spring.application.name"/>
    <springProperty name="serverPort" scope="context" source="server.port" defaultValue="0000"/>

    <property name="pattern"
              value="${appName}:${serverPort} %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%X{traceId}] %thread %logger{50}:%L %msg%n"/>


    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${pattern}</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>


    <!--配置logstash 發(fā)送日志數(shù)據(jù)的地址 -->
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>{你的elk logstash地址}:5044</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>

    <root level="INFO">
        <appender-ref ref="consoleAppender"/>
        <appender-ref ref="LOGSTASH"/>
    </root>

</configuration>

第四步:啟動項目,隨便打點日志

測試代碼

import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RestController;

import java.time.LocalDateTime;

/**
 * start class
 */
@Slf4j
@RestController
@SpringBootApplication
public class DemoApplication implements ApplicationRunner {
    
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    
    
    @Override
    public void run(ApplicationArguments args) throws Exception {
        CarInfoPO carInfo = new CarInfoPO();
        carInfo.setId(123L);
        carInfo.setStatus(0);
        carInfo.setCreatedAt(LocalDateTime.now());
        carInfo.setUpdatedAt(LocalDateTime.now());
        carInfo.setZjPlateNo("你好啊");
        carInfo.setZjRegionId("嘿嘿");
        log.info(JSON.toJSONStringWithDateFormat(carInfo, "yyyy-MM-dd HH:mm:ss"));
    }
}

第五步:去kibana查看日志

提示:需要再kibana的Discover里面簡單找一下,才能看到日志信息

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Docker Compose實現(xiàn)秒級擴容的方法步驟

    Docker Compose實現(xiàn)秒級擴容的方法步驟

    本文主要介紹了Docker Compose實現(xiàn)秒級擴容的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2026-04-04
  • docker啟動Nginx的兩種方式小結(jié)

    docker啟動Nginx的兩種方式小結(jié)

    本文介紹了兩種獲取Nginx鏡像的方式:直接從DockerHub拉取和通過Dockerfile構(gòu)建,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10
  • Docker容器如何訪問宿主機的Mysql數(shù)據(jù)庫

    Docker容器如何訪問宿主機的Mysql數(shù)據(jù)庫

    使用Docker能實現(xiàn)服務(wù)的容器化,并使用容器間網(wǎng)絡(luò)在它們之間進行通信,下面這篇文章主要給大家介紹了關(guān)于Docker容器如何訪問宿主機的Mysql數(shù)據(jù)庫,需要的朋友可以參考下
    2024-04-04
  • 如何解決docker commit后鏡像越來越大問題

    如何解決docker commit后鏡像越來越大問題

    解決Docker Commit后鏡像變大問題的方法:方法1直接打包容器并導入為鏡像;方法2將容器根目錄文件壓縮后導入為鏡像,方法1更優(yōu),在其他設(shè)備運行時可能出現(xiàn)內(nèi)存不足錯誤
    2025-03-03
  • 防火墻導致docker pull失敗問題及解決

    防火墻導致docker pull失敗問題及解決

    因網(wǎng)絡(luò)防火墻檢測到鏡像中的敏感文件(如passwd)導致docker pull卡頓或斷連,解決方法包括調(diào)整防火墻策略或修改網(wǎng)卡MTU值以規(guī)避關(guān)鍵字過濾
    2025-09-09
  • 查看Docker鏡像內(nèi)容的常用方法總結(jié)

    查看Docker鏡像內(nèi)容的常用方法總結(jié)

    在使用Docker時,下載鏡像后可能需要查看鏡像的具體內(nèi)容,例如檢查鏡像中是否存在惡意內(nèi)容、了解鏡像中包含的文件和目錄結(jié)構(gòu)等,然而,查看鏡像內(nèi)容并非總是直觀的操作,因為鏡像本身是分層存儲的,所以本文給大家介紹了查看Docker鏡像內(nèi)容的常用方法
    2025-06-06
  • linux上安裝Docker(非常簡單的安裝方法)

    linux上安裝Docker(非常簡單的安裝方法)

    今天小編就為大家分享一篇關(guān)于linux上安裝Docker(非常簡單的安裝方法),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Docker Alpine鏡像時區(qū)問題完美解決方案

    Docker Alpine鏡像時區(qū)問題完美解決方案

    這篇文章主要介紹了Docker Alpine鏡像時區(qū)問題完美解決方案,本文給大家分享兩種解決方案供大家參考,需要的朋友可以參考下
    2021-04-04
  • docker搭建zookeeper集群和kafka集群并使用Java測試詳解

    docker搭建zookeeper集群和kafka集群并使用Java測試詳解

    本文詳細介紹了如何在Linux虛擬機中使用Docker搭建Kafka集群環(huán)境,并通過Kafka-Manager進行可視化管理,文章包括了從鏡像拉取、容器網(wǎng)絡(luò)設(shè)置、Zookeeper和Kafka集群搭建到測試和使用Java連接集群的全過程
    2026-01-01
  • 如何解決docker容器啟動失敗

    如何解決docker容器啟動失敗

    在本片文章中小編給各位整理的是關(guān)于如何解決docker容器啟動失敗相關(guān)內(nèi)容,有興趣的朋友們可以參考下。
    2020-03-03

最新評論

靖西县| 荣昌县| 日土县| 合作市| 安福县| 石河子市| 余庆县| 奈曼旗| 察哈| 措勤县| 堆龙德庆县| 吉木萨尔县| 孟连| 即墨市| 临澧县| 宣恩县| 白银市| 锡林浩特市| 临沭县| 句容市| 四平市| 乐平市| 明溪县| 阿拉善右旗| 彝良县| 重庆市| 易门县| 铜梁县| 武邑县| 澎湖县| 儋州市| 蓝山县| 丰镇市| 仪征市| 林周县| 收藏| 乐昌市| 响水县| 广河县| 鄂托克旗| 星子县|