docker compose安装运行ELK之Filebeat
1.作用filebeat可以用来收集数据,发送给elasticsearch或者logstash等2.docker-compose.yml 配置filebeat:image: docker.elastic.co/beats/filebeat:7.3.0container_name: filebeatvolumes:- /usr/local/w...
1.作用
filebeat可以用来收集数据,发送给elasticsearch或者logstash等
2.docker-compose.yml 配置
filebeat:
image: docker.elastic.co/beats/filebeat:7.3.0
container_name: filebeat
volumes:
- /usr/local/workspace/elk/filebeat/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml
- /usr/local/workspace/elk/filebeat/data:/usr/share/filebeat/data
networks:
- esnet
depends_on:
- es01
- es02
- logstash
- kibana
说明:
1.depends_on: 由于filebeat是要将数据发给logstash,所以要先启动logstash才能启动filebeat
2.volumes 挂载两个地方,第一个是filebeat.docker.yml的配置文件,该配置文件可通过:
curl -L -O https://raw.githubusercontent.com/elastic/beats/7.3/deploy/docker/filebeat.docker.yml
下载,这是官网提供的:https://www.elastic.co/guide/en/beats/filebeat/current/running-on-docker.html
第二个挂载的是data,这里面保存了收集的数据情况等,至于为什么要挂载,我下面会说明
3.networks: esnet这个一定要和logstash的网络或者elasticsearch相同,看你设置的输出是哪个
3.filebeat.docker.yml配置
filebeat.inputs:
- type: log
enabled: true
paths:
- /usr/local/workspace/elk/filebeat/logstash-tutorial.log
filebeat.config:
modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
filebeat.autodiscover:
providers:
- type: docker
hints.enabled: true
#output.elasticsearch:
# hosts: ["192.168.20.101:9200","192.168.20.101:9201"]
output.logstash:
hosts: ["192.168.20.101:5044"]
由于这个文件是从官网下的,所以有一些默认配置,我们不用管,只要加上filebeat.inputs和output.logstash或者output.elasticsearch 或者其他的输出
说明:input中的paths是输入地址,我是从官网下载了一个测试用的logstash-tutorial.log作为输入的,下载地址:
wget https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz
其他属性请查看官网
4. filebeat.docker.yml的其他配置
setup.kibana:
host: "192.168.20.109:5601" #
setup.template.overwrite: true #设置为true,使用默认的索引模板,如果置为false,需要自己再设置索引模板,第三步Load the index template in Elasticsearch中有自定义索引名称
这些配置我们其实是不需要设置的,但是要明白是什么意思。
第一个setup.kibana,因为官网的示例是直接使用kibana自动创建filebeat.*的索引模式,并传给elasticsearch一个filebeat.xxx的索引,所以需要连接。但是现实中,我们只需要将filebeat获取的数据传给elasticsearch或者logstash,然后去kibana上面自己手动生成索引模式就行了,所以是不需要这个属性的
第二个setup.template.overwrite,这个属性是用来定义索引模板的,我们用默认的就行了,默认就是true,所以不用设置,如果你想使用自己的索引模板,那么就要置为false,并需要其他操作,官网有操作方法
5.其他说明
5.1 data目录的挂载
测试时,在每次重启前,都必须删除data/register注册表中的信息,这个里面保存了filebeat已经读取的信息的情况,如果不清空,那么当我重新启动filebeat时,他并不会自动的再去获取一遍指定的log,而是从上一次结束的地方开始获取,而我们使用的静态的log文件,那么一次获取就会获取到全部数据,那么下次重启时,默认该文件已读完,就不读了,所以我上面会挂载data目录,就是为了方便测试的时候操作删除,正式环境,一般是没有必要删除的,所以可以不用挂载
5.2 elasticsearch hosts
如果output.elasticsearch的hosts的值有多个ip,那么会默认负载均衡
5.3 索引
索引可以理解成一个数据库,索引名就是数据库的名称,当filebeat获取数据后在output.elasticsearch时,就会按照设置自动生成一个索引,然后传给elasticsearch,由elasticsearch保存,当kibana查询索引列表时就能查出来这个索引了。当你使用output.logstash时,传给elasticsearch的索引就由logstash决定,你可以在logstash中设置索引格式
5.4 filebeat端口
filebeat 不占端口,所以不需要映射端口号
5.5 其他
想要构建整个elk,请查看我的其他博客,我将elk拆分成了4个博客
更多推荐
所有评论(0)