基于Docker环境部署ELKF日志分析系统

基于Docker环境部署ELKF日志分析系统

​​

案例环境

操作系统IP地址主要软件硬件要求备注
centos7.9192.168.10.128docker FilebeatElasticserach、Logstash、Kibana4G

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

修改selinux

搭建时间同步

yum -y install ntpdate
ntpdate ntp.aliyun.com

案例需求

(1) 利用 ELKF 收集容器里面的日志。

(2) 通过 Kibana 将收集到日志做图表分析。

案例实现思路

(1) 准备系统环境。

(2) 构建 ELKF 组件镜像。

(3) 创建 ELKF 容器收集容器里面的 Nginx 日志。

(4) 创建 Kibana 图形展示。

案例实施

基于 Docker 环境部署 ELKF 日志分析系统,实现日志分析功能(安装docker)

修改系统参数

[root@localhost ~]# vi /etc/sysctl.conf
#可以访问的最大文件数,在末尾添加
vm.max_map_count=655360 
[root@localhost ~]# sysctl -p  
[root@localhost ~]#vi /etc/security/limits.conf 
#设置
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
* soft  memlock unlimited
* hard  memlock unlimited
​

上传ELKF到/root/下,解压

tar zxvf ELKF.tar.gz 
cd elkf/
cd logstash/
mkdir -p /opt/logstash/conf/
#创建
cp nginx-log.conf /opt/logstash/conf/

基于dockfile创建镜像

cd /root/elkf/elasticsearch;docker build -t elasticsearch .
cd /root/elkf/kibana;docker build -t kibana .
cd /root/elkf/logstash;docker build -t logstash .
cd /root/elkf/filebeat;docker build -t filebeat .
docker images
#查看镜像

配置网络

docker network ls
docker network create kgc
docker network ls

2启动 Filebeat+ELK 日志收集环境

docker run -itd -p 80:80 --network=kgc -v /var/log/nginx:/var/log/nginx --name kgc_nginx nginx
docker run -itd --network=kgc -v /var/log/nginx:/var/log/nginx --name kgc_filebeat  --hostname filebeat filebeat
docker run -itd --network=kgc -p 5044:5044 -v /opt/logstash/conf:/opt/logstash/conf/ --name kgc_logstash --hostname logstash logstash
docker run -itd --network=kgc -p 9200:9200 -p 9300:9300 -v /var/log/elasticsearch:/var/log/elasticsearch --name kgc_elasticsearch  --hostname elasticsearch elasticsearch
docker run -itd --network=kgc -p 5601:5601 --name kgc_kibana --hostname kibana kibana
docker ps

3、Kibana Web 管理

因为 Kibana 的数据需要从 Elasticsearch 中读取,所以需要 Elasticsearch 中有数据才能 创建索引,创建不同的索引区分不同的数据集

浏览器输入 http://192.168.10.128:5601 访问 kibana 控制台。在 Management 中找到 Indexpatterns , 单 击 进 去 可 以 看 到 类 似 以 下 图 片 中 的 界 面 , 写 nginx-access-log-*作为索引,

先访问一下nginx

#!/bin/bash

for i in {1..100}
do
	curl 192.168.207.131
	sleep 1
done

 

 

在 TimeFilterfieldname 选项框中选中@timestemp 这个选项, 如图 3.10 所示。在kibana 中,默认通过时间戳来排序。如果将日志存入 Elasticsearch 的时候没有指定@timestamp 字段的内容,则 Elasticsearch 会分配接收到该日志时的时间作为该日志@timestamp 的值。

单击 Discover 标签,可能会看不到数据。需要将时间轴选中为“Thisyear”才可以看到的内容,显示的条数和日志的条数一致。具体时间轴的选择可以根据当前时间和日志里面的访问时间进行推算,如

 

 

相关配置文件解释说明,请看补充====基于Docker环境部署ELKF日志分析系统说明

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值