๐ก ์ด๋ฒ ํฌ์คํ ์์๋ kafka-dump-log์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
kafka-dump-log ์ค๋ช ์ ๋ณด๋ฉด ๋ก๊ทธ ํ์ผ์ ํ์ฑ ํ์ฌ ๊ทธ ๋ด์ฉ์ ์ฝ์์ ๋คํ ํ๋๋ก ๋์์ฃผ๋ฉฐ, ์์๋ ๋ก๊ทธ ์ธ๊ทธ๋จผํธ๋ฅผ ๋๋ฒ๊น ํ๋๋ฐ ๋์์ด ๋๋ค๊ณ ํฉ๋๋ค.
user@ubuntu:~/confluent/bin$ kafka-dump-log --help
This tool helps to parse a log file and dump its contents to the console, useful for debugging a seemingly corrupt log segment.
Option Description
------ -----------
--cluster-metadata-decoder if set, log data will be parsed as cluster
metadata records.
--deep-iteration if set, uses deep instead of shallow
iteration. Automatically set if print-
data-log is enabled.
--files <String: file1, file2, ...> REQUIRED: The comma separated list of data
and index log files to be dumped.
--help Print usage information.
--index-sanity-check if set, just checks the index sanity
without printing its content. This is
the same check that is executed on
broker startup to determine if an index
needs rebuilding or not.
--key-decoder-class [String] if set, used to deserialize the keys. This
class should implement kafka.serializer.
Decoder trait. Custom jar should be
available in kafka/libs directory.
(default: kafka.serializer.StringDecoder)
--max-message-size <Integer: size> Size of largest message. (default: 5242880)
--offsets-decoder if set, log data will be parsed as offset
data from the __consumer_offsets topic.
--print-data-log if set, printing the messages content when
dumping data logs. Automatically set if
any decoder option is specified.
--skip-record-metadata whether to skip printing metadata for each
record.
--transaction-log-decoder if set, log data will be parsed as
transaction metadata from the
__transaction_state topic.
--value-decoder-class [String] if set, used to deserialize the messages.
This class should implement kafka.
serializer.Decoder trait. Custom jar
should be available in kafka/libs
directory. (default: kafka.serializer.
StringDecoder)
--verify-index-only if set, just verify the index log without
printing its content.
--version Display Kafka version.
๊ธฐ๋ณธ์ ์ผ๋ก kafka log๋ kafka-logs ๋๋ ํฐ๋ฆฌ ๋ฐ์ ๊ฐ topic๋ณ๋ก {topic name}-{partition number} ๋๋ ํฐ๋ฆฌ๊ฐ ์์ฑ๋๋๋ฐ ์ด ๋๋ ํฐ๋ฆฌ ๋ด๋ถ์ *.log ํ์ผ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ฉ๋๋ค.
์ด ํ์ผ์ ๋จ์ cat, vi ๋ช ๋ น์ด๋ก ํ์ธํด๋ณด๋ฉด ์์ถ์ด ์งํ๋์๊ธฐ ๋๋ฌธ์ ์ด์ํ ๋ฌธ์๋ค์ด ํจ๊ป ์ถ๋ ฅ์ด ๋ฉ๋๋ค.
kafka-dump-log ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์์ถ์ ํด์ ํ ์ ์์ ์ธ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
kafka-dump-log --files ./00000000000000000000.log
--files ๋ช ๋ น์ ์ด๋ค ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ๊ฒ์ธ์ง ๋ฐ๋์ ๋ช ์ํด์ผ ํฉ๋๋ค.
๋ค๋ฅธ ์ต์ ์ ์ฃผ์ง ์์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ ์ถ๋ ฅ๋์ง ์์ผ๋ฉฐ offset์ด๋ ๊ด๋ จ ๋ฉํ ์ ๋ณด๋ง ์ถ๋ ฅ๋ฉ๋๋ค.
์ด ๊ฒฝ์ฐ --print-data-log ์ต์ ์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ ํจ๊ป ์ถ๋ ฅํฉ๋๋ค.
--print-data-log ์ต์ ์ ์ฌ์ฉํ๋ฉด --deep-iteration ์ต์ ์ด ๊ฐ์ด ํ์ฑํ๋๋ค๊ณ ํ๋๋ฐ, -deep-iteration์ ์ฌ์ฉํ๋ฉด record์ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
๋ฐ๋ผ์ --deep-iteration ์ต์ ๋ง ์ฌ์ฉํ๊ฒ ๋ ๊ฒฝ์ฐ --print-data-log์ ๋ฌ๋ฆฌ key์ payload ํญ๋ชฉ์ ์ถ๋ ฅ๋์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ง์ฝ ๋ฐ๋๋ก key, payload๋ง ์ถ๋ ฅํ๊ณ record์ ๋ฉํ ๋ฐ์ดํฐ๋ ์ถ๋ ฅํ๊ณ ์ถ์ง ์์ ๊ฒฝ์ฐ์๋ --print-data-log ์ต์ ๊ณผ --skip-record-metadata ์ต์ ์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
kafka-dump-log ๋ช ๋ น์ด์ ์์ ์ต์ ๋ค์ ํ์ฉํด์ ํน์ topic์ ๋ฐ์ดํฐ๊ฐ ์ ์์ ์ผ๋ก ๋ค์ด๊ฐ๋์ง ์ด๋ป๊ฒ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋์ง ๋ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
์ฐธ๊ณ ์๋ฃ
'Kafka' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
kafka CLI ์ฌ์ฉํ๊ธฐ - kafka-configs.(sh | bat) (0) | 2023.04.08 |
---|---|
kafka CLI ์ฌ์ฉํ๊ธฐ - kafka-consumer-group.(sh | bat) (0) | 2023.04.08 |
KafkaProducer (0) | 2023.04.04 |
Producer (0) | 2023.04.03 |
kafka CLI ์ฌ์ฉํ๊ธฐ - kafka-console-consumer.(sh | bat) (0) | 2023.03.28 |
๋๊ธ