docker部署elk日志中间件+filebeat采集

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011870280/article/details/84579164

1,首先确认机器上有4G可用内存

#然后输入命令查看机器上面mmap的值:

sysctl vm.max_map_count

#如果值小于655360

#执行命令:

sysctl -w vm.max_map_count=262144

#然后设置修改文件

vim /etc/sysctl.conf

#加入:
vm.max_map_count=262144

启动elk:
 

sudo docker run -d -p 5601:5601 -p 9200:9200 -p 5044:5044 -v elk-data:/var/lib/elasticsearch --name elk sebp/elk:550
sudo docker logs -f elk

在演示环境和测试环境中,ssl是不必要的,可以去掉logstash的ssl:

docker exec -it elk bash
vim /etc/logstash/conf.d/02-beats-input.conf
#删除里面所有ssl与ssl-prefixed指令,改成如下:
input {
  beats {
    port => 5044
  }
}

安装filebeat:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.5.3-x86_64.rpm
sudo rpm -vi filebeat-5.5.3-x86_64.rpm

配置日志路径和输出地址

vim /etc/filebeat/filebeat.yml
#注释output.elasticsearch及下面子节点
#然后添加如下后修改:

output:
  logstash:
    enabled: true
    hosts:
      - 你elk服务器IP:5044
    #如果logstash启用了ssl,那么这块需要配置
    #ssl:
    #  certificate_authorities:
    #    - /etc/pki/tls/certs/logstash-beats.crt
    timeout: 15

filebeat:
  prospectors:
    -
      paths:
        - /var/log/syslog
        - /var/log/auth.log
      document_type: syslog
    -
      paths:
        - "/var/log/nginx/*.log"
      document_type: nginx-access

其中logstash-beat.crt去https://github.com/spujadas/elk-docker下载,也可以用自己的证书。

然后启动filebeat:

sudo /etc/init.d/filebeat start
tail -f /var/log/filebeat/filebeat

去服务器IP://5601看抓取的日志了

增加java异常日志(多行)处理

docker exec -it elk bash
vim /etc/logstash/conf.d/02-beats-input.conf
#改成如下这样(表示开头第一个是2的才能算一行,我这日志是2018日期开头)
input {
  beats {
    port => 5044
    codec => multiline {
        pattern => "^2"
        negate => true
        what => previous
    }
  }
}
#退出重启容器
docker restart elk
docker logs -f elk

猜你喜欢

转载自blog.csdn.net/u011870280/article/details/84579164