Bootstrap

ELK日志分析监控平台

前期环境准备

组件简述:

1、Elasticsearch:

主要用来日志存储

es是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大功能。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

2、Kibana: 主要用于日志的展示

kibana是一个优秀的前端日志展示框架,它可以非常详细的将日志转化为各种图表,为用户提供强大的数据可视化支持,它能够搜索、展示存储在 Elasticsearch 中索引数据。使用它可以很方便的用图表、表格、地图展示和分析数据。

3、Logstash:

主要用来日志的搜集(filebeat)json xml .conf output

主要是用来日志的搜集、分析、过滤日志的工具。用于管理日志和事件的工具,你可以用它去收集日志、转换日志、解析日志并将他们作为数据提供给其它模块调用,例如搜索、存储等。

4、Filebeat:隶属于Beats家族,轻量级数据收集引擎

5、 Metricbeat

(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据。通过从操作系统和服务收集指标,帮助您监控服务器及其托管的服务。

6、heartbeat心跳监测

不管测试同一台主机上的服务,还是要测试开放网络上的服务,Heartbeat 都能轻松生成运行时间数据和响应时间数据 Heartbeat 能够通过 ICMP.TCP 和 HTTP 进行 ping 检测,同时也支持 TLS.认证和代理.您可以借助简易的 DNS 解析,监控负载均衡服务器背后的所有主机. 安装系统环境。

正式部署

本文以elasticsearch7.9.3版本为例

#因docker 容器启动时IP自动分配,kibana每次都需要配置,故直接指定docker的ip地址,故在部署之前创建ELK专属网络,新建一个ELK网络

#后续在部署容器时选择该网络

docker network create elk   

#查看xybnet的网络信息

docker inspect elk

[root@luck ~]# docker inspect elk
[
    {
        "Name": "elk",
        "Id": "9e1a325741952d462de91df24394c5644fb9256271ad44a3953e6eafadad5f18",
        "Created": "2023-02-21T15:54:49.822705457+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }

一,安装elastalert服务

1.1 创建es 相关挂载目录

mkdir -p /data/elasticsearch/config   

#拉取elasticsearch:7.9.3版本镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.9.3

在/data/elasticsearch/config/目录下新建文件

touch elasticsearch.yml

mkdir -p /data/elasticsearch/data

mkdir -p /data/elasticsearch/plugins

#权限不足问题

chmod -R 777 /data/elasticsearch

1.2 构建es容器

docker run -p 9200:9200 -d --name es \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" --network elk \
-v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
--privileged=true \
elasticsearch:7.9.3