diff --git a/roles/debian/nginx/tasks/domain.yml b/roles/debian/nginx/tasks/domain.yml index 5037f5915..f6116b1b1 100644 --- a/roles/debian/nginx/tasks/domain.yml +++ b/roles/debian/nginx/tasks/domain.yml @@ -79,10 +79,3 @@ - not domain.access_log == "/var/log/nginx/access.log" - not domain.error_log == "/var/log/nginx/error.log" - _nginx_cloudwatch_dir.stat.isdir is defined and _nginx_cloudwatch_dir.stat.isdir - -# - name: Append AWS Cloudwatch vhost config on Debian 12. -# ansible.builtin.command: "/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/nginx-{{ domain.server_name }}.json -s" -# when: -# - ansible_os_family == 'Debian' -# - ansible_distribution_major_version | int >= 12 -# - _nginx_cloudwatch_dir.stat.isdir is defined and _nginx_cloudwatch_dir.stat.isdir diff --git a/roles/debian/nginx/tasks/main.yml b/roles/debian/nginx/tasks/main.yml index 6715e9a30..abfe213ec 100644 --- a/roles/debian/nginx/tasks/main.yml +++ b/roles/debian/nginx/tasks/main.yml @@ -132,13 +132,6 @@ when: - _nginx_cloudwatch_dir.stat.isdir is defined and _nginx_cloudwatch_dir.stat.isdir -# - name: Append AWS Cloudwatch default config on Debian 12. -# ansible.builtin.command: "/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/nginx-main.json -s" -# when: -# - ansible_os_family == 'Debian' -# - ansible_distribution_major_version | int >= 12 -# - _nginx_cloudwatch_dir.stat.isdir is defined and _nginx_cloudwatch_dir.stat.isdir - - name: Update nginx mime.types ansible.builtin.template: src: mime.types.j2 diff --git a/roles/debian/php-fpm/defaults/main.yml b/roles/debian/php-fpm/defaults/main.yml index 12b52dac7..7e73d8221 100644 --- a/roles/debian/php-fpm/defaults/main.yml +++ b/roles/debian/php-fpm/defaults/main.yml @@ -55,3 +55,6 @@ php: max_accelerated_files: 2000 validate_timestamps: 1 clear_env: "yes" + # Cloudwatch log settings. + log_group_prefix: "" + log_stream_name: example diff --git a/roles/debian/php-fpm/tasks/main.yml b/roles/debian/php-fpm/tasks/main.yml index e965e8458..b66334d6e 100644 --- a/roles/debian/php-fpm/tasks/main.yml +++ b/roles/debian/php-fpm/tasks/main.yml @@ -53,3 +53,29 @@ with_items: "{{ php.version }}" loop_control: loop_var: version + +- name: Check if we have an AWS Cloudwatch folder. + ansible.builtin.stat: + path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d + register: _php_cloudwatch_dir + +- name: Generate AWS Cloudwatch config for a single, fixed port PHP version. + ansible.builtin.template: + src: cloudwatch-php-fpm-fixedport.json.j2 + dest: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/php-fpm.json + force: true + when: + - _php_cloudwatch_dir.stat.isdir is defined and _php_cloudwatch_dir.stat.isdir + - php.fpm.tcp_port | length > 0 + +- name: Generate AWS Cloudwatch config for dynamic PHP versioning. + ansible.builtin.template: + src: cloudwatch-php-fpm.json.j2 + dest: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/php-fpm.json + force: true + with_items: "{{ php.version }}" + when: + - _php_cloudwatch_dir.stat.isdir is defined and _php_cloudwatch_dir.stat.isdir + - php.fpm.tcp_port | length == 0 + loop_control: + loop_var: version diff --git a/roles/debian/php-fpm/templates/cloudwatch-php-fpm-fixedport.json.j2 b/roles/debian/php-fpm/templates/cloudwatch-php-fpm-fixedport.json.j2 new file mode 100644 index 000000000..74523ecdf --- /dev/null +++ b/roles/debian/php-fpm/templates/cloudwatch-php-fpm-fixedport.json.j2 @@ -0,0 +1,36 @@ +{ + "logs": { + "logs_collected": { + "files": { + "collect_list": [ + { + "file_path": "/var/log/php{{ php.version[0] }}-fpm.log", +{% if php.fpm.log_group_prefix is defined and php.fpm.log_group_prefix|length %} + "log_group_name": "{{ php.fpm.log_group_prefix }}php{{ php.version[0] }}", +{% else %} + "log_group_name": "php", +{% endif %} +{% if php.fpm.log_stream_name is defined and php.fpm.log_stream_name|length %} + "log_stream_name": "{{ php.fpm.log_stream_name }}" +{% else %} + "log_stream_name": "php-fpm" +{% endif %} + }, + { + "file_path": "{{ php.fpm.slowlog_file_directory }}/php{{ php.version[0] }}-fpm.slow.log", +{% if php.fpm.log_group_prefix is defined and php.fpm.log_group_prefix|length %} + "log_group_name": "{{ php.fpm.log_group_prefix }}php{{ php.version[0] }}", +{% else %} + "log_group_name": "php", +{% endif %} +{% if php.fpm.log_stream_name is defined and php.fpm.log_stream_name|length %} + "log_stream_name": "{{ php.fpm.log_stream_name }}-slowlog" +{% else %} + "log_stream_name": "php-fpm-slowlog" +{% endif %} + } + ] + } + } + } +} diff --git a/roles/debian/php-fpm/templates/cloudwatch-php-fpm.json.j2 b/roles/debian/php-fpm/templates/cloudwatch-php-fpm.json.j2 new file mode 100644 index 000000000..19a848bf3 --- /dev/null +++ b/roles/debian/php-fpm/templates/cloudwatch-php-fpm.json.j2 @@ -0,0 +1,36 @@ +{ + "logs": { + "logs_collected": { + "files": { + "collect_list": [ + { + "file_path": "/var/log/php{{ version }}-fpm.log", +{% if php.fpm.log_group_prefix is defined and php.fpm.log_group_prefix|length %} + "log_group_name": "{{ php.fpm.log_group_prefix }}php{{ version }}", +{% else %} + "log_group_name": "php", +{% endif %} +{% if php.fpm.log_stream_name is defined and php.fpm.log_stream_name|length %} + "log_stream_name": "{{ php.fpm.log_stream_name }}" +{% else %} + "log_stream_name": "php-fpm" +{% endif %} + }, + { + "file_path": "{{ php.fpm.slowlog_file_directory }}/php{{ version }}-fpm.slow.log", +{% if php.fpm.log_group_prefix is defined and php.fpm.log_group_prefix|length %} + "log_group_name": "{{ php.fpm.log_group_prefix }}php{{ version }}", +{% else %} + "log_group_name": "php", +{% endif %} +{% if php.fpm.log_stream_name is defined and php.fpm.log_stream_name|length %} + "log_stream_name": "{{ php.fpm.log_stream_name }}-slowlog" +{% else %} + "log_stream_name": "php-fpm-slowlog" +{% endif %} + } + ] + } + } + } +}