ELK+Filebeat 5.5.x

一、简介

二、安装配置
    1、软件清单
        jdk 1.8.0_144
        elasticsearch/logstash/kibana/filebeat    5.5.2
        
        说明:
            (1)jdk
                ①logstash安装时需要检测系统java运行环境,以此安装正确的启动方法。同时要求1.8版本以上Java,不支持Java 9。
                ② 建议使用Oracle版本,而不是操作系统自带的OpenJDK。
                        - 检查预载的jdk信息    rpm -qa|grep jdk
                        -卸载     yum -y remove java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.i686
                        -配置java运行环境    编辑/etc/profile,新增如下内容
                            export JAVA_HOME=/usr/java/jdk1.8.0_144
                            export PATH=$JAVA_HOME/bin:$PATH
                            export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
                        -使配置生效    source /etc/profile
                        -检查配置    echo $PATH
            (2)为了减少版本选择的困扰,从5.0版本开始,ELK升级为ElasticStack,并将各个产品的版本进行统一。每一次升级,所有产品的版本信息都会同时更新。

    2、下载与安装
        (1)根据服务器情况以及安装方式选择相应的安装包,由于这里演示的是最简单的安装方式,我们直接选择LINUX 32/64-BIT(kibana/filebeat)和TAR.GZ(elasticsearch/logstash)。
        官网下载: https://www.elastic.co/cn/products    
        (2)出于安全考虑,elasticsearch默认不允许以root身份启动,可以通过修改配置实现。这里建议为elk创建用户组与用户。
                    -添加用户组    group elasticstack
                    -添加用户    useradd -g elasticstack elasticstack
                    -添加用户密码    passwd elasticstack
        (3)使用elasticstack登陆,上传安装包,解压elk到服务器指定位置
                    -解压    tar -xzf elasticsearch-5.5.2.tar.gz   

    3、配置
            elk的各个配置文件使用yaml语言编写,位于相应软件的config目录下,elasticsearch.yml/logstash.yml/kibana.yml。
        (1)elasticsearch
                ①将elasticsearch.yml的network.host 设为安装elasticsearch的服务器ip,不能使用localhost/127.0.0.1/0.0.0.0。如: network.host: 10.0.7.227。
                ②启动(加参数d,可以后台运行)
                    ./bin/elasticsearch
                ③检查
                    浏览器访问elasticsearch服务器,默认端口为9200。如: http://10.0.7.227:9200/ 。即可以查看es信息。
                
                注意:
                    ①开放服务器相应端口。
                    ②需要增大elasticstack用户能打开的文件数量至65536以上。切换root用户,修改/etc/security/limits.conf,添加以下内容,保存退出文件后,退出服务器重新登陆即可生效。
                        elasticstack soft nofile 65536
                        elasticstack hard nofile 131072                                                    
                    ③需要增大一个进程可以拥有的虚拟内存区域的数量。切换root用户,修改/etc/sysctl.conf,添加以下内容,并使用sysctl -p使配置生效。
                        vm.max_map_count=655360
                    ④这种“开箱即用”的方式,默认的数据与日志文件存放在应用目录下,在升级或卸载时将会带来安全隐患。通过修改配置文件的path.data与path.logs项即可。
                        elasticsearch默认数据与日志文件位置:
                            ./elasticsearch-5.5.2/data/
                            ./elasticsearch-5.5.2/logs/
                        修改配置:
                            path.data: /home/elasticsearch/elk/data/elasticsearch/
                            path.logs: /home/elasticsearch/elk/log/elasticsearch/
                    ⑤elasticsearch head是一款通过界面管理elasticsearch索引等信息的插件,可以在chrome应用店下载也可以在github上得到更多的安装方式。

        (2)logstash
                logstash.yml完成有关工作线程、队列等等配置,以此提高资源的利用率,我们使用默认即可,更详细的配置信息可以参阅官方文档。logstash在elasticstack中完成的主要工作是将收集的日志进行过滤与整理,再传递给elasticsearch。其运行依赖“管道”文件。

                
                ①在config目录中创建一个文件,用于定义我们的输入输出与过滤规则。以我编写的first-pipeline.conf做简要说明:
                    #input定义数据来源
                    input {
                        #beats插件为官方提供的用于接收filebeat/packetbeat/winlogbeat等beats产品传送的数据
                        #这里我们只需监听logstash默认端口即可
                        beats { port => 5044 }
                    }
                   
                    #定义过滤规则,logstash将会从日志取得符合规则的信息,并整理成单个字段,以方便我们在kibana 检索 数据
                    filter {
                        #使用grok表达式灵活定义,更多插件请参阅官方文档
                        grok{
                            #指定自定义表达式文件位置
                            patterns_dir => ["/usr/local/logstash-5.5.2/config/patterns"]
                            #用message字段进行规则匹配
                            match => {
                                "message" => "%{LOG:LEVEL}\^\^%{LOG:TIMESTAMP}\^\^%{LOG:REQUEST_ID}\^\^%{LOG:IP}\^\^%{LOG:REQUEST_URL}\^\^%{LOG:USERID}\^\^%{LOG:REQUEST_PARAM}\^\^%{LOG:OPERATION}\^\^%{LOG:OBJECT}\^\^%{LOG:OLD_VALUE}\^\^%{LOG:NEW_VALUE}\^\^%{LOG:DESCRIPTION}\^\^%{LOG:RESULT}\^\^%{LOG:JAVACLASS}"
                            }
                        }
                    }

                    #将处理之后的日志输出至elasticsearch
                    output {     
                        elasticsearch { hosts => ["10.0.7.227:9200"] 
                    }
                ②运行
                    ./logstash-5.5.1/bin/logstash -f ./logstash-5.5.1/config/first-pipeline.conf
                    常见运行参数:
                         -f    指定配置文件
                         -e    指定配置字符串
                         -l     指定日志输出地址
                         -t     测试配置文件是否正确
                ③检查
                    使用ps -ef|grep logstash命令检查进程是否启动,或修改运行命令为./logstash -e 'input { stdin { } } output { stdout {} }',logstash将从标准输入接收数据,并返回至标准输出,也就是将屏幕上将返回你键入的数据。

        (3)kibana
                ①修改kibana.yml
                    server.host: "10.0.7.227"
                    elasticsearch.url: " http://10.0.7.227:9200";
                ②运行
                    ./bin/kibana
                ③检查
                    浏览器访问 http://10.0.7.227:5601

       (4)filebeat
                filebeat负责业务日志收集,解压安装在业务服务器上
                ①修改filebeat.yml,指定监听的日志文件并设置输出至logstash
                    filebeat.prospectors:
                        - input_type: log
                           paths:
                                - /data/usr/tomcat/logs/log.*
                    output.logstash:
                        hosts: ["10.0.7.227:5044"]
                ②运行
                    ./filebeat -e -c filebeat.yml
                ③检查
                    浏览器访问10.0.7.227:5601,进入kibana,创建logstash-*索引,即可在Discover页查看到所有日志

三、参阅资料
    1、elasticstack官方文档     https://www.elastic.co/guide/index.html
    2、elasticsearch中文指南     https://kibana.logstash.es/content/
    3、elasticsearch中文社区     https://elasticsearch.cn/
    4、grok debugger     https://grokdebug.herokuapp.com/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker ELK是指使用Docker容器化技术搭建的ELKElasticsearch、Logstash和Kibana)日志分析平台。其中,FilebeatELK中的一个组件,用于收集和传输日志数据。 在使用Docker ELK搭建平台时,你可以通过执行命令"Docker run"来启动Filebeat容器。启动命令示例如下: ``` docker run -d -u root --name filebeat --net somenetwork -v /var/log/logapp:/var/log/logapp:rw -v /mydata/docker/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro elastic/filebeat:7.16.1 ``` 这个命令会在Docker中启动一个名为"filebeat"的容器,并将日志文件夹和配置文件夹挂载到容器中。 如果需要启动多个Filebeat容器,只需要指定不同的外挂地址即可,这样可以保持架构图的一致性。示例命令如下: ``` docker run -d --network elk-net --ip 172.22.1.5 --name=filebeat -v /mydata/filebeat/log/:/usr/share/filebeat/logs -v /mydata/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml docker.elastic.co/beats/filebeat:7.4.2 ``` 这个命令会在Docker中启动一个名为"filebeat"的容器,并将日志文件夹和配置文件夹挂载到容器中。 要导入日志进行测试,你可以创建一个Filebeat配置文件filebeat.yml。可以使用以下命令创建配置文件: ``` touch /mydata/filebeat/config/filebeat.yml ``` 这个命令会在指定路径下创建一个名为filebeat.yml的配置文件。然后,你可以根据需要进行相应的配置,包括指定日志路径、过滤条件等。 综上所述,Docker ELK中的Filebeat是用于收集和传输日志数据的组件,在搭建平台时需要执行相应的启动命令,并可以通过创建配置文件来进行必要的配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [docker安装elk + filebeat(版本:7.16.1)](https://blog.csdn.net/paidaxinga_/article/details/122210062)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [docker搭建elk+filebeat](https://blog.csdn.net/qq_31745863/article/details/129986232)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值