Mengunggah log sisi perangkat dengan menggunakan aturan AWS IoT - AWS IoT Core

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengunggah log sisi perangkat dengan menggunakan aturan AWS IoT

Anda dapat menggunakan mesin AWS IoT aturan untuk mengunggah catatan log dari file log sisi perangkat yang ada (log sistem, aplikasi, dan perangkat-klien) ke Amazon. CloudWatch Saat log sisi perangkat dipublikasikan ke topik MQTT, tindakan aturan Log akan mentransfer pesan ke CloudWatch Log. CloudWatch Proses ini menguraikan cara mengunggah log perangkat dalam batch menggunakan batchMode parameter tindakan aturan yang diaktifkan (disetel ketrue).

Untuk mulai mengunggah log sisi perangkat CloudWatch, lengkapi prasyarat berikut.

Prasyarat

Sebelum memulai, lakukan hal berikut:

Untuk informasi selengkapnya tentang prasyarat ini, lihat Mengunggah log sisi perangkat ke. CloudWatch

Membuat grup CloudWatch log

Untuk membuat grup CloudWatch log, selesaikan langkah-langkah berikut. Pilih tab yang sesuai tergantung pada apakah Anda lebih suka melakukan langkah-langkah melalui AWS Management Console atau AWS Command Line Interface (AWS CLI).

AWS Management Console
Untuk membuat grup CloudWatch log dengan menggunakan AWS Management Console
  1. Buka AWS Management Console dan navigasikan ke CloudWatch.

  2. Pada bilah navigasi, pilih Log, lalu Log grup.

  3. Pilih Buat grup log.

  4. Perbarui nama grup Log dan, secara opsional, perbarui bidang pengaturan Retensi.

  5. Pilih Buat.

AWS CLI
Untuk membuat grup CloudWatch log dengan menggunakan AWS CLI
  1. Untuk membuat grup log, jalankan perintah berikut. Untuk informasi selengkapnya, lihat create-log-group di Referensi Perintah AWS CLI v2.

    Ganti nama grup log di contoh (uploadLogsGroup) dengan nama pilihan Anda.

    aws logs create-log-group --log-group-name uploadLogsGroup
  2. Untuk mengonfirmasi bahwa grup log dibuat dengan benar, jalankan perintah berikut.

    aws logs describe-log-groups --log-group-name-prefix uploadLogsGroup

    Contoh output:

    { "logGroups": [ { "logGroupName": "uploadLogsGroup", "creationTime": 1674521804657, "metricFilterCount": 0, "arn": "arn:aws:logs:us-east-1:111122223333:log-group:uploadLogsGroup:*", "storedBytes": 0 } ] }

Membuat aturan topik

Untuk membuat AWS IoT aturan, selesaikan langkah-langkah berikut. Pilih tab yang sesuai tergantung pada apakah Anda lebih suka melakukan langkah-langkah melalui AWS Management Console atau AWS Command Line Interface (AWS CLI).

AWS Management Console
Untuk membuat aturan topik dengan menggunakan AWS Management Console
  1. Buka hub Aturan.

    1. Buka AWS Management Console dan navigasikan ke AWS IoT.

    2. Pada bilah navigasi, pilih Perutean pesan dan kemudian Aturan.

    3. Pilih Buat aturan.

  2. Masukkan properti aturan.

    1. Masukkan nama Aturan alfanumerik.

    2. (Opsional) Masukkan deskripsi Aturan dan Tag.

    3. Pilih Berikutnya.

  3. Masukkan pernyataan SQL.

    1. Masukkan pernyataan SQL menggunakan topik MQTT yang Anda tentukan untuk konsumsi.

      Sebagai contoh, SELECT * FROM '$aws/rules/things/thing_name/logs'.

    2. Pilih Berikutnya.

  4. Masukkan tindakan aturan.

    1. Pada menu Action 1, pilih CloudWatchlog.

    2. Pilih nama grup Log dan kemudian pilih grup log yang Anda buat.

    3. Pilih Gunakan mode batch.

    4. Tentukan peran IAM untuk aturan tersebut.

      Jika Anda memiliki peran IAM untuk aturan tersebut, lakukan hal berikut.

      1. Pada menu peran IAM, pilih peran IAM Anda.

      Jika Anda tidak memiliki peran IAM untuk aturan tersebut, lakukan hal berikut.

      1. Pilih Buat peran baru.

      2. Untuk nama Peran, masukkan nama unik dan pilih Buat.

      3. Konfirmasikan bahwa nama peran IAM sudah benar di bidang peran IAM.

    5. Pilih Berikutnya.

  5. Tinjau konfigurasi template.

    1. Tinjau pengaturan untuk template Job untuk memverifikasi bahwa mereka benar.

    2. Setelah selesai, pilih Buat.

AWS CLI
Untuk membuat peran IAM dan aturan topik dengan menggunakan AWS CLI
  1. Buat peran IAM yang memberikan hak atas aturan. AWS IoT

    1. Buat kebijakan IAM.

      Untuk membuat kebijakan IAM, jalankan perintah berikut. Pastikan Anda memperbarui nilai policy-name parameter. Untuk informasi selengkapnya, lihat create-policydi Referensi Perintah AWS CLI v2.

      catatan

      Jika Anda menggunakan sistem operasi Microsoft Windows, Anda mungkin perlu mengganti penanda akhir baris (\) dengan tanda centang (`) atau karakter lain.

      aws iam create-policy \ --policy-name uploadLogsPolicy \ --policy-document \ '{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iot:CreateTopicRule", "iot:Publish", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "*" } }'
    2. Salin kebijakan ARN dari output Anda ke editor teks.

      Contoh output:

      { "Policy": { "PolicyName": "uploadLogsPolicy", "PermissionsBoundaryUsageCount": 0, "CreateDate": "2023-01-23T18:30:10Z", "AttachmentCount": 0, "IsAttachable": true, "PolicyId": "AAABBBCCCDDDEEEFFFGGG", "DefaultVersionId": "v1", "Path": "/", "Arn": "arn:aws:iam::111122223333:policy/uploadLogsPolicy", "UpdateDate": "2023-01-23T18:30:10Z" } }
    3. Buat peran IAM dan kebijakan kepercayaan.

      Untuk membuat kebijakan IAM, jalankan perintah berikut. Pastikan Anda memperbarui nilai role-name parameter. Untuk informasi selengkapnya, lihat create-roledi Referensi Perintah AWS CLI v2.

      aws iam create-role \ --role-name uploadLogsRole \ --assume-role-policy-document \ '{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
    4. Lampirkan kebijakan IAM ke aturan.

      Untuk membuat kebijakan IAM, jalankan perintah berikut. Pastikan Anda memperbarui nilai role-name dan policy-arn parameter. Untuk informasi selengkapnya, lihat attach-role-policydi Referensi Perintah AWS CLI v2.

      aws iam attach-role-policy \ --role-name uploadLogsRole \ --policy-arn arn:aws:iam::111122223333:policy/uploadLogsPolicy
    5. Tinjau perannya.

      Untuk mengonfirmasi bahwa peran IAM dibuat dengan benar, jalankan perintah berikut. Pastikan Anda memperbarui nilai role-name parameter. Untuk informasi selengkapnya, lihat get-roledi Referensi Perintah AWS CLI v2.

      aws iam get-role --role-name uploadLogsRole

      Contoh output:

      { "Role": { "Path": "/", "RoleName": "uploadLogsRole", "RoleId": "AAABBBCCCDDDEEEFFFGGG", "Arn": "arn:aws:iam::111122223333:role/uploadLogsRole", "CreateDate": "2023-01-23T19:17:15+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "Description": "", "MaxSessionDuration": 3600, "RoleLastUsed": {} } }
  2. Buat aturan AWS IoT topik di AWS CLI.

    1. Untuk membuat aturan AWS IoT topik, jalankan perintah berikut. Pastikan Anda memperbarui nilai--rule-name, sql pernyataan,description,roleARN , dan logGroupName parameter. Untuk informasi selengkapnya, lihat create-topic-ruledi Referensi Perintah AWS CLI v2.

      aws iot create-topic-rule \ --rule-name uploadLogsRule \ --topic-rule-payload \ '{ "sql":"SELECT * FROM 'rules/things/thing_name/logs'", "description":"Upload logs test rule", "ruleDisabled":false, "awsIotSqlVersion":"2016-03-23", "actions":[ {"cloudwatchLogs": {"roleArn":"arn:aws:iam::111122223333:role/uploadLogsRole", "logGroupName":"uploadLogsGroup", "batchMode":true} } ] }'
    2. Untuk mengonfirmasi bahwa aturan dibuat dengan benar, jalankan perintah berikut. Pastikan Anda memperbarui nilai role-name parameter. Untuk informasi selengkapnya, lihat get-topic-ruledi Referensi Perintah AWS CLI v2.

      aws iot get-topic-rule --rule-name uploadLogsRule

      Contoh output:

      { "ruleArn": "arn:aws:iot:us-east-1:111122223333:rule/uploadLogsRule", "rule": { "ruleName": "uploadLogsRule", "sql": "SELECT * FROM rules/things/thing_name/logs", "description": "Upload logs test rule", "createdAt": "2023-01-24T16:28:15+00:00", "actions": [ { "cloudwatchLogs": { "roleArn": "arn:aws:iam::111122223333:role/uploadLogsRole", "logGroupName": "uploadLogsGroup", "batchMode": true } } ], "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23" } }

Mengirim log sisi perangkat ke AWS IoT

Untuk mengirim log sisi perangkat ke AWS IoT
  1. Untuk mengirim log historis ke AWS IoT, berkomunikasi dengan perangkat Anda untuk memastikan hal berikut.

    • Informasi log dikirim ke namespace topik yang benar sebagaimana ditentukan dalam bagian Prasyarat dari prosedur ini.

      Sebagai contoh, $aws/rules/things/thing_name/logs.

    • Payload pesan MQTT diformat dengan benar. Untuk informasi lebih lanjut tentang topik MQTT dan konvensi penamaan yang direkomendasikan, lihat bagian di dalamnya. Topik MQTT Unggah log sisi perangkat ke Amazon CloudWatch

  2. Konfirmasikan bahwa pesan MQTT diterima dalam klien MQTT. AWS IoT

    1. Buka AWS Management Console dan navigasikan ke AWS IoT.

    2. Untuk melihat klien pengujian MQTT, pada bilah navigasi, pilih Uji, klien uji MQTT.

    3. Untuk Berlangganan topik, Filter topik, masukkan namespace topik.

    4. Pilih Langganan.

      Pesan MQTT muncul di tabel Langganan dan Topik, seperti yang terlihat di bawah ini. Pesan-pesan ini dapat memakan waktu hingga lima menit untuk muncul.

      Pesan MQTT muncul di tabel Langganan dan Topik.

Melihat data log

Untuk meninjau catatan log Anda di CloudWatch Log
  1. Buka AWS Management Console, dan navigasikan ke CloudWatch.

  2. Pada bilah navigasi, pilih Log, Wawasan Log.

  3. Pada menu Pilih grup log, pilih grup log yang Anda tentukan dalam AWS IoT aturan.

  4. Pada halaman wawasan Log, pilih Jalankan kueri.