ELK基础搭建(基于centos7 docker部署)

ELK基础搭建(基于centos7 docker部署)

  • ELK搭建基础需求
    • vm虚拟机及centos7
    • Docker安装
    • ELK核心组件安装
      • elasticsearch安装
      • kibana安装
      • logstash安装
    • 总结

ELK搭建基础需求

我的本机环境是win10,通过安装vm虚拟机安装的centos7系统

· win10系统
· vm虚拟机(centos7 最小版本安装即可)

vm虚拟机及centos7

VMware安装
ELK基础搭建(基于centos7 docker部署)_第1张图片

Linux安装
下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/
ELK基础搭建(基于centos7 docker部署)_第2张图片
Mini为精简版,最小安装

Docker安装

从网上产看了很多帖子,最后自己总结了一下,可以通过三种方式安装:

1、在本机下载docker安装包,利用vm工具将安装包复制粘贴到虚拟机内进行解压安装。
2、利用wget指令下载docker压缩包,解压安装。
3、3、通过yum指令进行安装:
(1)如果安装过旧版本的Docker,需要卸载它以及它的依赖项
$ sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
(2)使用docker仓库进行安装
(1) 安装所需的软件包

// 指令
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

(2)设置仓库(设置 Docker 仓库之后,可以从仓库安装和更新 Docker)

//指令:
$ sudo yum-config-manager \
       --add-repo \
       https://download.docker.com/linux/centos/docker-ce.repo

(3)查看存储库中所有的安装版本

//指令
$ yum list docker-ce --showduplicates | sort -r

ELK基础搭建(基于centos7 docker部署)_第3张图片
(4)安装特定版本

//命令:
yum install docker-ce-版本号

(5)启动Docker

//命令:
systemctl start docker
//设置开机启动:
systemctl enable docker

(6)验证安装是否成功
查看Docker版本

//命令:
docker -version

ELK基础搭建(基于centos7 docker部署)_第4张图片
注意:所有的容器都需要与本机时间同步(在创建docker容器是时间未设置默认为世界当前时间与本机当前时间相差八小时)

第一种:进入容器
输入指令:export TZ=Asia/Shanghai #修改时区
(此方法仅当前生效,不建议使用)

第二种:创建容器的时候指定启动参数,自动挂载localtime文件到容器内
指令:-v /etc/localtime:/etc/localtime:ro

第三种:复制宿主机localtime到容器中
指令:docker cp /etc/localtime :/etc/

ELK核心组件安装

elasticsearch安装

(1)登录 docker hub查看版本以及拉取镜像指令
拉取镜像

//指令:
docker pull elasticsearch:版本号

示例如下:
ELK基础搭建(基于centos7 docker部署)_第5张图片

(2)启动容器

//指令:
docker run --name xxx -p 9200:9200 -d elasticsearch:版本

(3)查看容器是否启动

//指令:
docker ps

(4)配置elasticsearch.yml文件
进入容器内

//指令:
docker exec -it 容器id /bin/bash

elasticsearch.yml文件在config文件夹下
用指令:$ vi elasticsearch.yml 打开
配置为以下内容
ELK基础搭建(基于centos7 docker部署)_第6张图片
(5)测试:在浏览器打开http://虚拟机的ip:9200/
ELK基础搭建(基于centos7 docker部署)_第7张图片
安装参考网址:
链接: https://blog.csdn.net/lidew521/article/details/88091539.
链接: https://blog.csdn.net/happyzxs/article/details/89156068.
链接: https://blog.csdn.net/zmx729618/article/details/80363875.

kibana安装

(1)拉取镜像

//指令:
docker pull kibana:版本号

(2)运行容器

//指令:
docker run --name xxx -p 5601:5601 --link elasticsearch的名称:elasticsearch名称 -d kibana:版本号

(3)修改yml文件
进入容器内

//指令:
docker exec -it kibana的名称 /bin/bash

同elasticsearch一样进入config文件夹
利用指令 vi kibana.yml 打开配置文件
修改一下配置:

server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://此处为本机ip:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

测试 打开网页http://虚拟机的ip:5601/

ELK基础搭建(基于centos7 docker部署)_第8张图片
采坑参考:
链接: https://blog.csdn.net/qq_31404603/article/details/88949929?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task.

logstash安装

(1)拉取镜像

//指令:
docker pull logstash:版本号

(2)运行容器

//指令:
docker run --name 名称 -p 5044:5044 -u root -itd logstash:版本号

(3)进入容器内配置相关文件
在这里说一下,版本不一样它的配置文件不一样,早版本要配置logstash.yml文件即可(容器内路径:/usr/share/logstash/config/)我用的版本为7.5.2,它的配置文件是logstash.conf(路径:/usr/share/logstash/pipeline)

logstash的配置主要由三部分组成:input、filter、output。

以下为基础配置

//原始日志数据:
2018-07-24 17:08:53.125 [http-nio-80-exec-12] INFO  [com.hzt.aop.RequestAspect:127] - 请求路径:/farm_server/app/getBaseWeather,请求IP180.110.251.197,请求方式:GET,执行方法:com.hzt.controller.AppController.getBaseWeather,执行时间:2,请求参数:[南京, , , 84d696651d39070b0cf8209ac2f515f8],返回数据:{"errCode":"","resCode":0,"resData":{"badFor":"种植","lowTemp":"28","temperature":"28","weather":"阴","humidity":"74%","accuRain":"638.6","goodFor":"施肥、打药","highTemp":"35","accuTemp":"2155.8"}}
//设置
input {
    stdin{}
}
filter {
    grok{
        match => { "message" => "%{TIMESTAMP_ISO8601:log_timestamp} \[%{NOTSPACE:host}\] %{NOTSPACE:level} %{NOTSPACE:2}
%{NOTSPACE:3} %{GREEDYDATA:loginfo}" }
        }
    kv {
        source => "loginfo"
        field_split => ","
        value_split => ":"
        }
    json {
        source => "返回数据"
        }
    mutate {
        remove_field => "message"
        remove_field => "loginfo"
        remove_field => "返回数据"
    }
}
output{
    stdout{
    codec => rubydebug
    }
}

总结

这个只是ELK的最基础的搭建,之里面还有很多没有详细说的地方,如kibana的使用、logstash的应用环境以及在不同需求中的配置文件的设置(这个是个很大的坑)、elk之间的联系等。

列一下我学习过程中的参考网址:

kibana使用参考网址:https://www.cnblogs.com/cjsblog/p/9476813.html

yml文件配置详解参考网址:https://abcops.cn/archives/916

conf文件配置
参考网址:https://blog.csdn.net/yesicatt/article/details/52104787?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

logstash的各个场景应用:
https://www.cnblogs.com/qingqing74647464/p/9378385.html

filter grok过滤日志文件
参考网址:
https://blog.csdn.net/qq_21989939/article/details/79524640

ELK采集postgre SQL里的数据参考网址:https://www.cnblogs.com/fuguang/p/11511834.html
(注意:这里的input设置“org.postgresql.Driver”是需要下载的,在logstash内没有内置,内置的是mysql的驱动。)

你可能感兴趣的:(ELK基础搭建(基于centos7 docker部署))