ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。
- Elasticsearch 是一个搜索和分析引擎。
- Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等存储库中。
- Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。
由于Logstash占用的资源比较大,我们选择filebeat这个轻量级的日志收集工具来代替Logstash
一、安装ELK
首先,我们通过docker-compose来安装单机版elasticsearch和kibana。
创建docker-compose.yml
version: '2.4'
services:
# ElasticSearch容器相关定义内容,做收集流的数据库
elasticsearch:
# 镜像名称
image: elastic/elasticsearch:7.8.1
privileged: true
environment: # ES设置,这里并没有做集群
- discovery.type=single-node
- node.name=netdevops_es
- cluster.name=netdevops_es_cluster
- network.host=0.0.0.0
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms4g -Xmx4g" # 资源控制,这里给了4g内存,可以根据自己的设备性能进行调整
volumes:
- /your_data_dir/data:/usr/share/elasticsearch/data # 数据持久化
- /etc/timezone:/etc/timezone:ro # 调整容器内的时间
- /etc/localtime:/etc/localtime:ro
network_mode: "host" # 设置连接的网络
ports: # 端口映射
- "9200:9200"
- "9300:9300"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
restart: unless-stopped
# 定义kibana容器,做最终的图形化界面呈现
kibana:
image: elastic/kibana:7.8.1
privileged: true
environment:
- SERVER_NAME=netdevops_kibana
- ELASTICSEARCH_HOSTS="http://localhost:9200"
- PATH_DATA=/usr/share/kibana/data
- NODE_OPTIONS="--max_old_space_size=4096"
- I18N_LOCALE="zh-CN"
volumes:
- /your_data_dir/data:/usr/share/kibana/data # 数据持久化
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
network_mode: "host"
ports:
- "5601:5601"
ulimits:
memlock:
soft: -1
hard: -1
depends_on:
- "elasticsearch"
restart: unless-stopped
使用docker-compose up -d 自动拉取镜像并创建容器。
创建完成后,可以使用http:\\your_ip_addr:5601
访问kibana
二、安装filebeat
进入kibana后。
根据不同的系统版本,选择合适filebeat
根据流程安装完成后,测试是否接收到数据
三、查看dashboards
文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/6626