Open9
CloudWatch AgentでLogsにログファイルを送信する

SSM Agentは入っている前提でSSM を使用して CloudWatch エージェントをダウンロードした。

パラメータストアにCloudWatch Agentの設定ファイルを用意
{
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/secure",
"log_group_name": "/var/log/secure",
"log_stream_name": "{hostname}",
"retention_in_days": 1095
}
]
}
}
}
}

'"retention_in_days": 1095' としてエラーが出た。

公式ドキュメントだと
有効な値は 1、3、5、7、14、30、60、90、120、150、180、365、400、545、731、1827、2192、2557、2922、3288、および 3653 です。
となっているがエラーメッセージに従い、1096に変更。

おそらく"log_stream_name": "{hostname}"
としていたため、出力されたLogsのログストリームがEC2作成時に指定したホスト名のタイプのIP名となっていた…

{hostname} は EC2 メタデータからホスト名を取得し、{local_hostname} はネットワーク設定ファイルからホスト名を使用します。

{hostname}はhttp://169.254.169.254/latest/meta-data/hostname だろう

{local_hostname}は/etc/hostname
に記載されたホスト名になるっぽい

結論設定ファイルは下記になった
{
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/secure",
"log_group_name": "/var/log/secure",
"log_stream_name": "{local_hostname}",
"retention_in_days": 1096
}
]
}
}
}
}