Pattern: Disabled domain logging for AWS Elasticsearch
Issue: -
Amazon ES exposes four Elasticsearch logs through Amazon CloudWatch Logs: error logs, search slow logs, index slow logs, and audit logs.
Search slow logs, index slow logs, and error logs are useful for troubleshooting performance and stability issues.
Audit logs track user activity for compliance purposes.
All the logs are disabled by default.
Resolution: Enable logging for Elasticsearch domains.
Example of incorrect code:
resource "aws_elasticsearch_domain" "bad_example" {
domain_name = "example"
elasticsearch_version = "1.5"
}
resource "aws_elasticsearch_domain" "bad_example" {
domain_name = "example"
elasticsearch_version = "1.5"
log_publishing_options {
cloudwatch_log_group_arn = aws_cloudwatch_log_group.example.arn
log_type = "INDEX_SLOW_LOGS"
enabled = false
}
}
Example of correct code:
resource "aws_elasticsearch_domain" "good_example" {
domain_name = "example"
elasticsearch_version = "1.5"
log_publishing_options {
cloudwatch_log_group_arn = aws_cloudwatch_log_group.example.arn
log_type = "INDEX_SLOW_LOGS"
enabled = true
}
}
resource "aws_elasticsearch_domain" "good_example" {
domain_name = "example"
elasticsearch_version = "1.5"
log_publishing_options {
cloudwatch_log_group_arn = aws_cloudwatch_log_group.example.arn
log_type = "INDEX_SLOW_LOGS"
enabled = true
}
}