Dalam era hybrid cloud yang semakin populer, mengelola server on-premise menjadi tantangan tersendiri. Anda mungkin ingin menggabungkan data monitoring dari server on-premise Anda dengan data yang Anda kumpulkan di AWS Cloud. Salah satu solusi terbaik untuk ini adalah dengan menggunakan AWS CloudWatch Agent.
Artikel ini akan memandu Anda langkah demi langkah untuk menginstal dan mengkonfigurasi AWS CloudWatch Agent pada server on-premise Anda yang berbasis Debian, dengan memanfaatkan AWS Systems Manager (SSM). Untuk memudahkan pemahaman, kita akan menggunakan instans EC2 di akun AWS yang berbeda sebagai representasi server on-premise Anda.
Tujuan Artikel:
- Memahami cara mendaftarkan server on-premise berbasis Debian ke AWS Systems Manager menggunakan Hybrid Activation.
- Mengatur cara instalasi dan konfigurasi CloudWatch Agent di server.
- Mengirim log dari server on-premise ke AWS CloudWatch.
Prasyarat:
- Akun AWS dengan izin yang diperlukan.
- Server berbasis Debian (dalam contoh ini, kita akan menggunakan instans EC2 di akun AWS yang berbeda).
Langkah 1: Membangun Hybrid Activation di SSM
Sebelum mendaftarkan server on-premise Anda, Anda perlu membuat Hybrid Activation di SSM. Proses ini akan memberikan Anda Activation Code dan Activation ID yang diperlukan untuk mendaftarkan server Anda.
- Akses Konsol Systems Manager: Login ke AWS Management Console dan buka konsol Systems Manager.
- Buat Hybrid Activation Baru:
- Di panel navigasi Systems Manager, pilih Hybrid Activations di bawah Node Management.
- Klik Create Activation.
- Konfigurasi Hybrid Activation:
- Activation Description: Berikan deskripsi yang jelas, misalnya “Pendaftaran Server On-Premise”.
- Instance Limit: Tentukan jumlah server on-premise yang ingin Anda daftarkan.
- IAM Role: Pilih atau buat peran IAM yang memiliki izin yang diperlukan untuk Systems Manager.
- Registration Expiration Date: Tetapkan tanggal kedaluwarsa untuk aktivasi ini, setelah tanggal ini aktivasi tidak dapat digunakan lagi.
- Klik Create Activation.
- Simpan Activation Code dan Activation ID: Setelah membuat aktivasi, Anda akan menerima Activation Code dan Activation ID. Catat informasi ini dengan hati-hati karena Anda akan membutuhkannya nanti untuk mendaftarkan server on-premise Anda.
Langkah 2: Mendaftarkan Server On-Premise ke AWS Systems Manager
Dengan Hybrid Activation yang telah Anda buat, sekarang Anda dapat mendaftarkan server Debian Anda ke AWS Systems Manager.
- Perbarui Daftar Paket: Mulailah dengan memperbarui daftar paket server Anda:
bash sudo apt-get update
- Instal SSM Agent: Unduh dan instal SSM Agent:
bash mkdir /tmp/ssm cd /tmp/ssm wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb sudo dpkg -i amazon-ssm-agent.deb
- Daftarkan Server ke SSM: Daftarkan server Anda menggunakan Activation Code, Activation ID, dan wilayah AWS Anda:
sudo amazon-ssm-agent -register -code "<your-activation-code>" -id "<your-activation-id>" -region "<your-region>"
Contoh:sudo amazon-ssm-agent -register -code "h7FfWBbOrDCeXexxxxxx" -id "914e2266-e1c1-4c3a-b638-2azzzzzzzzzz" -region "eu-central-1"
- Mulai SSM Agent: Setelah terdaftar, mulailah SSM Agent:
bash sudo systemctl start amazon-ssm-agent
- Aktifkan SSM Agent untuk Mulai Saat Boot: Pastikan agent dimulai secara otomatis saat boot:
bash sudo systemctl enable amazon-ssm-agent
- Verifikasi Status SSM Agent: Terakhir, konfirmasi bahwa agent sedang berjalan:
bash sudo systemctl status amazon-ssm-agent
Server Debian Anda sekarang berhasil terdaftar di AWS Systems Manager dan dapat dikelola melalui AWS Management Console.
Langkah 3: Instal dan Konfigurasi Nginx (Untuk Pengumpulan Log)
Untuk menghasilkan log untuk CloudWatch Agent, mari instal Nginx di server Debian Anda.
- Instal Nginx:
bash sudo apt update sudo apt install nginx sudo systemctl status nginx
- File Log Nginx: File log Nginx yang akan kita kirim ke Cloudwatch adalah:
/var/log/nginx/error.log
/var/log/nginx/access.log
Langkah 4: Instal CloudWatch Agent Menggunakan SSM
Sekarang, mari kita gunakan SSM Agent untuk menginstal CloudWatch Agent di server kita.
- Akses Konsol Systems Manager: Buka konsol Systems Manager di AWS Systems Manager Console.
- Jalankan Perintah untuk Menginstal CloudWatch Agent:
- Navigasi ke Run Command.
- Pilih AWS-ConfigureAWSPackage dari daftar dokumen perintah.
- Pilih server on-premise Anda sebagai target.
- Atur Action ke Install.
- Masukkan AmazonCloudWatchAgent di kotak Name.
- Biarkan bidang Version kosong untuk menginstal versi terbaru.
- Pilih Run.
CloudWatch Agent sekarang akan diinstal di server Anda.
Langkah 5: Konfigurasi CloudWatch Agent
Untuk mengaktifkan CloudWatch Agent untuk mengirim log dari server on-premise Anda ke AWS CloudWatch, Anda perlu menyiapkan pengguna IAM dengan izin yang diperlukan, mengonfigurasi server Anda untuk menggunakan kredensial pengguna IAM ini, dan memastikan bahwa CloudWatch Agent dikonfigurasi dengan benar untuk menggunakan kredensial ini.
- Buat Pengguna IAM dengan Izin yang Diperlukan:
- Pertama, Anda perlu membuat pengguna IAM yang memiliki izin untuk mengirim log ke CloudWatch.
1. Masuk ke AWS Management Console dan buka konsol IAM. 2. Buat Pengguna Baru: * Navigasi ke **Users** dan klik **Add user**. * Masukkan nama pengguna (misalnya, CloudWatchAgentUser). * Di bawah **Access type**, pilih **Programmatic access** untuk menghasilkan access key ID dan secret access key untuk pengguna ini. 3. Tetapkan Izin: * Klik **Attach policies directly**.* Lampirkan kebijakan terkelola berikut ke pengguna: * **CloudWatchAgentServerPolicy** * **CloudWatchAgentAdminPolicy** * **AmazonSSMManagedInstanceCore** Kebijakan ini memberikan izin yang diperlukan untuk mengirim log ke CloudWatch, mengakses SSM, dan berinteraksi dengan CloudWatch Agent.4. Selesaikan Pembuatan Pengguna: * Lanjutkan untuk meninjau dan membuat pengguna. * Di halaman terakhir, pastikan untuk mengunduh file .csv yang berisi Access Key ID dan Secret Access Key, atau salin ke lokasi yang aman. Anda akan memerlukan kredensial ini pada langkah selanjutnya.
- Konfigurasi Server dengan Kredensial Pengguna IAM:
- Sekarang setelah Anda memiliki Access Key ID dan Secret Access Key, Anda perlu mengonfigurasi server Anda untuk menggunakan kredensial ini dengan membuat profil AWS CLI bernama AmazonCloudWatchAgent.
* Di server on-premise Anda, jalankan perintah berikut untuk mengonfigurasi AWS CLI dengan kredensial pengguna IAM: ```bash sudo aws configure --profile AmazonCloudWatchAgent ``` * Saat diminta, masukkan detail berikut: * **AWS Access Key ID:** Masukkan Access Key ID yang Anda dapatkan sebelumnya. * **AWS Secret Access Key:** Masukkan Secret Access Key. * **Default region name:** Masukkan wilayah tempat Anda ingin log dikirim (misalnya, eu-central-1). * **Default output format:** Biarkan bidang ini kosong atau masukkan json. Ini membuat profil bernama AmazonCloudWatchAgent di server Anda yang akan digunakan CloudWatch Agent untuk mengirim log ke AWS CloudWatch.
- Perbarui Konfigurasi CloudWatch Agent:
- Jika Anda mensimulasikan lingkungan on-premise menggunakan instans EC2, Anda mungkin perlu memperbarui file konfigurasi CloudWatch Agent (common-config.toml) untuk menggunakan profil yang baru dibuat.
* Buka file common-config.toml: ```bash sudo nano /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml ``` * Batalkan komentar dan perbarui bagian berikut untuk menyertakan nama profil dan file kredensial: ```toml
[credentials]
shared_credential_profile = “AmazonCloudWatchAgent” shared_credential_file = “/root/.aws/credentials” “` * Simpan dan keluar dari file.
Langkah 6: Mulai CloudWatch Agent dengan File Konfigurasi yang Dibuat Sebelumnya Menggunakan SSM
Dalam langkah ini, kita akan menggunakan file konfigurasi yang dibuat sebelumnya dan disimpan di AWS Systems Manager Parameter Store untuk memulai CloudWatch Agent.
- Buat dan Simpan File Konfigurasi di SSM Parameter Store:
- Pertama, buat file konfigurasi CloudWatch Agent di komputer lokal Anda. Berikut ini contoh konfigurasi:
{ "agent": { "metrics_collection_interval": 60, "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log" }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/nginx/access.log", "log_group_class": "INFREQUENT_ACCESS", "log_group_name": "{instance_id}-nginx-access.log", "log_stream_name": "{instance_id}", "retention_in_days": 7 }, { "file_path": "/var/log/nginx/error.log", "log_group_class": "INFREQUENT_ACCESS", "log_group_name": "{instance_id}-nginx-error.log", "log_stream_name": "{instance_id}", "retention_in_days": 7 } ] } } } }
- Setelah file konfigurasi Anda siap, simpan ke AWS Systems Manager Parameter Store:
aws ssm put-parameter --name "CloudWatchAgentConfig" --type "String" --value file://configuration_file_pathname
- Ganti configuration_file_pathname dengan jalur sebenarnya ke file konfigurasi Anda.
- Akses Konsol Systems Manager:
- Kembali ke konsol Systems Manager.
- Jalankan Perintah untuk Memulai CloudWatch Agent:
- Navigasi ke Run Command.
- Pilih AmazonCloudWatch-ManageAgent dari dokumen Perintah.
- Pilih server on-premise Anda sebagai target.
- Atur Action ke configure.
- Atur Mode ke onPremise.
- Di kotak Optional Configuration Location, masukkan nama file konfigurasi yang disimpan di Parameter Store (misalnya, CloudWatchAgentConfig).
- Pilih Run.
CloudWatch Agent sekarang akan dimulai dengan konfigurasi yang ditentukan.
Verifikasi Log CloudWatch Agent
Anda dapat memantau log CloudWatch Agent dengan menjalankan:
sudo tail -f /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
Catatan tentang Enkripsi KMS untuk Grup Log
Saat ini, CloudWatch Agent tidak mendukung enkripsi KMS untuk grup log selama pembuatannya. Solusi alternatifnya adalah dengan mengizinkan agent untuk membuat grup log terlebih dahulu, kemudian secara manual mengaitkannya dengan kunci KMS menggunakan perintah berikut:
aws logs associate-kms-key --log-group-name LOG_GROUP_NAME --kms-key-id KEY_ARN
Terdapat permintaan fitur yang sedang berlangsung terkait masalah ini, yang dapat Anda lacak di sini.
Kesimpulan
Artikel ini memberikan panduan praktis bagi siapa saja yang perlu mendaftarkan server on-premise ke AWS Systems Manager (SSM) dan menginstal CloudWatch Agent menggunakan SSM. Dengan mengikuti langkah-langkah yang diuraikan di sini, Anda dapat dengan cepat dan efisien menggabungkan server Anda ke SSM dan mengonfigurasi CloudWatch Agent untuk memantau dan mencatat aktivitas sistem Anda, memastikan Anda mempertahankan visibilitas dan kendali atas infrastruktur Anda, baik di on-premise maupun di cloud.