tartansandal.awslogs-setup
awslogs-setup
从头开始设置 AWS CloudWatch 日志代理。
与类似角色不同,此角色不调用 awslogs-agent-setup.py
脚本。
相反,该脚本已经被分解成一组文件、模板和
ansible 任务,可以运行这些任务以实现相同的(无交互)结果。
这使我们可以清楚地区分代理的设置和代理的配置。
后者将非常具体于您的系统,可能需要由一个单独的角色处理,该角色将 awslogs-setup
作为依赖(见下文)。
原始的 awslogs-agent-setup.py
脚本的副本已提供在 /src
目录中作为参考。
要求
适用于在 AWS 上运行的 EC2 Linux 实例。
角色变量
您可能需要设置用于已安装的 aws-cli
的 AWS 区域。默认为:
awslogs_setup_region: ap-southeast-2
该设置安装一个“启动器”脚本和一个代理守护进程“保姆”脚本,尝试确保代理始终运行。 这需要指定几个系统命令的路径。以下默认值应该适用于大多数现代系统:
awslogs_setup_launcher_nice: /usr/bin/nice
awslogs_setup_nanny_ps: /usr/bin/ps
awslogs_setup_nanny_cat: /usr/bin/cat
awslogs_setup_nanny_grep: /usr/bin/grep
awslogs_setup_nanny_service: /usr/sbin/service
不过,如果您的系统比较古怪(或较旧),可以覆盖这些默认值。
示例播放本
此角色仅设置 awslogs 代理。代理的配置由您自行决定。这非常简单,但可能非常具体于您的系统。
- hosts: servers
vars:
awslogs_setup_region: us-east-1 # 或通过库存设置
roles:
- tartansandal.awslogs-setup
handlers:
- name: 重启 awslogs
service: awslogs state=restarted
post_tasks:
- name: 为系统日志文件配置 awslogs
template:
src: awslogs.conf.j2
dest: /var/awslogs/etc/awslogs.conf
notify: 重启 awslogs
# 使用 /var/awslogs/etc/config/ 目录用于服务特定的配置
- name: 为 nginx 日志文件配置 awslogs
template:
src: nginx-awslogs.conf.j2
dest: /var/awslogs/etc/config/nginx.conf
notify: 重启 awslogs
上面的 post_tasks
可以被拆分到作为依赖的单独角色中。
有关配置代理的详细信息,请参见 http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/AgentReference.html
待办事项
- 创建 systemd 配置来管理启动器脚本。
许可证
BSD