SaltStack - Ghi nhật ký
Ghi nhật ký được sử dụng để theo dõi các sự kiện phần mềm đang chạy. Một sự kiện được mô tả bằng thông báo mô tả, có thể tùy chọn chứa dữ liệu biến. Phương pháp khai thác bằng muối được sử dụng để giải quyết mọi vấn đề mà bạn có thể gặp phải. Bạn có thể kiểm tra với các mức nhật ký cụ thể.
Thiết lập cấu hình
Hãy cho chúng tôi hiểu chi tiết các cài đặt cấu hình khác nhau để ghi nhật ký.
LOG_FILE
Bản ghi nhật ký muối được chuyển qua tệp chứa tên đường dẫn cục bộ hoặc vị trí mạng để nhận dạng. Tệp này được coi là tệp nhật ký.
log_file: /var/log/salt/master
Ở đây, tệp phụ thuộc vào tệp nhị phân đang được thực thi ở chế độ chính. Tương tự như vậy, bạn cũng có thể thực thi trong minion, được hiển thị bên dưới.
log_file: /var/log/salt/minion
Bạn cũng có thể sử dụng địa chỉ từ xa. Cú pháp để sử dụng địa chỉ từ xa là - <file | udp | tcp>: // <host | socketpath>: <port-if-required> / <log-facility>.
log_file: udp://loghost:port
Ở đây, cơ sở nhật ký mặc định là LOG_USER.
MỨC ĐĂNG NHẬP
Các mức nhật ký được sắp xếp theo một giá trị được gán bằng số. Thư viện Python đã xác định hầu hết các cấp độ ghi theo mặc định. Ngoài ra, Salt sử dụng một số cấp độ khác. Một số cấp độ được giải thích bên dưới.
log_level: error; level value is 40 - Nó chỉ ra bản ghi báo cáo nhật ký bị lỗi.
log_level: quiet; level value is 1000 - Nó chỉ ra rằng không có gì nên được đăng nhập ở cấp độ này.
log_level: info; level value is 20 - Nó cho biết thông tin nhật ký bình thường.
log_level: warn; level value is 30 - Nó chỉ ra bản ghi báo cáo nhật ký lúc cảnh báo.
log_level: debug; level value is 10 - Thông tin hữu ích để gỡ lỗi cả việc triển khai muối và mã muối.
log_level: trace; level value is 5 - Thông tin gỡ lỗi mã chi tiết hơn.
LOG_LEVEL_LOGFILE
Nó xác định mức độ tin nhắn để gửi đến tệp nhật ký.
log_level_logfile: info
LOG_DATEFMT
Nó xác định định dạng ngày nhật ký. Theo mặc định, nó được biểu thị là% Y-% m-% d% H:% M:% S.
log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'
LOG_FMT_CONSOLE
Nó xác định định dạng của bảng điều khiển ghi lại các thông báo. Muối sử dụng một tùy chỉnhLogRecordcác thuộc tính để tô màu đầu ra nhật ký bảng điều khiển. Nó tuân theo cú pháp sau:
'%(colorlevel)s' # log level name colorized by level
'%(colorname)s' # colorized module name
'%(colorprocess)s' # colorized process number
'%(colormsg)s' # colorized messages name
LOG_FMT_LOGFILE
Nó xác định định dạng của tệp nhật ký ghi lại các thông báo. Cú pháp cơ bản như sau:
%(asctime)s,%(msecs)03d [%(name)-17s][%(levelname)-8s] %(message)s
LOG_GRANULAR_LEVELS
Mức độ này được sử dụng để kiểm soát mức độ ghi nhật ký cụ thể hơn.
log_granular_levels:
'salt': 'info'
'salt.modules': ‘trace'
Tại đây, Thư viện muối chính ở cấp độ 'thông tin' đặt salt.modules để đăng nhập ở cấp độ theo dõi.
Trình xử lý ghi nhật ký bên ngoài
Salt sử dụng trình xử lý nhật ký bên ngoài LogStash và Sentry để ghi nhật ký. Hãy để chúng tôi hiểu chi tiết về nó trong chương này.
Trình xử lý LOGSTASH
LogStash là một mã nguồn mở; đường ống xử lý dữ liệu an toàn phía máy chủ. Chúng ta hãy xem xét một trình xử lý ghi nhật ký UDP đơn giản trong Salt sử dụng LogStash.
Chỉ định các thay đổi sau trong tệp chính Salt -
logstash_udp_handler:
host: 127.0.0.1
port: 9999
version: 1
msg_type: logstash
Sau đó, thêm các thay đổi trong tệp cấu hình Logstash -
input {
udp {
port ⇒ 9999
codec ⇒ json
}
}
Đây, UDP - là đầu vào cần có định dạng json_event, đó là những gì chúng tôi gửi qua dây.
SENTRY Trình xử lý ghi nhật ký
Sentry là theo dõi lỗi thời gian thực trong quá trình triển khai sản xuất và thông tin để tái tạo và khắc phục sự cố. Cấu hình mặc định trong tệp chính được xác định bên dưới.
sentry_handler:
dsn: https://pub-key:[email protected]/app-id
log_level: debug
Ở đây, cấp độ ghi nhật ký mặc định cho trình xử lý sentry là LỖI, nhưng chúng tôi đã xác định gỡ lỗi log_level dưới khóa cấu hình sentry_handler.