首页 > 系统相关 >Linux下安装ELK

Linux下安装ELK

时间:2023-08-14 18:45:19浏览次数:46  
标签:ELK filebeat log elasticsearch Linux docker 安装 logstash

简介

ELK 是 Elasticsearch、Logstash 和 Kibana 的缩写,它们代表的是一套成熟的日志管理系统,ELK Stack 已经成为目前最流行的集中式日志解决管理方案。

Elasticsearch

分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作。通常被用作某些应用的基础搜索引擎,使其具有复杂的搜索功能;

Logstash

数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置;

Kibana

数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示;

Filebeat

ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder 源代码开发是对它的替代。在需要采集日志数据的服务上安装 Filebeat,并指定日志目录或日志文件后,Filebeat 就能读取日志文件数据,迅速发送到 Logstash 进行解析,或直接发送到 Elasticsearch 进行集中式存储和分析。

安装 elasticsearch

下载镜像

docker pull elasticsearch:7.17.0

运行

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.17.0

检测是否启动成功,注意开启防火墙的端口(9200,9300)限制

浏览器访问 ip:9200,响应为

{
  "name" : "adfd092fcbb6",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "QYlWm28zSpCE39liFBr37g",
  "version" : {
    "number" : "7.17.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "bee86328705acaa9a6daede7140defd4d9ec56bd",
    "build_date" : "2022-01-28T08:36:04.875279988Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

修改配置

# 进入docker容器
docker exec -it elasticsearch /bin/bash
cd config
# 修改配置文件
vi elasticsearch.yml
# 增加下面两项,如果不添加以下两项,elasticsearch-head连接不了
http.cors.enabled: true
http.cors.allow-origin: "*"
# 重启 es 容器
docker restart elasticsearch

如果容器内不能编辑,就先拷贝出来

docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml .
docker cp elasticsearch.yml elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml

安装 elasticsearch-head(ES可视化工具)

下载镜像

docker pull mobz/elasticsearch-head:5

运行

docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5

连接 es

image

安装 kibana

下载镜像

docker pull kibana:7.17.0

运行

docker run -d --name kibana -p 5601:5601  -e ELASTICSEARCH_HOSTS=http://ip:9200 kibana:7.17.0

浏览器访问 ip:5601

image

安装 logstash

下载镜像

docker pull logstash:7.17.0

创建配置文件

mkdir -p /data/elk/logstash/conf.d
cd /data/elk/logstash
vim logstash.yml
内容如下:
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
#以下为filebeat的配置
cd /data/elk/logstash/conf.d
vi filebeat.conf
内容如下:
input {
    beats {
        port => 5044
        codec => "json"
    }
}

output {
  elasticsearch { hosts => ["ip:9200"] }
}

安装 filebeat

下载镜像

docker pull elastic/filebeat:7.5.1

运行

docker run -d --name=filebeat elastic/filebeat:7.5.1

修改配置文件

docker cp filebeat:/usr/share/filebeat /root/test_elk/
chmod 777 -R /root/test_elk/filebeat
chmod go-w /root/test_elk/filebeat/filebeat.yml

修改配置文件 filebeat.yml

filebeat:
  inputs:
    - type: log
      paths:
        - /data/log/java-projects/sys-manager/sys-manager_api.log
      multiline:
        pattern: '^\d{4}-\d{1,2}-\d{1,2}'
        negate:  true
        match:   after
      fields:
        type: demo1
      scan_frequency: 15s
      ignore_older: 24h
output:
  logstash:
    hosts: ["ip:5044"]

重新运行

docker rm -f filebeat
docker run -d  \
  --name=filebeat \
  -v /root/test_elk/filebeat:/usr/share/filebeat \
  -v /data/log/java-projects/sys-manager:/data/log/java-projects/sys-manager \
  elastic/filebeat:7.5.1

手动添加日志

echo "this is a test log message" >> /data/log/java-projects/sys-manager/sys-manager_api.log

在 kibana 上查看效果

image

image

总结

ELK 的版本需要一致,不然可能导致 ELK 无法使用。filebeat 的版本不需要特别注意,无特殊需求与本文一致即可。注意开启防火墙的端口限制。ELK 需要较大的内存,最好剩余 4G 以上。

image

遇到的问题

docker kibana nable to retrieve version information from Elasticsearch nodes. getaddrinfo

运行 kibana 失败,原因为 es 地址配置错误,要使用 ELASTICSEARCH_HOSTS 参数,而不是 ELASTICSEARCH_URL

Logstash stopped processing because of an error: (SystemExit) exit

运行 logstash 失败,原因为 配置文件错误,/data/elk/logstash/conf.d/filebeat.conf,写成了 filebeat.yml

参考

docker安装ELK
Docker 部署 ELK 详解
docker安装filebeat
docker kibana nable to retrieve version information from Elasticsearch nodes. getaddrinfo

标签:ELK,filebeat,log,elasticsearch,Linux,docker,安装,logstash
From: https://www.cnblogs.com/strongmore/p/17627619.html

相关文章

  • 【Linux内核态】内核态和用户态的理解
    内核态和用户态的理解特权级在Unix/Linux系统中,fork的工作实际上是以系统调用的方式完成相应功能的,具体的工作是由sys_fork负责实施。其实无论是不是Unix或者Linux,对于任何操作系统来说,创建一个新的进程都是属于核心功能,因为它要做很多底层细致地工作,消耗系统的物理资源,比如分配......
  • VMware安装Ubantu教程
    VMware使用教程下载地址https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html建议FQ访问镜像源下载地址下载点我在这里边找到合适的源,点击下载。以下内容以Ubantu20.04为例(ubuntu-20.04.6-desktop-amd64.iso),下载地址VMware安装与正......
  • Pypy安装
    Pypy安装一、安装Pypy1、下载pypy3.10链接:https://www.pypy.org/download.html 2、安装无需安装,解压即可tar-jxvfpypy3.10-v7.3.12-linux64.tar.bz2 3、配置环境变量exportPATH=/path/pypy3.10-v7.3.12-linux64/bin 二、(可选)安装pip1、安装setuptools1)下......
  • 系统的glibc版本不符合安装要求
    原因是因为系统的glibc版本不符合安装要求,可以对glibc进行升级。下载响应安装包:http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz。解压:tarxvfglibc-2.14.tar.gz进入glibc-2.14目录:cdglibc-2.14创建build文件夹:mkdirbuild进入build目录:cdbuild执行:../configure--prefix=/op......
  • 系统的glibc版本不符合安装要求
    原因是因为系统的glibc版本不符合安装要求,可以对glibc进行升级。下载响应安装包:http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz。解压:tarxvfglibc-2.14.tar.gz进入glibc-2.14目录:cdglibc-2.14创建build文件夹:mkdirbuild进入build目录:cdbuild执行:../configure--prefix=/op......
  • LabVIEW图形化TensoRT工具包的安装下载分享
    (文章目录)前言Hello,大家好,我是virobotics(仪酷智能),今天我们一起来看一下如何安装【LabVIEWTensoRT工具包】。一、LabVIEW图形化TensoRT工具包简介<fontface="SimSun"color=blacksize=4>工具包特点:</font>图形化编程:无需掌握文本编程基础即可完成机器视觉项目;直接的模......
  • 鸟哥的Linux私房菜服务器架设篇
    第四章:连接到Internet1、主机名十分重要,DNS系统中主机名=ip;如百度服务器主机名为:www.baidu.com2、DHCP(局域网)、DNS(互特网)等都需要服务器来部署,如DHCP服务器可以IP路由器来充当;3、配置ADSL时注意,   a、ppp0拨号成功后,ISP会自动给予ppp0接口一个可以连上internet的defaul......
  • Linux---磁盘空间
       https://www.runoob.com/linux/linux-command-manual.html df dudu-sh/path/to/directory该命令将显示指定目录的磁盘空间使用情况,以人类可读的方式显示目录大小 ......
  • LINUX 命令整理
    LINUX命令整理:touch利⽤bash的花括号{}一次创建连续的文件N个[root@localhostopt]#touch/opt/{1..7}.txt[root@localhostopt]#ls10.txt1.txt2.txt3.txt4.txt5.txt6.txt7.txt2.rm-r递归删除⽂件夹-f强制删除 rmdir删除目录3.cp拷⻉⽂件使⽤-r参数,可以递归......
  • CentOS7 上安装部署chatglm2-6b
          按照说明文档,先按照了最新版本的Python,官网下载了最新的版本3.11后,一顿操作感觉分分钟就安装完了。但是继续安装chatglm2-6b所需的依赖包时,就遇到了N多坑点,为了解决这些坑点,耗时真的很长(按周计算的那种)。如果是CPU服务器,则至少需要30G内存。      ......