Elastic Stack 学习笔记

1.什么是Elastic Stack?

Elastic Stack 学习笔记_第1张图片

ELK 是三个开源项目的首字母缩写,这三个项目分别是:ElasticsearchLogstashKibana

  • Elasticsearch 是一个搜索和分析引擎。

  • Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。

  • Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。

Elastic StackELK Stack 的更新换代产品。

1.1.一切都起源于 Elasticsearch…

​ Elasticsearch 是一个开源的分布式、具有 RESTful 风格的搜索和数据分析引擎,基于 JSON 开发而来。能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。它使用简单,可缩放规模,十分灵活,因此受到用户的热烈好评。

1.2.引入 Logstash 和 Kibana

​ Elasticsearch 的核心是搜索引擎,所以用户开始将其用于日志用例,并希望能够轻松地对日志进行采集和可视化。有鉴于此,我们引入了强大的采集管道 Logstash 和灵活的可视化工具 Kibana。

1.3.ELK 中加入了 Beats

​ “我只想对某个文件进行 tail 操作,”用户表示。我们用心倾听。在 2015 年,我们向 ELK Stack 中加入了一系列轻量型的单一功能数据采集器,并把它们叫做 Beats

Packetbeat

​ 用于监控、收集网络流量信息,Packetbeat嗅探服务器之间的流量,解析应用层协议,并关联到消息的处理,其支 持ICMP (v4 and v6)、DNS、HTTP、Mysql、PostgreSQL、Redis、MongoDB、Memcache等协议。

Filebeat

​ 用于监控、收集服务器日志文件,其已取代 logstash forwarder。

Metricbeat

​ 可定期获取外部系统的监控指标信息,其可以监控、收集 Apache、HAProxy、MongoDB、MySQL、Nginx、PostgreSQL、Redis、System、Zookeeper等服务。

Winlogbeat

​ 用于监控、收集Windows系统的日志信息。

Healthbeat

​ 用于健康检查

2.Elasticsearch

2.1. ES是什么?

​ Elasticsearch 是一个基于Lucene实现的开源的搜索引擎。具有分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等特点。

2.2. ES能做什么?

待更

2.3. ES怎么做?

待更

3.Elasticsearch安装

3.1. installer 方式安装部署

下载安装包

官方下载

创建用户、赋予指定文件夹所有权限(不支持root用户运行)

useradd elasticsearch

mkdir -p  /opt/elasticsearch

chown -R elasticsearch:elasticsearch /opt/elasticsearch

切到用户elasticsearch

su -elasticsearch

解压安装包

tar zxvf xxxx.tar.gz -C /opt/elasticsearch

配置elasticsearch

# vim elasticsearch.yml
network.host: 0.0.0.0 #设置ip地址,任意网络均可访问

修改jvm启动参数

#vim conf/jvm.options
-Xms128m #根据自己机器情况修改
-Xmx128m

配置一个进程在VMAs(虚拟内存区域)创建内存映射最大数量

#vim /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p #配置生效

启动与停止

./bin/

3.2. yum方式安装

添加yum源

vim  /etc/yum.repos.d/elasticsearch.repo

加入如下内容

[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

执行安装

yum install --enablerepo=elasticsearch elasticsearch

3.3. docker 方式安装部署

获取镜像

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

启动

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.8.1

3.4. docker-compose方式安装部署

单机版安装

docker-compose.yml

version: '3.2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
    container_name: elasticsearch
    restart: always
    environment:
    - discovery.type=single-node
    - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ports:
    - 9200:9200
    - 9300:9300
    volumes:
    - /opt/elastic/config/elasticsearch.yml:/usr/share/elastic/config/elasticsearch.yml

elasticsearch.yml

node.name: node001
cluster.name: "docker-cluster"
network.host: 0.0.0.0
discovery.type: single-node

集群安装

#docker-compose.yml 
version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es02,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge

3.5. k8s中安装部署(待更新)

4.Elasticsearch-head 安装

4.1.docker-compose方式安装

docker-compose.yaml

version: '3.2'
services:
  elasticsearch-head:
    image: mobz/elasticsearch-head:5 #官方稍有些问题
    container_name: elasticsearch-head
    restart: always
    ports:
    - 9100:9100

建议采用我重新制作的镜像

你可能感兴趣的:(ELK,elasticsearch,elk)