SaltStack 日志记录
日志记录用于跟踪正在运行的软件事件。事件由描述性消息描述,该消息可以选择性地包含可变数据。Salt日志记录方法用于解决您可能面临的任何问题。您可以查看特定的日志级别。
配置设置
让我们详细了解日志记录的不同配置设置。
LOG_FILE
Salt 日志记录通过文件传递,其中包含本地路径名或网络位置以供识别。此文件被视为日志文件。
log_file: /var/log/salt/master
这里是在 master 中执行的二进制文件的依赖文件。同样,你也可以在minion中执行,如下所示。
log_file: /var/log/salt/minion
您也可以使用远程地址。使用远程地址的语法是-<file|udp|tcp>:/<host|socketpath>:<port-if-required>/<log-facility>.
log_file: udp://loghost:port
这里,Log-facility 默认为 LOG_USER。
LOG_LEVEL
日志级别按数字分配的值排序。默认情况下,Python 库定义了大部分日志记录级别。除此之外,Salt 使用了更多级别。部分级别解释如下。
log_level: error; level value is 40 -表示出错时的日志语句记录。
log_level: quiet; level value is 1000-表示在此级别不应记录任何内容。
log_level: info; level value is 20-表示正常的日志信息。
log_level: warn; level value is 30-表示警告时的日志语句记录。
log_level: debug; level value is 10-对调试 salt 实现和 salt 代码有用的信息。
log_level: trace; level value is 5-更详细的代码调试信息。
LOG_LEVEL_LOGFILE
它定义了发送到日志文件的消息级别。
LOG_DATEFMT
它定义了日志日期格式。默认情况下,它表示为 %Y-%m-%d %H:%M:%S。
log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'
LOG_FMT_CONSOLE
它定义了记录消息的控制台的格式。 Salt 使用自定义
LogRecord 属性为控制台日志输出着色。它遵循以下语法-
'%(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
它定义了记录消息的日志文件的格式。基本语法如下-
%(asctime)s,%(msecs)03d [%(name)-17s][%(levelname)-8s] %(message)s
LOG_GRANULAR_LEVELS
此级别用于更具体地控制日志记录级别。
log_granular_levels:
'salt': 'info'
'salt.modules': ‘trace'
在这里,'info' 级别的 Main salt 库将
salt.modules 设置为跟踪级别的日志。
外部日志处理程序
Salt 使用 LogStash 和 Sentry 外部日志处理程序进行日志记录。让我们在本章中详细了解它。
LOGSTASH 处理程序
LogStash 是开源的;服务器端安全数据处理管道。让我们考虑在 Salt 中使用 LogStash 的简单 UDP 日志处理程序。
在 Salt master 文件中指定以下更改-
logstash_udp_handler:
host: 127.0.0.1
port: 9999
version: 1
msg_type: logstash
然后在 Logstash 配置文件中添加更改-
input {
udp {
port ⇒ 9999
codec ⇒ json
}
}
这里,
UDP – 是需要具有
json_event 格式的输入,这是我们通过线路发送的内容。
SENTRY 日志处理程序
Sentry 是生产部署中的实时错误跟踪,以及重现和修复崩溃的信息。主文件中的默认配置定义如下。
sentry_handler:
dsn: https://pub-key:secret-key@app.getsentry.com/app-id
log_level: debug
这里,哨兵处理程序的默认日志级别为 ERROR,但我们在 sentry_handler 配置键下定义了调试
log_level。