在CentOS上实现Filebeat的自动化部署可以通过多种方式来完成,以下是一个基本的步骤指南,使用Ansible作为自动化工具来实现这一目标。
安装Ansible:确保你已经在控制节点上安装了Ansible。
sudo yum install epel-release
sudo yum install ansible
配置SSH无密码登录:确保Ansible可以无密码登录到所有目标CentOS节点。
ansible all -m ping
创建一个名为deploy_filebeat.yml
的Ansible Playbook文件。
---
- name: Deploy Filebeat on CentOS
hosts: all
become: yes
vars:
filebeat_version: "7.10.0"
filebeat_download_url: "https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-{{ filebeat_version }}-linux-x86_64.tar.gz"
filebeat_install_path: "/opt/filebeat"
tasks:
- name: Download Filebeat
get_url:
url: "{{ filebeat_download_url }}"
dest: "/tmp/filebeat-{{ filebeat_version }}-linux-x86_64.tar.gz"
- name: Extract Filebeat
unarchive:
src: "/tmp/filebeat-{{ filebeat_version }}-linux-x86_64.tar.gz"
dest: "{{ filebeat_install_path }}"
remote_src: yes
- name: Remove downloaded archive
file:
path: "/tmp/filebeat-{{ filebeat_version }}-linux-x86_64.tar.gz"
state: absent
- name: Create Filebeat systemd service file
template:
src: filebeat.service.j2
dest: /etc/systemd/system/filebeat.service
owner: root
group: root
mode: '0644'
- name: Start and enable Filebeat service
systemd:
name: filebeat
state: started
enabled: yes
daemon_reload: yes
创建一个名为filebeat.service.j2
的模板文件。
[Unit]
Description=Filebeat
After=syslog.target network.target
[Service]
Type=simple
User={{ ansible_user }}
ExecStart={{ filebeat_install_path }}/filebeat -e -c {{ filebeat_install_path }}/filebeat.yml
Restart=on-failure
[Install]
WantedBy=multi-user.target
在控制节点上运行以下命令来部署Filebeat。
ansible-playbook -i inventory_file deploy_filebeat.yml
其中,inventory_file
是你的目标主机列表文件。
确保Filebeat服务正在运行并且配置正确。
ssh user@target_host
sudo systemctl status filebeat
sudo filebeat modules list
通过以上步骤,你可以在CentOS上实现Filebeat的自动化部署。你可以根据需要进一步自定义Playbook和模板文件,以满足特定的配置需求。