본문 바로가기

Ops/AWS

AWS EC2 - cloudwatch agent 설치 스크립트

반응형

AWS EC2 - cloudwatch agent 설치 스크립트

 

 

 

■ 설치 스크립트

#! /bin/bash
agent_path="/opt/aws/amazon-cloudwatch-agent"
region=ap-northeast-2

if [ "$(ps aux | grep -c '[a]mazon-cloudwatch-agent')" -eq "0" ]; then
        echo "Cloudwatch agent is not running. so, Checking is cloudwatch agent installed.."
        if [ -d "$agent_path" ]; then
                echo "Cloudwatch agent is already installed"
                echo -e "Do you want to replace config file and restart agent? (yes/no): "
                read answer
                if [ $answer == yes ]; then
                        sudo rm -rf /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/*
                        sed -i "s/projectregion/$region/g" ./amazon-cloudwatch-agent.json
                        sudo mv ./amazon-cloudwatch-agent.json /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/amazon-cloudwatch-agent.json
                        echo "Config file replace completed!"
                        sudo systemctl restart amazon-cloudwatch-agent
                        echo "Cloudwatch agent is restarted successfully"
                else
                        echo "Exit"
                fi
        else
                echo "Cloudwatch agent is not installed"
                echo "Install cloudwatch agent"
                sudo yum install amazon-cloudwatch-agent

                sed -i "s/projectregion/$region/g" ./amazon-cloudwatch-agent.json
                sudo mv ./amazon-cloudwatch-agent.json /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/amazon-cloudwatch-agent.json
                echo "Config file moved successfully!!"
                sudo systemctl enable amazon-cloudwatch-agent
                sudo systemctl start amazon-cloudwatch-agent
                echo "Cloudwatch agent is started successfully!!"
        fi
        #sudo service php-fpm start
else
        echo "Cloudwatch Agent is already running"
fi

 

 

■ agent config 파일 (amazon-cloudwatch-agent.json)

{
  "agent": {
    "metrics_collection_interval": 60,
    "region": "projectregion",
    "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log"
  },
  "metrics": {
    "namespace": "CWAgent",
    "metrics_collected": {
      "disk": {
        "resources": ["/"],
        "measurement": ["used_percent", "total", "free", "used"],
        "ignore_file_system_types": ["sysfs", "devtmpfs"],
        "metrics_collection_interval": 60
      },
      "diskio": {
        "resources": ["*"],
        "measurement": [
          "reads",
          "writes",
          "read_time",
          "write_time",
          "io_time"
        ],
        "metrics_collection_interval": 60
      },
      "swap": {
        "measurement": ["swap_used", "swap_free", "swap_used_percent"]
      },
      "mem": {
        "measurement": [
          "mem_used",
          "mem_used_percent",
          "mem_cached",
          "mem_total",
          "mem_available",
          "mem_free"
        ],
        "metrics_collection_interval": 1
      },
      "netstat": {
        "measurement": ["tcp_established", "tcp_syn_sent", "tcp_close"],
        "metrics_collection_interval": 60
      },
      "processes": {
        "measurement": ["running", "sleeping", "dead"]
      }
    },
    "append_dimensions": {
      "ImageId": "${aws:ImageId}",
      "InstanceId": "${aws:InstanceId}",
      "InstanceType": "${aws:InstanceType}",
      "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
    },
    "aggregation_dimensions": [
      ["ImageId"],
      ["InstanceId", "InstanceType"],
      ["d1"],
      []
    ],
    "force_flush_interval": 30
  },
  "logs": {
    "logs_collected": {
      "files": {
        "collect_list": [
          {
            "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log",
            "log_group_name": "amazon-cloudwatch-agent.log",
            "log_stream_name": "amazon-cloudwatch-agent.log",
            "timezone": "UTC"
          },
          {
            "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/test.log",
            "log_group_name": "test.log",
            "log_stream_name": "test.log",
            "timezone": "Local"
          }
        ]
      }
    },
    "log_stream_name": "my_log_stream_name",
    "force_flush_interval": 15
  }
}

 

 

 


by mkdir-chandler


 

 

 

 

 

728x90
반응형