什么是日志?
日志是关于应用程序、其性能和用户活动的事件的良好解释记录。这些事件可以包括删除,或修改应用程序的文件。它们也包括系统配置的变化。
而日志文件则存储了关于这些事件发生的记录。因为它们是用来跟踪计算事件的信息。当涉及到识别问题和纠正问题时,它们就会很方便。
为了运送Kafka日志,我们将使用filebeat代理。filebeat代理是一个轻量级的运输工具,其目的是转发和集中日志数据。
为了让filebeat工作,你需要把它作为一个代理安装在所需的服务器上。然后,Filebeat监控日志文件,收集日志事件,并将它们转发到ElasticSearch或LogStash进行索引。
为了在服务器上安装filebeat代理,我们将使用ansible,因为它使代理的部署毫不费力。
Filebeat代理如何工作
当你启动filebeat代理时,它开始输入并查找你提到的日志位置。对于filebeat定位的每一条日志,都会启动一个收割机。此外,每一个收割机都会读取一个日志的新内容,并将新的日志数据发送到libbeat。Libbeat是一个用于数据转发的Go框架。Libbeat聚合事件并将收集的数据发送到你为Filebeat配置的输出。在我们的例子中,它是Kibana。
用于将Filebeat代理部署到Kafka服务器的Ansibleplaybook
- name: Run kafka logging role to deploy filebeat to kafka servers
hosts: <kafka_server_hosts>
gather_facts: False
roles:
- deploy-filebeat
become: True
become_method: sudo
运行部署Filebeat的必要任务的角色
在你运行角色之前,确保你有filebeat.yml和kafka.yml文件,其中包括角色所需的配置变化,还有set-logstash-endpoint.sh脚本,它设置了logstash所需的端点。你可以将这两个文件存储在角色deploy-filebeat的文件目录中。
- name: Install filebeat 6.2.4
shell: |
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-amd64.deb
sudo dpkg -i filebeat-6.2.4-amd64.deb
- name: Upload filebeat.yml
copy:
src: filebeat.yml
dest: /etc/filebeat
owner: root
group: root
mode: 644
- name: Install filebeat Kafka module
shell: |
filebeat modules enable kafka
- name: Upload set-logstash-endpoint.sh script
copy:
src: set-logstash-endpoint.sh
dest: /usr/local/bin/
owner: root
group: root
mode: 755
- name: Upload filebeat Kafka module configuration
copy:
src: kafka.yml
dest: /etc/filebeat/modules.d/
owner=root
group=root
mode=644
notify:
- restart filebeat
- name: Set the logstash endpoint for this environment
shell: |
/usr/local/bin/set-logstash-endpoint.sh
- name: Start filebeat
shell: |
sudo /etc/init.d/filebeat start
运行这个游戏手册后,你可以去检查你的kibana仪表盘端点,因为来自kafka服务器的kafka日志将开始弹出。
如果在本地运行,你可以去 -http://localhost:5601/app/logs/,检查这里的Kafka日志。