微服务系列之 Docker 安装 ELK


共计 2025 个字符,预计需要花费 6 分钟才能阅读完成。

ELK 简介

ELK 是一个开源的日志管理解决方案,由 Elasticsearch、Logstash 和 Kibana 三个组件构成。每个组件的作用如下:

  1. Elasticsearch:分布式搜索引擎,用于存储、搜索和分析日志数据。

  2. Logstash:日志收集、处理和转换工具,用于将不同来源的日志数据收集并处理成统一格式,以便于存储和分析。

  3. Kibana:数据可视化工具,用于查询、分析和展示 Elasticsearch 中存储的日志数据。

ELK 可以帮助用户快速、高效地管理海量的日志数据,从而实现对系统性能、安全性等方面的监控和分析。它支持多种数据源,包括文件、网络流量、数据库等,还提供了丰富的插件和扩展机制,可以满足不同的业务需求。同时,它还提供了强大的搜索、聚合、可视化和警报功能,可以让用户更加方便地理解和利用日志数据。

ELK 搭建

1. 创建网卡

创建一块 elk 的网卡,待会所有容器通过这块网卡进行通信。

docker network create elk

2. 安装 elasticsearch

注意:这里指定容器名称需要指定为 elasticsearch,因为 kibana 容器的配置文件 kibana.yml 中默认 es 的地址为 elasticsearch。否则,需要修改 kibana 的配置文件。

docker run -d /
--name elasticsearch /
--net elk  /
-p 9200:9200 /
-p 9300:9300 /
-e "discovery.type=single-node" /
-v /home/docker/es/plugins:/usr/share/elasticsearch/plugins /
-v /home/docker/es/data:/usr/share/elasticsearch/data /
elasticsearch:7.16.1

如果提示报错:

ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];
Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes

这是因为 es 没有权限,执行如下代码即可。

chmod 777 /home/docker/es/data && docker restart elasticsearch

安装完成后访问 9200 端口。

微服务系列之 Docker 安装 ELK

/>

3. 安装 kibana

docker run -d /
--name kibana /
--net elk /
-p 5601:5601 /
kibana:7.14.2

安装后访问 5601 端口用接口查询 es 数据。

微服务系列之 Docker 安装 ELK

/>

4. 安装 logstash

这里因为用作测试,把宿主机 /var/log/messages 文件映射到容器内部供 logstash 容器进行读取并输出到 elasticsearch。

# 创建 logstash 全局配置文件
mkdir -p /home/docker/logstash/conf.d && 
cat > /home/docker/logstash/logstash.yml <<EOF
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
EOF
# 创建 log 配置文件
cat > /home/docker/logstash/conf.d/log.conf <<EOF
input {
  file {
    #标签
    type => "systemlog-localhost"
    #采集点
    path => "/var/log/messages"
    #开始收集点
    start_position => "beginning"
    #扫描间隔时间,默认是1s,建议5s
    stat_interval => "5"
  }
}
output {
  elasticsearch { hosts => ["elasticsearch:9200"] }
  stdout { codec => rubydebug }
}
EOF

docker run -d /
--name logstash /
--net elk /
-u root /
-p 5044:5044 /
-v /etc/timezone:/etc/timezone:ro /
-v /etc/localtime:/etc/localtime:ro /
-v /home/docker/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml /
-v /home/docker/logstash/conf.d/:/usr/share/logstash/conf.d/ /
-v /var/log/messages:/var/log/messages /
logstash:6.8.19

在 kibana 里面获取索引,会发现多了一条 logstash 产生的索引。

微服务系列之 Docker 安装 ELK

/>

查看日志。

微服务系列之 Docker 安装 ELK

提醒:本文发布于160天前,文中所关联的信息可能已发生改变,请知悉!

/>
【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年

给TA打赏
共{{data.count}}人
人已打赏
云原生

Elasticsearch 搜索和数据分析引擎基本安装和使用教程

2023-9-16 4:39:09

云原生

Docker 搭建最新版本 Minio 以及设置桶为公开权限

2023-9-16 6:33:15

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索