Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menanyakan log kueri penyelesai Amazon Route 53
Anda dapat membuat tabel Athena untuk Amazon Route 53 Resolver permintaan log dan kueri mereka dari Athena.
Route 53 penyelesai permintaan penebangan untuk penebangan permintaan DNS yang dibuat oleh sumber daya dalam VPC, lokal sumber daya yang menggunakan inbound resolver endpoint, permintaan yang menggunakan akhir Resolver keluar untuk rekursif DNS resolusi, dan permintaan yang menggunakan Route 53 Resolver DNS firewall aturan untuk memblokir, memungkinkan, atau memantau daftar domain. Untuk informasi selengkapnya, lihat Mencatat Log Kueri DNS dalam Panduan Developer Amazon Route 53. Untuk informasi tentang masing-masing bidang dalam log, lihat Nilai yang muncul di log kueri resolver di Panduan Pengembang Amazon Route 53.
Membuat tabel untuk log kueri resolver
Anda dapat menggunakan Editor Kueri di konsol Athena untuk membuat dan kueri tabel untuk log permintaan Route 53 penyelesai Anda.
Untuk membuat dan menanyakan tabel Athena untuk log kueri resolver Route 53
Buka konsol Athena di https://console.aws.amazon.com/athena/
. -
Dalam Editor Kueri Athena, masukkan yang berikut
CREATE TABLE
. GantiLOCATION
dengan yang sesuai dengan lokasi log Resolver Anda di Amazon S3.CREATE EXTERNAL TABLE r53_rlogs ( version string, account_id string, region string, vpc_id string, query_timestamp string, query_name string, query_type string, query_class string, rcode string, answers array< struct< Rdata: string, Type: string, Class: string> >, srcaddr string, srcport int, transport string, srcids struct< instance: string, resolver_endpoint: string >, firewall_rule_action string, firewall_rule_group_id string, firewall_domain_list_id string ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION 's3://DOC-EXAMPLE-BUCKET/AWSLogs/
aws_account_id
/vpcdnsquerylogs/{vpc-id}
/'Karena data log kueri Resolver dalam format JSON, pernyataan CREATE TABLE menggunakan SerDepustaka JSON untuk menganalisis data.
catatan
SerDe Mengharapkan setiap dokumen JSON berada pada satu baris teks tanpa karakter penghentian baris yang memisahkan bidang dalam catatan. Jika teks JSON dalam format cetak cantik, Anda mungkin menerima pesan kesalahan seperti
HIVE_CURSOR_ERROR: Row is not a valid JSON Object or HIVE_CURSOR_ERROR::
Unexpected JsonParseException end-of-input: expected close marker for
OBJECT saat Anda mencoba menanyakan tabel setelah Anda membuatnya. Untuk informasi selengkapnya, lihat File Data JSONdalam dokumentasi SerDe OpenX pada. GitHub -
Pilih Run query (Jalankan kueri). Pernyataan itu menciptakan tabel Athena bernama
r53_rlogs
kolom yang mewakili masing-masing bidang dalam data log Resolver Anda. -
Di Athena konsol Kueri Editor, jalankan kueri berikut untuk memverifikasi bahwa tabel Anda telah dibuat.
SELECT * FROM "r53_rlogs" LIMIT 10
Contoh partisi
Contoh berikut menunjukkan CREATE TABLE
pernyataan untuk log query Resolver yang menggunakan proyeksi partisi dan dipartisi oleh vpc dan tanggal. Untuk informasi selengkapnya tentang proyek partisi, lihat Proyeksi partisi dengan Amazon Athena.
CREATE EXTERNAL TABLE r53_rlogs ( version string, account_id string, region string, vpc_id string, query_timestamp string, query_name string, query_type string, query_class string, rcode string, answers array< struct< Rdata: string, Type: string, Class: string> >, srcaddr string, srcport int, transport string, srcids struct< instance: string, resolver_endpoint: string >, firewall_rule_action string, firewall_rule_group_id string, firewall_domain_list_id string ) PARTITIONED BY ( `date` string, `vpc` string ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://DOC-EXAMPLE-BUCKET/route53-query-logging/AWSLogs/
aws_account_id
/vpcdnsquerylogs/' TBLPROPERTIES( 'projection.enabled' = 'true', 'projection.vpc.type' = 'enum', 'projection.vpc.values' = 'vpc-6446ae02', 'projection.date.type' = 'date', 'projection.date.range' = '2023/06/26,NOW', 'projection.date.format' = 'yyyy/MM/dd', 'projection.date.interval' = '1', 'projection.date.interval.unit' = 'DAYS', 'storage.location.template' = 's3://DOC-EXAMPLE-BUCKET/route53-query-logging/AWSLogs/aws_account_id
/vpcdnsquerylogs/${vpc}/${date}/' )
Kueri contoh
Contoh berikut menunjukkan beberapa pertanyaan yang dapat Anda lakukan dari Athena pada log permintaan Resolver Anda.
Contoh 1 - log kueri dalam urutan query_timestamp menurun
Kueri berikut menampilkan hasil log dalam turunquery_timestamp
Agar.
SELECT * FROM "r53_rlogs" ORDER BY query_timestamp DESC
Contoh 2 - log kueri dalam waktu mulai dan akhir yang ditentukan
Kueri kueri berikut log antara tengah malam dan 8 pagi pada 24 September 2020. Gantikan waktu awal dan akhir sesuai dengan kebutuhan Anda sendiri.
SELECT query_timestamp, srcids.instance, srcaddr, srcport, query_name, rcode FROM "r53_rlogs" WHERE (parse_datetime(query_timestamp,'yyyy-MM-dd''T''HH:mm:ss''Z') BETWEEN parse_datetime('
2020-09-24-00:00:00
','yyyy-MM-dd-HH:mm:ss') AND parse_datetime('2020-09-24-00:08:00
','yyyy-MM-dd-HH:mm:ss')) ORDER BY query_timestamp DESC
Contoh 3 - log kueri berdasarkan pola nama kueri DNS tertentu
Kueri berikut memilih catatan yang nama kueri termasuk string “example.com”.
SELECT query_timestamp, srcids.instance, srcaddr, srcport, query_name, rcode, answers FROM "r53_rlogs" WHERE query_name LIKE '%example.com%' ORDER BY query_timestamp DESC
Contoh 4 - permintaan log kueri tanpa jawaban
Kueri berikut memilih entri log tempat permintaan tidak menerima jawaban.
SELECT query_timestamp, srcids.instance, srcaddr, srcport, query_name, rcode, answers FROM "r53_rlogs" WHERE cardinality(answers) = 0
Contoh 5 - log kueri dengan jawaban tertentu
Kueri berikut menunjukkan log tempatanswer.Rdata
nilai memiliki alamat IP yang ditentukan.
SELECT query_timestamp, srcids.instance, srcaddr, srcport, query_name, rcode, answer.Rdata FROM "r53_rlogs" CROSS JOIN UNNEST(r53_rlogs.answers) as st(answer) WHERE answer.Rdata='203.0.113.16';