Terraform Logs – Debug hạ tầng khi có sự cố
Khi terraform apply báo lỗi mà output không đủ thông tin để hiểu nguyên nhân, Terraform Logs là thứ bạn cần bật lên. Bài này mình tổng hợp cách enable logging và các log level có sẵn.
Bật logging với TF_LOG
Set biến môi trường TF_LOG để bật detailed log:
export TF_LOG=DEBUG
terraform apply
Terraform hỗ trợ 5 log level, theo thứ tự từ chi tiết nhất đến ít nhất:
| Level | Mô tả |
|---|---|
TRACE |
Chi tiết nhất — log toàn bộ internal steps của Terraform, từng bước trong plan, apply, destroy |
DEBUG |
Thông tin debug, ít verbose hơn TRACE |
INFO |
Thông tin chung về quá trình thực thi |
WARN |
Cảnh báo, những thứ không gây lỗi nhưng cần chú ý |
ERROR |
Chỉ hiển thị lỗi |
Trong thực tế, TRACE và DEBUG là hai level bạn sẽ dùng nhiều nhất khi cần debug — đặc biệt khi gặp lỗi liên quan đến provider hoặc API call.
Lưu log ra file với TF_LOG_PATH
Mặc định log in thẳng ra terminal, khó đọc khi output dài. Set thêm TF_LOG_PATH để ghi vào file:
export TF_LOG=TRACE
export TF_LOG_PATH=/tmp/terraform.log
terraform apply
Sau khi chạy xong, mở file log để xem:
cat /tmp/terraform.log
# hoặc
grep "Error" /tmp/terraform.log
Tắt logging
Unset biến môi trường là xong:
unset TF_LOG
unset TF_LOG_PATH
Hoặc set về giá trị rỗng:
export TF_LOG=""
Tip thực tế
Khi debug, mình thường bắt đầu với DEBUG thay vì TRACE. Output của TRACE rất dài và phần lớn là internal Terraform — chỉ dùng TRACE khi DEBUG vẫn chưa đủ thông tin, hoặc khi cần report bug cho HashiCorp/provider maintainer.
Bài viết thuộc series Terraform Associate Certification trên ttnguyen.net.