filebeat日志收集

#(1)filebeat下载
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.0-linux-x86_64.tar.gz

#(2)构建filebeat镜像

1)准备dockerfile文件

# cat dockerfile
FROM  docker.io/centos
WORKDIR /usr/local
COPY filebeat-5.4.0-linux-x86_64.tar.gz  /usr/local
RUN cd /usr/local &&         tar xvf filebeat-5.4.0-linux-x86_64.tar.gz &&         rm -f filebeat-5.4.0-linux-x86_64.tar.gz &&         ln -s /usr/local/filebeat-5.4.0-linux-x86_64 /usr/local/filebeat &&         chmod +x /usr/local/filebeat/filebeat &&         mkdir -p /etc/filebeat
ADD ./docker-entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["/usr/local/filebeat/filebeat","-e","-c","/etc/filebeat/filebeat.yml"]

2)准备docker-entrypoint.sh

# cat docker-entrypoint.sh
#!/bin/bash
config=/etc/filebeat/filebeat.yml
env
echo ‘Filebeat init process done. Ready for start up.‘
echo "Using the following configuration:"
cat /etc/filebeat/filebeat.yml
exec "$@"
[root@fs02 logs]# cat docker-entrypoint.sh
#!/bin/bash
config=/etc/filebeat/filebeat.yml
env
echo ‘Filebeat init process done. Ready for start up.‘
echo "Using the following configuration:"
cat /etc/filebeat/filebeat.yml
exec "$@"

3)构建
docker build -t registry.cn-hangzhou.aliyuncs.com/wangfang-k8s/filebeat-v5.4.0:latest .
同时我把镜像上传到阿里云
docker push registry.cn-hangzhou.aliyuncs.com/wangfang-k8s/filebeat-v5.4.0:latest
#(3)准备资源清单

1)准备filebeat配置文件,
该配置文件的意思是收集/log/目录下的所有文件, 输出到redis中

# cat configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
    name: filebeat-config
data:
    filebeat.yml: |
        filebeat.prospectors:
        - type: log
            paths:
                - "/log/*"
        output.redis:
            hosts: ["192.168.1.51:6379"]
            key: "nginx-log"
            db: 2
            tag: "nginx-log"
            password: "redhat"
            port: 6379

2)准备NGINX的deployment配置清单文件
nginx容器和filebeat容器运行在一个pod中, nginx的容器日志在的/var/log/nginx目录下, 而filebeat又以/log目录挂载, 所以在filebeat的/log目录下能看到nginx的日志

# cat nginx-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
    name: nginx-test
    namespace: default
spec:
    replicas: 1
    template:
        metadata:
            labels:
                k8s-app: nginx-test
        spec:
            containers:
            - image: registry.cn-hangzhou.aliyuncs.com/wangfang-k8s/filebeat-v5.4.0
                imagePullPolicy: Always
                name: filebeat
                volumeMounts:
                - name: app-logs
                    mountPath: /log
                - name: filebeat-config
                    mountPath: /etc/filebeat/
            - image: nginx:1.11
                name : nginx-test
                imagePullPolicy: Always
                ports:
                - containerPort: 80
                volumeMounts:
                - name: app-logs
                    mountPath: /var/log/nginx
            volumes:
            - name: app-logs
                emptyDir: {}
            - name: filebeat-config
                configMap:
                    name: filebeat-config

3)准备nginx-service的资源配置清单文件

# cat service.yaml
apiVersion: v1
kind: Service
metadata:
    name: nginx-test
spec:
    selector:
        k8s-app: nginx-test
    ports:
    - name: http
        nodePort: 38888
        port: 89
        protocol: TCP
        targetPort: 80
    type: NodePort

4)部署
kubectl apply -f .
容器正常运行

5)访问nginx
curl 172.30.5.3:80

6)登录到redis查看是否有日志
说明有日志没有问题

原文地址:https://blog.51cto.com/1000682/2359351

时间: 2024-10-31 01:50:10

filebeat日志收集的相关文章

Filebeat 日志收集器 安装和配置

Filebeat的配置文件是/etc/filebeat/filebeat.yml,遵循YAML语法.具体可以配置如下几个项目: Filebeat Output Shipper Logging(可选) Run Options(可选) 这个Blog主要讲解Filebeat的配置部分,其他部分后续会有新的Blog介绍. Filebeat的部分主要定义prospector的列表,定义监控哪里的日志文件,关于如何定义的详细信息可以参考filebeat.yml中的注释,下面主要介绍一些需要注意的地方. fi

elk日志收集

ELK日志系统整体架构: 结构解读: 整个架构从左到右,总共分为5层 最左边的是业务服务器集群,上面安装了filebeat做日志采集,同时把采集的日志分别发送给多个kafka 服务. 第二层.数据缓存层,把数据转存到本地的kafka broker+zookeeper 集群中. 第三层.数据转发层,这个单独的Logstash节点会实时去kafka broker集群拉数据,转发至ES DataNode. 第四层.数据持久化存储,ES DataNode 会把收到的数据,写磁盘,建索引库. 第五层.数据

自建elk+filebeat+grafana日志收集平台

欢迎关注个人公众号"没有故事的陈师傅"搭建这个平台的初衷只是为了我和我的两个小伙伴来更好的学习es以及周边组件,欲善其事,必利其器,只是单纯的去学习理论知识是不够的,理论与操作相结合,才能学的更扎实. 环境配置: 使用自己的两台1v2g阿里云主机以及好友颖枞的一台1v2gvps,共计三台主机 环境架构如下: 三台主机的环境分别如下: node1:elasticsearch6.4+filebeatnode2:kibana6.4+grafana+filebeatnode3:logstash

FILEBEAT+ELK日志收集平台搭建流程

filebeat+elk日志收集平台搭建流程 1.         整体简介: 模式:单机 平台:Linux - centos - 7 ELK:elasticsearch.logstash.kibana三款开源软件的集合. FILEBEAT:代替logstash的采集功能,轻量.耗用小. 目前收集的有nginx日志.java日志[单行|多行]. 都是通过在客户端的生成日志配置文件中定义好初步json格式,然后利用filebeat采集到logstash,存储到elasticsearch,最后通过k

ELK+filebeat日志分析系统部署文档

环境说明 架构说明及架构图 filebeat部署在客户端用于收集日志并把收集到的日志发送到logstash.logstash把收集到的日志处理之后交给elasticsearch. kibana从elasticsearch中提取数据并进行展示.之所以使用filebeat进行日志收集是因为filebeat不会像logstash使用大量的资源,影响业务服务器. 环境需求 需要java环境和redis yum install java yum install redis 使用版本 java  1.8.0

容器内应用日志收集方案

容器化应用日志收集挑战 应用日志的收集.分析和监控是日常运维工作重要的部分,妥善地处理应用日志收集往往是应用容器化重要的一个课题. Docker处理日志的方法是通过docker engine捕捉每一个容器进程的STDOUT和STDERR,通过为contrainer制定不同log driver 来实现容器日志的收集,缺省json-file log driver是将容器的STDOUT/STDERR 输出保存在磁盘上,然后用户就能使用docker logs <container>来进行查询. 在部署

ELK日志收集平台部署

需求背景 一位朋友的公司研发最近有一些苦恼.由于他们公司的后台服务有三台,每当后台服务运行异常,需要看日志排查错误的时候,都必须开启3个ssh端口进行查看,研发们觉得很不方便,于是便有了统一日志收集与查看的需求. 这里,我用ELK集群,通过收集三台后台服务的日志,再统一进行日志展示,实现了这一需求. 当然,当前只是进行了简单的日志采集,如果后期相对某些日志字段进行分析,则可以通过logstash以及Kibana来实现. 部署环境 系统:CentOS 7 软件: elasticsearch-6.1

elkb+redis建立日志收集分析系统

一.ELKB说明 elastic提供了一套非常高级的工具ELKB来满足以上这几个需求.ELKB指的是用于日志分析或者说数据分析的四个软件,各自拥有独立的功能又可以组合在一起.先来简单介绍一下这四个软件. Elastic Search: 从名称可以看出,Elastic Search 是用来进行搜索的,提供数据以及相应的配置信息(什么字段是什么数据类型,哪些字段可以检索等),然后你就可以自由地使用API搜索你的数据. Logstash:.日志文件基本上都是每行一条,每一条里面有各种信息,这个软件的功

ELK之生产日志收集构架(filebeat-logstash-redis-logstash-elasticsearch-kibana)

本次构架图如下 说明: 1,前端服务器只启动轻量级日志收集工具filebeat(不需要JDK环境) 2,收集的日志不进过处理直接发送到redis消息队列 3,redis消息队列只是暂时存储日志数据,不需要进行持久化 4,logstash从redis消息队列读取数据并且按照一定规则进行过滤然后存储至elasticsearch 5,前端通过kibana进行图形化暂时 环境查看 服务器客户段安装filebeat rpm -ivh filebeat-6.2.4-x86_64.rpm 修改配置文件/etc