GNU/Linux >> Belajar Linux >  >> Linux

Cara mengirim log aplikasi Linux ke AWS CloudWatch

AWS CloudWatch adalah layanan pemantauan yang disediakan oleh AWS cloud. AWS menyediakan pemantauan default untuk parameter server seperti Pemanfaatan CPU, Jaringan Masuk, Jaringan Keluar, dll. AWS CloudWatch dapat digunakan untuk pemantauan khusus seperti pemanfaatan disk dan pemanfaatan memori (RAM). Untuk pemantauan khusus, kita perlu mengikuti beberapa langkah untuk membuatnya dipantau.

Dengan cara yang sama, AWS CloudWatch dapat digunakan untuk memantau server atau log aplikasi. Karena ini bukan fitur default dari AWS karena alasan yang jelas, kami dapat mengonfigurasinya sesuai kebutuhan kami. Tergantung pada pengguna, log apa yang perlu kami kirim ke AWS CloudWatch untuk pemantauan.

Tidak terbatas pada sumber daya AWS

Bahkan jika AWS CloudWatch adalah layanan AWS, tidak berarti itu hanya dapat digunakan untuk instans EC2, itu juga dapat dikonfigurasi untuk mengirim log aplikasi atau server dari VM dari penyedia cloud lain dan juga dari VM di drive fisik .

Cara mengirim log aplikasi atau server ke AWS CloudWatch

Untuk mengirim aplikasi atau log server ke AWS CloudWatch, kita perlu menginstal agen CloudWatch di server masing-masing. Kami akan menggunakan instans AWS EC2 untuk mencapai tujuan kami di blog ini.

Langkah

  1. Peran yang sesuai untuk dilampirkan ke instans untuk berkomunikasi dengan AWS CloudWatch
  2. Penginstalan agen AWS CloudWatch
  3. Konfigurasi agen AWS CloudWatch
  4. Pengujian log di portal AWS CloudWatch

Peran IAM

Untuk mengirim aplikasi atau log server ke AWS CloudWatch, kita perlu melampirkan peran ke instans EC2 dengan izin yang sesuai. Peran akan memungkinkan membuat perubahan di AWS CloudWatch.

Itu harus berisi kebijakan di bawah ini.

  • BuatLogStream
  • DescribeLogStream
  • BuatLogGroup
  • Acara PutLog

Mari buat peran di AWS IAM.

Buka bagian IAM dari daftar Layanan di AWS console. Jika Anda belum memiliki akun AWS, buat akun dari sini.

Di dasbor IAM, buka Kebijakan, lalu Buat Kebijakan.

Pada halaman "Buat Kebijakan", pilih "JSON" dari tab dan rekatkan kebijakan JSON di bawah ini dengan menghapus yang default.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
    ],
      "Resource": [
        "arn:aws:logs:*:*:*"
    ]
  }
 ]
}

Kebijakan Anda akan terlihat seperti di bawah ini. Setelah selesai, klik tombol "Tinjau Kebijakan" di bagian bawah halaman.

Di halaman berikutnya, Anda perlu memberikan nama untuk kebijakan tersebut.

Setelah selesai, klik tombol "Buat Kebijakan" di bagian bawah halaman.

Setelah membuat kebijakan, Anda akan diarahkan ke halaman peran IAM. Karena kami telah membuat kebijakan yang diperlukan, kami akan membuat peran yang akan dilampirkan ke instance.

Pada halaman "Buat Peran", pilih "EC2". Karena kita akan melampirkan peran ke instance EC2.

Klik tombol "Berikutnya:Izin" di kiri bawah halaman.

Di halaman berikutnya, Anda akan diminta untuk melampirkan kebijakan ke peran tersebut. Cari nama polis yang Anda berikan pada langkah sebelumnya. Setelah ditemukan, pilih kebijakan dari daftar.

Setelah selesai, klik tombol "Berikutnya:Tag" dari bagian bawah halaman.

Pada halaman berikutnya, Anda akan diminta untuk memberikan beberapa tag pada peran tersebut. Karena itu adalah langkah opsional, saya tidak memberikan tag apa pun pada peran tersebut dan melewatkan langkah tersebut.

Setelah Anda mengklik berikutnya, Anda akan diminta untuk memberikan nama untuk peran tersebut.

Peran Anda akan dibuat dalam beberapa detik.

Sekarang setelah kita menyelesaikan penyiapan yang diperlukan dari sisi infrastruktur, mari konfigurasikan Agen AWS CloudWatch pada instans EC2.

Untuk langkah ini, Anda memerlukan instans EC2 dalam status berjalan. Hubungkan ke instance seperti yang Anda inginkan. Ada beberapa cara untuk terhubung ke instance. Anda dapat memeriksanya di sini.

Jika Anda memiliki instans Amazon Linux, ikuti langkah-langkah yang disebutkan di bawah ini.

Jika Anda pertama kali masuk ke instans, pastikan Anda menjalankan perintah pembaruan di bawah ini.

Langkah-langkah di bawah ini, Anda dapat mengikuti Amazon Linux mesin.

sudo yum update -y

Setelah pembaruan selesai, jalankan perintah di bawah ini untuk menginstal awslogs kemasan.

sudo yum install -y awslogs

Setelah paket diinstal, Anda dapat mengubah wilayah di /etc/awslogs/awscli.conf mengajukan.

Sekarang, untuk mengonfigurasi log yang ingin Anda kirim di AWS CloudWatch, buka file /etc/awslogs/awslogs.conf  dan periksa baris berikut.

[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = Amazon-Linux-2

Konfigurasi di atas menunjukkan bahwa jalur file log dari sistem Anda /var/log/messages  akan diunggah di AWS CloudWatch. Konfigurasi di atas akan membuat grup log di AWS CloudWatch dengan nama yang disebutkan di log_group_name parameter. Selain itu, hierarki akan disebutkan di log_stream_name. Untuk waktu buffer, kita dapat mengubah nilai buffer_duration. Nilai default buffer_duration adalah 5000 md.

Setelah Anda melakukan perubahan, restart aplikasi dengan menjalankan perintah di bawah ini. Ini akan memulai ulang aplikasi awslog dan agen akan mulai mengunggah log ke AWS CloudWatch.

$ sudo service awslogsd start

Untuk menginstal dan mengonfigurasi Agen AWS CloudWatch di RHEL atau CentOS, Anda dapat mengikuti langkah-langkah di bawah ini.

Jalankan perintah di bawah ini untuk mengunduh paket.

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O

Anda akan menemukan file dengan nama awslogs-agent-setup.py di lokasi saat ini. Karena file yang diunduh adalah skrip python, Anda harus menginstal python di mesin Anda untuk langkah selanjutnya. Pastikan Anda memiliki paket python yang diinstal dan kemudian jalankan perintah di bawah ini. Anda perlu menentukan wilayah dalam perintah di bawah ini. Anda juga dapat mengubah konfigurasi yang sama nanti jika Anda mau.

python ./awslogs-agent-setup.py --region ap-south-1

Setelah Anda menjalankan perintah di atas, itu akan meminta Anda untuk beberapa masukan. Sebutkan hal yang sama sesuai dengan persyaratan.

Skrip di atas akan menghasilkan file konfigurasi /var/awslogs/etc/awslogs.conf . Detail yang Anda berikan dalam skrip akan disimpan di file konfigurasi.

Anda masih dapat memodifikasi file konfigurasi sesuai kebutuhan Anda.

Setelah Anda selesai dengan semua perubahan, mulai ulang agen dengan menjalankan perintah di bawah ini.

# systemctl start awslogs

Verifikasi pengaturan yang dikonfigurasi

1. Masuk kembali ke akun AWS Anda.

2. Cari CloudWatch di daftar Layanan.

3. Pilih Grup Log pilihan dari menu sebelah kiri.

4. Telusuri nilai yang Anda berikan di log_stram_name  parameter dalam konfigurasi.

5. Anda akan melihat log didorong dari server ke AWS CloudWatch.

Kesimpulan

Anda dapat mengatur file log apa pun dari server Anda untuk didorong ke AWS CloudWatch. Ini dapat dikonfigurasi untuk server yang tidak ada di cloud AWS. Artinya, Anda dapat mendorong log dari server mana pun yang dihosting di Azure, GCP, atau penyedia cloud lainnya, atau bahkan server lokal.


Linux
  1. Cara Menggunakan SSMTP untuk Mengirim Email dari Terminal Linux

  2. Cara Menggunakan journalctl untuk Menganalisis Log di Linux

  3. Bagaimana saya bisa secara otomatis memulai aplikasi node.js di Amazon Linux AMI di aws?

  1. Cara Meningkatkan Waktu Startup Aplikasi Di Linux

  2. Cara menginstal aplikasi Spotify di Linux

  3. Bagaimana Cara Menemukan Aplikasi Untuk Tipe Mime Di Linux?

  1. Cara Mengirim Pesan ke Pengguna yang Tercatat di Terminal Linux

  2. Bagaimana cara menandatangani aplikasi Mac OS X di Linux?

  3. Bagaimana cara menginstal Fish Shell di AWS Linux