微服务系列之 Docker 安装 ELK

227次阅读
没有评论

共计 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

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

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 
阿蛮君
版权声明:本站原创文章,由 阿蛮君 2023-04-10发表,共计2025字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2022-2024 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 蓝易云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock