Centos7系统ansible安装filebeat
云计算
Centos7系统ansible安装filebeat
2025-01-27 00:07
?CentOS 7系统Ansible自动化部署Filebeat全流程 (含企业级安全加固与配置优化方案) ? 核心逻辑: 基于Ansible实现批量部署 Filebeat作为轻量级日志采集器
?CentOS 7系统Ansible自动化部署Filebeat全流程
(含企业级安全加固与配置优化方案)
? 核心逻辑:
- 基于Ansible实现批量部署
- Filebeat作为轻量级日志采集器
- 支持加密传输与负载均衡
? Playbook设计规范
▶ 目录结构规划
filebeat-deploy/
├── group_vars/
│ └── all.yml # 全局变量定义
├── roles/
│ └── filebeat/
│ ├── tasks/
│ │ └── main.yml
│ ├── templates/
│ │ └── filebeat.yml.j2
│ └── files/
│ └── ca.crt # SSL证书
└── site.yml
▶ 主Playbook示例
# site.yml
- name: 部署Filebeat集群
hosts: log_servers
gather_facts: true
become: true
roles:
- role: filebeat
tags: filebeat
? 核心任务分解
任务1:安全安装包下载
# roles/filebeat/tasks/main.yml
- name: 导入Elastic GPG密钥
rpm_key:
state: present
key: "https://artifacts.elastic.co/GPG-KEY-elasticsearch"
- name: 安装Filebeat
yum:
name: filebeat
enablerepo: elastic-8.x
state: latest
? 关键参数说明:
enablerepo
:指定官方仓库版本分支state: latest
:保持版本自动更新(生产环境建议固定版本)
任务2:配置文件模板
# roles/filebeat/templates/filebeat.yml.j2
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
fields:
env: "{{ env_tag }}" # 环境标识
output.elasticsearch:
hosts: [{% for host in es_hosts %}"{{ host }}:9200"{% if not loop.last %},{% endif %}{% endfor %}]
username: "{{ es_user }}"
password: "{{ es_pass }}"
ssl.certificate_authorities: "/etc/filebeat/ca.crt"
? 安全增强:
- 使用SSL证书加密通信
- 通过Ansible Vault加密敏感凭证
- 字段级日志分类标识
任务3:证书部署
- name: 部署CA证书
copy:
src: files/ca.crt
dest: /etc/filebeat/
owner: root
group: root
mode: 0644
任务4:服务管理
- name: 重载服务配置
systemd:
name: filebeat
state: reloaded
enabled: yes
daemon_reload: yes
- name: 验证服务状态
command: filebeat test output
register: test_result
failed_when: "'ERROR' in test_result.stdout"
? 企业级配置优化
1. 多日志输入配置
filebeat.inputs:
- type: log
paths:
- /var/log/nginx/*.log
fields_under_root: true
fields:
service: nginx
- type: log
paths:
- /var/log/java/*.log
multiline.pattern: '^\['
multiline.negate: true
multiline.match: after
2. 负载均衡输出
output.elasticsearch:
hosts: ["es-node1:9200", "es-node2:9200"]
loadbalance: true
compression_level: 5
worker: 4
3. 本地缓存配置
queue.spool:
file:
path: "/var/lib/filebeat"
size: 512MB
page_size: 16MB
? 部署验证与排错
1. 服务状态检查
ansible log_servers -m shell -a "systemctl status filebeat"
ansible log_servers -m shell -a "filebeat export template"
2. 日志传输测试
# 生成测试日志
echo "$(date) Ansible test log" >> /var/log/test.log
# 查看Filebeat采集状态
journalctl -u filebeat -f --since "1 min ago"
3. Elasticsearch验证
curl -XGET 'http://es-node:9200/_cat/indices?v' | grep filebeat
? 安全合规要点
- 权限控制
- name: 配置文件权限
file:
path: /etc/filebeat/
owner: root
group: root
mode: 0750
- 审计日志
logging.level: info
logging.to_files: true
logging.files:
path: /var/log/filebeat
name: filebeat.log
keepfiles: 7
- 网络防护
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" service name="elasticsearch" source address="192.168.1.0/24" accept'
? 运维建议:
- 使用Ansible Tower实现可视化部署
- 配合ELK Stack构建完整日志分析平台
- 定期执行
filebeat setup --index-management
优化索引 - 通过Metricbeat监控Filebeat运行状态
标签:
- Centos7
- ansible