HAProxy 日志管理

一、rsyslog服务

在理解haproxy的log设置原理之前,先来了解一下linux中的系统日志服务,系统日志服务和其他服务一样,也有启动,停止,配置等。
配置文件:
/etc/rsyslog.conf
配置目录:
/etc/rsyslog.d/
也是在rsyslog.conf中include下rsyslog.d下的所有文件

启动,重启,停止命令:
systemctl start rsyslog
systemctl stop rsyslog
systemctl restart rsyslog

命令logger的使用:
logger [option] [message]
options:

  • -d ,–udp 使用udp数据报而不是tcp
  • -i,–id 逐行记录每一次logger的进程id
  • -f,–file file_name 记录特定的文件
  • -h,–help
  • -n,–server 写入指定的远程rsyslog服务器
  • -P,–port 使用指定的udp端口,默认514
  • -p,–priority 指定输入消息的优先级,优先级可以是数字或者指定为‘facility.level’的格式。比如:‘-p local3.info’
  • -s,–stderr 输出标准错误到系统日志
  • -t,–tag 指定标记记录
  • -u,–socket 写入指定的socket
    其中-p选项中级别概念,在rsyslog中比较重要,配置文件中可以看到:
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log

配置中前半部分表示设备(多个设备用,分割,也支持×写法,用来匹配多个设备),后半部分表示日志输出路径,这里的设备可以理解为消息的标签或消息的类别

facility-设备

auth:             用户授权
authpriv:         授权和安全
cron:             计划任务
daemon:           系统守护进程
kern:             与内核有关的信息
lpr                与打印服务有关的信息
mail               与电子邮件有关的信息
news               来自新闻服务器的信息
syslog             由syslog生成的信息
user               用户的程序生成的信息,默认
uucp               由uucp生成的信息
local0~7           用来定义本地策略

level-等级

alert          需要立即采取动作
crit           临界状态
debug          调试
emerg          系统不可用
err            错误状态
error          错误状态
info           正常消息
notice         正常但是要注意

Tips 1:等级自下而上,如果设置notice将获得所有级别的消息,如果设置error,将获得err到alert级别的消息。

Tips 2:从这一行设置中 .info;mail.none;authpriv.none;cron.none /var/log/messages得知,所有.info的消息都会写入到/var/log/message。

example:

# vim /etc/rsyslog.conf
local0.*   /var/log/haproxy/haproxy.log
# 表示将local0的所有消息写入到文件 /var/log/haproxy/haproxy.log

# systemctl restart rsyslog   #重启rsyslog服务

测试:

logger -i -t "haproxy" -p local0.notice "test,test,test"

二、haproxy中log相关配置

定义log的使用格式:

log 
[len ] [format ] [max level [min level]] #支持global,defaults,frontend,backend,listen

log支持多条,在配置中可以配置多个log,例如配置access,error2个日志
日志的级别:emerg alert,crit err warning notice info debug
其中 adderss和facility是必选的。
address:
支持ipv4,socket,不一定是本地ip
facility:
同上
len:
日志的最大长度,如果实际日志消息大于这个值,将被截取,默认1024,该值区间:80-65535
format:
日志格式规范,可选择rfc3164,rfc5424,默认rfc3164
max,min:
设置最小级别的日志,最大级别的日志

example:

log 192.168.80.110 local0
#最简单的配置,此时len默认1024,format默认rfc3164,记录所有的日志级别。

log 192.168.80.110:514 local0 warning
#将消息发送给514端口(UDP)。记录warning级别以上的日志

log 192.168.80.110 local0 warning err
#记录warning到err级别间的日志

log 192.168.80.110 local0 err err
#只记录err级别的日志

log 192.168.80.110:514 len 80 format rfc5424 local0 err err
#截取16个字符长度,使用rfc5424消息规范,在设备local0只记录err级别的信息

log 192.168.80.110 local0
#记录access的日志

log 192.168.80.121 local1 emerg notice
#记录error的日志,包括notice和warning

log相关配置:

log-send-hostname 仅支持global

log-send-hostname www.taisha.org
#Feb 15 09:54:41 *www.taisha.org* haproxy[5067]: Proxy webserver started.

log-tag 支持global、defaults、frontend 、backend、listen

log-tag taisha
#Feb 15 09:54:41 www.taisha.org *taisha*[5067]: Proxy admin_stats started.

log global 支持defaults、frontend、backend 、listen
当前模块使用global中设置的日志格式。

no log 支持defaults、frontend、backend 、listen
禁止写日志

你可能感兴趣的:(linux运维)