zoukankan      html  css  js  c++  java
  • Haproxy日志配置

    haproxy在默认情况不会记录日志,除了在haproxy.conf中的global段指定日志的输出外,还需要配置系统日志的配置文件。下面以centos6.4为例,haproxy使用系统自带的rpm报1.4版本

    编辑/etc/haproxy/haproxy.conf

    default处添加,如下红色部分,记住不要添加到global处,否则输出日志会有重复的现象,一个请求输出两行相同的日志内容

    defaults
      mode http
      log global
      log 127.0.0.1 local0
      #local0是设备,对应于 /etc/rsyslog.conf中的配置,默认回收info的日志级别

    编辑系统日志配置

    # cat /etc/rsyslog.conf
     默认有下面的设置,会读取 /etc/rsyslog.d/*.conf目录下的配置文件
     $IncludeConfig /etc/rsyslog.d/*.conf

    为haproxy创建一个独立的配置文件

    # vim  /etc/rsyslog.d/haproxy.conf
    $ModLoad imudp
    $UDPServerRun 514
    $UDPServerAddress 0.0.0.0 local0.* /var/log/haproxy.log #如果不加下面的的配置则除了在/var/log/haproxy.log中写入日志外,也会写入message文件 &~

    配置rsyslog的主配置文件,开启远程日志

    # vim /etc/sysconfig/rsyslog
     SYSLOGD_OPTIONS=”-c 2 -r -m 0″
     #-c 2 使用兼容模式,默认是 -c 5
     #-r   开启远程日志
     #-m 0 标记时间戳。单位是分钟,为0时,表示禁用该功能

    重启haproxy和rsyslog服务

    # /etc/init.d/rsyslog restart
    # /etc/init.d/haproxy restart

     ---------------------------------------------------------------------------------------------------------------------------------------------------------------

    日志查询

    按时间范围查询:(注意:时间点要确实存在,才可查找时间范围)

    其实就是打印文件中,正则匹配 Aug 16 16:25:54 和 Aug 16 16:35:54 这两行之间的所有的内容

    # cat /var/log/haproxy.log | sed -n '/Aug 16 16:25:54/,/Aug 16 16:35:54/p'|awk '{print $6}'|cut -d : -f1|sort| uniq -c |sort -k1,1nr|more

    再比如:时间字段内容为 “[15/Apr/2019:11:45:25 +0800]”时,也可以进行查询

    # cat /var/log/nginx/log | sed -n '/15/Apr/2019:11:45:23/,/15/Apr/2019:11:45:29/p'

    汇总求和:

    # cat haproxy.log-20170102 | sed -n '/Jan  1 14:00:00/,/Jan  1 14:05:00/p'|grep 'packet/index'|awk '{print $6}'|cut -d : -f1|sort| uniq -c |sort -k1,1nr|awk '{ SUM += $1 } END { print SUM }'  汇总求和

  • 相关阅读:
    CF 256C Furlo and Rublo and Game【博弈论,SG函数】
    opengl笔记——OpenGL好资料备忘
    SQL SERVER 2012/2014 链接到 SQL SERVER 2000的各种坑
    ORACLE数据库对比表结构
    SSRS Reports 2008性能优化案例二
    Linux LVM学习总结——扩展卷组VG
    MySQL备份还原——AutoMySQLBackup介绍
    mysqldump: Got error: 1142: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' when using LOCK TABLES
    MySQL备份还原——mysqldump工具介绍
    ORACLE查看数据文件包含哪些对象
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/6183465.html
Copyright © 2011-2022 走看看