top
本文目录
ELK 简介
ELK 搭建
1. 创建网卡
2. 安装 elasticsearch
3. 安装 kibana
4. 安装 logstash
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!邮件:766378891@qq.com

微服务系列之 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

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

/>

Tips:清朝云网络工作室

阅读剩余
THE END
icon
0
icon
分享
icon
二维码
icon
海报
发表评论
评论列表

赶快来坐沙发

晚上好👋, 在属于自己的时间好好放松😌~