Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan konsumsi syslog
Bagian ini memandu Anda melalui langkah-langkah untuk mengatur konsumsi syslog ke dalam Log. CloudWatch Anda akan membuat titik akhir VPC untuk layanan syslog, grup log untuk menerima pesan, kebijakan sumber daya untuk mengotorisasi layanan syslog, dan konfigurasi syslog yang merutekan lalu lintas dari titik akhir VPC Anda ke grup log Anda.
Anda dapat melakukan semua langkah ini menggunakan AWS Management Console, the AWS CLI, atau AWS SDK. Instruksi berikut memberikan konsol dan AWS CLI contoh.
Prasyarat
Identitas IAM (pengguna atau peran) yang Anda gunakan untuk mengatur konsumsi syslog harus memiliki izin untuk membuat titik akhir VPC, grup log, kebijakan sumber daya, dan konfigurasi syslog. Contoh kebijakan berikut menunjukkan izin minimum yang diperlukan:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:PutResourcePolicy",
"logs:DeleteResourcePolicy",
"logs:PutSyslogConfiguration",
"logs:ListSyslogConfigurations",
"logs:DeleteSyslogConfiguration"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateVpc",
"ec2:ModifyVpcAttribute",
"ec2:CreateSubnet",
"ec2:CreateSecurityGroup",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CreateVpcEndpoint",
"ec2:ModifyVpcEndpoint",
"ec2:DescribeVpcEndpoints"
],
"Resource": "*"
}
]
}
Jika Anda sudah memiliki VPC, subnet, dan grup keamanan, Anda hanya memerlukan, ec2:CreateVpcEndpointec2:ModifyVpcEndpoint, dan ec2:DescribeVpcEndpoints izin untuk tindakan EC2.
Langkah 1: Buat atau identifikasi VPC
Anda memerlukan VPC yang dapat dijangkau dari jaringan lokal Anda (melalui VPN atau Direct Connect) tempat perangkat penghasil syslog Anda berada. Jika Anda sudah memiliki VPC yang terhubung ke pusat data Anda, lewati langkah ini dan gunakan VPC dan ID subnet yang ada.
- Console
-
Untuk membuat VPC (konsol)
Buka konsol VPC Amazon di. https://console.aws.amazon.com/vpc/
Di panel navigasi, pilih VPC Anda, lalu pilih Buat VPC.
Agar Sumber Daya dapat dibuat, pilih VPC saja.
Untuk blok IPv4 CIDR, masukkan 10.0.0.0/16 (atau CIDR yang tidak bertentangan dengan jaringan lokal Anda).
Pilih Buat VPC.
Pilih VPC yang baru dibuat, pilih Tindakan, Edit pengaturan VPC. Aktifkan resolusi DNS dan nama host DNS, lalu pilih Simpan.
-
Buat subnet untuk titik akhir VPC:
Di panel navigasi, pilih Subnet, lalu pilih Buat subnet.
Untuk ID VPC, pilih VPC yang Anda buat.
Untuk Availability Zone, pilih Availability Zone.
Untuk blok CIDR subnet IPv4, masukkan. 10.0.1.0/24
Pilih Buat subnet.
- AWS CLI
-
REGION=us-east-1
# Create VPC
VPC_ID=$(aws ec2 create-vpc \
--cidr-block 10.0.0.0/16 \
--region $REGION \
--query 'Vpc.VpcId' --output text)
aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-support --region $REGION
aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-hostnames --region $REGION
# Create a subnet for the VPC endpoint
SUBNET_ID=$(aws ec2 create-subnet \
--vpc-id $VPC_ID \
--cidr-block 10.0.1.0/24 \
--availability-zone ${REGION}a \
--region $REGION \
--query 'Subnet.SubnetId' --output text)
echo "VPC: $VPC_ID, Subnet: $SUBNET_ID"
Endpoint VPC membuat elastic network interface (ENI) dengan IP pribadi di subnet Anda. Perangkat lokal Anda mencapai IP ini melalui VPN atau koneksi Direct Connect. Pastikan perutean jaringan Anda memungkinkan lalu lintas dari perangkat Anda ke subnet CIDR.
Langkah 2: Membuat grup keamanan
Buat grup keamanan untuk titik akhir VPC yang memungkinkan lalu lintas syslog masuk dari VPC Anda. Ini mengontrol sumber daya mana yang dapat mengirim syslog ke titik akhir.
- Console
-
Untuk membuat grup keamanan (konsol)
Buka konsol VPC Amazon di. https://console.aws.amazon.com/vpc/
Di panel navigasi, pilih Grup keamanan, lalu pilih Buat grup keamanan.
Untuk Nama grup keamanan, masukkan syslog-vpce-sg.
Untuk Deskripsi, masukkan Allow syslog traffic to VPC endpoint.
Untuk VPC, pilih VPC yang Anda buat atau identifikasi di Langkah 1.
-
Di bagian Aturan masuk, pilih Tambahkan aturan dan tambahkan aturan berikut:
Aturan 1: Jenis = TCP Kustom, Rentang port =6514, Sumber = 10.0.0.0/16 (CIDR VPC Anda)
Aturan 2: Jenis = TCP Kustom, Rentang port =1514, Sumber = 10.0.0.0/16
Aturan 3: Jenis = UDP Kustom, Rentang port =514, Sumber = 10.0.0.0/16
Pilih Buat grup keamanan.
- AWS CLI
-
VPCE_SG_ID=$(aws ec2 create-security-group \
--group-name syslog-vpce-sg \
--description "Allow syslog traffic to VPC endpoint" \
--vpc-id $VPC_ID \
--region $REGION \
--query 'GroupId' --output text)
# Allow TCP+TLS (port 6514), TCP plaintext (port 1514), and UDP (port 514)
aws ec2 authorize-security-group-ingress --group-id $VPCE_SG_ID \
--protocol tcp --port 6514 --cidr 10.0.0.0/16 --region $REGION
aws ec2 authorize-security-group-ingress --group-id $VPCE_SG_ID \
--protocol tcp --port 1514 --cidr 10.0.0.0/16 --region $REGION
aws ec2 authorize-security-group-ingress --group-id $VPCE_SG_ID \
--protocol udp --port 514 --cidr 10.0.0.0/16 --region $REGION
Jika Anda hanya berencana untuk menggunakan satu protokol (misalnya, TCP+TLS pada port 6514), Anda hanya perlu membuka port itu di grup keamanan.
Langkah 3: Buat VPC endpoint
Buat titik akhir VPC antarmuka yang menunjuk ke layanan syslog. AWS PrivateLink Ini memberi VPC Anda titik masuk pribadi ke layanan CloudWatch syslog Logs.
Anda dapat menentukan beberapa ID subnet di Availability Zone yang berbeda saat membuat endpoint. Titik akhir membuat ENI di setiap subnet, memberikan ketersediaan yang lebih tinggi tanpa memerlukan titik akhir VPC terpisah per Availability Zone. Titik akhir VPC tunggal dengan subnet di beberapa Availability Zone sudah cukup.
- Console
-
Untuk membuat titik akhir VPC (konsol)
Buka konsol VPC Amazon di. https://console.aws.amazon.com/vpc/
Di panel navigasi, pilih Endpoints, lalu pilih Create endpoint.
Untuk tag Nama, masukkan nama untuk titik akhir (misalnya,syslog-vpce).
Untuk kategori Layanan, pilih AWS layanan.
Di bidang pencarian Layanan, masukkan syslog-logs dan pilih layanancom.amazonaws.Region.syslog-logs.
Untuk VPC, pilih VPC yang Anda buat atau identifikasi di Langkah 1.
Di bagian Subnet, pilih satu atau beberapa Availability Zones dan pilih subnet tempat Anda ingin membuat antarmuka jaringan endpoint.
Untuk grup Keamanan, pilih grup keamanan yang Anda buat di Langkah 2 (syslog-vpce-sg).
(Opsional) Jika Anda ingin membatasi lalu lintas apa yang diizinkan melalui titik akhir, konfigurasikan kebijakan titik akhir VPC. Untuk informasi selengkapnya, lihat Kebijakan titik akhir VPC untuk syslog.
Pilih Buat titik akhir.
Setelah status titik akhir berubah menjadi Tersedia, pilih titik akhir dan catat nilai nama DNS. Ini adalah alamat yang akan dikirim oleh perangkat syslog Anda.
- AWS CLI
-
VPCE_ID=$(aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.${REGION}.syslog-logs \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_ID \
--security-group-ids $VPCE_SG_ID \
--region $REGION \
--query 'VpcEndpoint.VpcEndpointId' --output text)
echo "VPC Endpoint: $VPCE_ID"
Tunggu hingga titik akhir tersedia (sekitar 60 detik), lalu ambil nama DNS:
VPCE_DNS=$(aws ec2 describe-vpc-endpoints --vpc-endpoint-ids $VPCE_ID \
--region $REGION --query 'VpcEndpoints[0].DnsEntries[0].DnsName' --output text)
echo "Endpoint DNS: $VPCE_DNS"
Simpan VPCE_DNS nilainya — Anda akan mengonfigurasi perangkat syslog Anda untuk dikirim ke alamat ini.
Langkah 4: Buat grup log
Buat grup CloudWatch log Log tempat pesan syslog Anda akan dikirimkan. Anda dapat menggunakan nama grup log apa pun. Kami merekomendasikan menggunakan /syslog/ awalan untuk kejelasan organisasi.
- Console
-
Untuk membuat grup log (konsol)
Buka konsol CloudWatch Log di https://console.aws.amazon.com/cloudwatch/.
Di panel navigasi, di bawah Manajemen Log, pilih Grup log.
Pilih Buat grup log.
Untuk nama grup Log, masukkan/syslog/my-devices.
(Opsional) Konfigurasikan pengaturan retensi dan enkripsi sesuai kebutuhan.
Pilih Buat.
- AWS CLI
-
aws logs create-log-group \
--log-group-name /syslog/my-devices \
--region $REGION
Anda tidak perlu membuat aliran log. Layanan syslog secara otomatis membuat aliran log bernama VPCE_ID_Syslog_Region (misalnya,vpce-0abc123def456_Syslog_us-east-1) saat pesan pertama dikirim.
Langkah 5: Tambahkan kebijakan sumber daya
Layanan syslog CloudWatch Logs menulis ke grup log Anda menggunakan Principal syslog.logs.amazonaws.com Layanan. Anda harus memberikan izin melalui kebijakan sumber daya di grup log Anda. aws:SourceArnKondisi ini memastikan hanya lalu lintas dari titik akhir VPC spesifik Anda yang dapat menulis ke grup log ini.
ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text)
aws logs put-resource-policy \
--policy-name syslog-ingestion \
--policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "syslog.logs.amazonaws.com"
},
"Action": [
"logs:PutLogEvents",
"logs:CreateLogStream"
],
"Resource": "arn:aws:logs:'$REGION':'$ACCOUNT_ID':log-group:/syslog/my-devices:*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "'$ACCOUNT_ID'"
},
"ArnEquals": {
"aws:SourceArn": "arn:aws:ec2:'$REGION':'$ACCOUNT_ID':vpc-endpoint/'$VPCE_ID'"
}
}
}
]
}' \
--region $REGION
Kondisi dalam kebijakan sumber daya memberikan perlindungan berikut:
aws:SourceAccount— Mencegah serangan wakil yang membingungkan. Hanya lalu lintas akun Anda yang diterima.
aws:SourceArn— Cakupan akses ke titik akhir VPC tertentu. Jika Anda memiliki beberapa titik akhir VPC, tambahkan masing-masing sebagai ARN terpisah dalam kondisi tersebut.
Untuk mengizinkan beberapa titik akhir VPC menulis ke grup log yang sama, gunakan operator ArnLike kondisi dengan wildcard:
"ArnLike": {
"aws:SourceArn": "arn:aws:ec2:us-east-1:123456789012:vpc-endpoint/*"
}
Langkah 6: Buat konfigurasi syslog
Langkah ini memberi tahu layanan syslog CloudWatch Logs bahwa lalu lintas yang datang dari titik akhir VPC Anda harus diarahkan ke grup log Anda. Tanpa konfigurasi ini, lalu lintas dari titik akhir Anda ditolak.
- Console
-
Untuk membuat konfigurasi syslog (konsol)
Buka konsol CloudWatch Log di https://console.aws.amazon.com/cloudwatch/.
Di panel navigasi, di bawah Manajemen Log, pilih Grup log.
Pilih grup log yang Anda buat di Langkah 4 (misalnya,/syslog/my-devices).
Di detail grup log, cari bagian Syslog Ingestion.
Pilih Konfigurasikan
Dari dropdown titik akhir VPC, pilih titik akhir VPC yang Anda buat di Langkah 3.
Pilih Buat.
- AWS CLI
-
aws logs put-syslog-configuration \
--log-group-identifier /syslog/my-devices \
--vpc-endpoint-id $VPCE_ID \
--region $REGION
Verifikasi konfigurasi:
aws logs list-syslog-configurations \
--log-group-identifier /syslog/my-devices \
--region $REGION
Pipa konsumsi syslog Anda sekarang aktif. Setiap pesan syslog yang dikirim ke titik akhir VPC akan dikirimkan ke grup log. /syslog/my-devices
Langkah 7: Verifikasi pengiriman dan ekstraksi lapangan
Kirim pesan pengujian dari host atau perangkat EC2 mana pun yang dapat mencapai titik akhir VPC, lalu CloudWatch gunakan Log Analytics untuk memverifikasi bahwa pesan telah dikirim dan bahwa bidang terstruktur diekstraksi dengan benar. Pesan biasanya muncul dalam 10-20 detik.
Kirim pesan pengujian (TCP plaintext):
echo "<134>1 $(date -u +%Y-%m-%dT%H:%M:%SZ) myhost myapp 1234 - - Hello from syslog" | \
nc $VPCE_DNS 1514
Verifikasi pengiriman dan bidang yang diekstraksi:
- Console
-
Untuk memverifikasi pengiriman menggunakan Log Analytics (konsol)
Buka konsol CloudWatch Log di https://console.aws.amazon.com/cloudwatch/.
Di panel navigasi, di bawah Log, pilih Log Analytics.
Di pemilih grup log, pilih grup log Anda (misalnya,/syslog/my-devices).
-
Masukkan kueri berikut dan pilih Jalankan kueri:
fields @timestamp, facility, severity, hostname, appName, procId, message
| sort @timestamp desc
| limit 10
Verifikasi bahwa pesan pengujian Anda muncul dan bahwa bidang yang diekstraksi diisi dengan benar. Untuk pesan tes di atas, Anda harus melihat facility =local0, severity =info, hostname =myhost, appName =myapp, dan procId =1234.
- AWS CLI
-
Mulai kueri Log Analytics untuk memverifikasi pengiriman dan ekstraksi bidang:
QUERY_ID=$(aws logs start-query \
--log-group-name /syslog/my-devices \
--start-time $(date -d '5 minutes ago' +%s 2>/dev/null || echo $(date -v-5M +%s)) \
--end-time $(date +%s) \
--query-string 'fields @timestamp, facility, severity, hostname, appName, procId, message | sort @timestamp desc | limit 10' \
--region $REGION \
--query 'queryId' --output text)
# Wait a few seconds for the query to complete, then retrieve results
aws logs get-query-results \
--query-id $QUERY_ID \
--region $REGION
Verifikasi bahwa pesan pengujian Anda muncul dan bahwa bidang yang diekstraksi diisi dengan benar. Untuk pesan tes di atas, Anda harus melihat facility =local0, severity =info, hostname =myhost, appName =myapp, dan procId =1234.