1.Haproxy配置日志规则

在/etc/haproxy/haproxy.conf的frontend下增加

option httplog
option logasap
log LogServerIP local5capture request header Host len 40
capture request header X-Forwarded-For len 50
#capture request header Accept-Language len 50
capture request header Referer len 200
capture request header User-Agent len 200

2.syslog配置开启远程接收

3.Logstash配置

indexer

input {file {path => "/var/log/haproxy.log"start_position => beginningsincedb_write_interval => 0type => "HAPROXY_LOG"codec => plain {charset => "ISO-8859-1"}}
}output {#stdout { codec => rubydebug}redis {data_type => "list"key => "logstash:Haproxy_log"host => "192.168.1.2"port => 6379}
}

shipping

在logstash配置文件目录下新建patterns目录,并在这个目录下新建一个haproxy的文件

vim /usr/local/logstash2.2.2/conf/patterns/haproxy

HAPROXYTIME (?!<[0-9])%{HOUR:haproxy_hour}:%{MINUTE:haproxy_minute}(?::%{SECOND:haproxy_second})(?![0-9])
HAPROXYDATE %{MONTHDAY:haproxy_monthday}/%{MONTH:haproxy_month}/%{YEAR:haproxy_year}:%{HAPROXYTIME:haproxy_time}.%{INT:haproxy_milliseconds}

vim /usr/local/logstash2.2.2/conf/haproxy.conf

input {redis {data_type => "list"key => "logstash:Haproxy_log"host => "192.168.1.2"port => 6379threads => 5type => "HAPROXY_LOG"}
}filter {grok{patterns_dir => "./patterns"match => ["message" , "%{SYSLOGTIMESTAMP:Syslog_Timestamp} %{IPORHOST:Syslog_Server} %{SYSLOGPROG}: %{IP:Client_IP}:%{INT:Client_Port} \[%{HAPROXYDATE:Accept_Date}\] %{NOTSPACE:Frontend_Name} %{NOTSPACE:Backend_Name}/%{NOTSPACE:Server_Name} %{INT:Time_Request}/%{INT:Time_Queue}/%{INT:Time_Backend_Connect}/%{INT:Time_Backend_Response}/\+%{NOTSPACE:Time_Duration} %{INT:Http_Status_Code} \+%{NOTSPACE:Bytes_Read} %{DATA:Captured_Request_Cookie} %{DATA:Captured_Response_Cookie} %{NOTSPACE:Termination_State} %{INT:Actconn}/%{INT:Feconn}/%{INT:Beconn}/%{INT:Srvconn}/%{NOTSPACE:Retries} %{INT:Srv_Queue}/%{INT:Backend_Queue} (\{%{IPORHOST:Site}\|?((%{IP:X_Forward_IP}|)(, |)(%{IP:X_Forward_IP2}|)(, |)(%{IP:X_Forward_IP3|)(%{DATA:X_Forward_Other}|))?\|?(%{URI:Http_Referer})?\|%{GREEDYDATA:User_Agent}\})?( )( )?\"(<BADREQ>|(%{WORD:Http_Method} (%{URIPROTO:Http_Proto}://)?(?:%{USER:Http_User}(?::[^@]*)?@)?(?:%{URIHOST:Http_Host})?(?:%{URIPATHPARAM:Http_Request})?( HTTP/%{NUMBER:Http_Version})?))?\""]}useragent {source => "User_Agent"target => "ua"}if [X_Forward_IP] =~ "." {geoip {source => ["X_Forward_IP"]database => "/usr/local/logstash2.2.2/bin/GeoLiteCity.dat"}} else {geoip {source => ["Client_IP"]database => "/usr/local/logstash2.2.2/bin/GeoLiteCity.dat"}}date{match => ["Accept_Date", "dd/MMM/yyyy:HH:mm:ss.SSS" ]}mutate{remove_field => ["Syslog_Timestamp"]remove_field => ["Accept_Date"]remove_field => [ "Host" ]remove_field => [ "Syslog_Server" ]remove_field => [ "Path" ]remove_field => [ "pid" ]remove_field => [ "Client_Port" ]remove_field => [ "program" ]remove_field => [ "Haproxy_Monthday" ]remove_field => [ "Haproxy_Month" ]remove_field => [ "Haproxy_Year" ]remove_field => [ "Haproxy_Hour" ]remove_field => [ "Haproxy_Minute" ]remove_field => [ "Haproxy_Second" ]remove_field => [ "Haproxy_Milliseconds" ]remove_field => [ "Frontend_Name" ]remove_field => [ "Captured_Response_Cookie" ]remove_field => [ "Captured_Request_Cookie" ]convert => [ "Http_Status_Code","integer" ]convert => [ "Bytes_Read","integer" ]convert => [ "Time_Duration","integer" ]convert => [ "Time_Backend_Response","integer" ]convert => [ "Actconn","integer" ]convert => [ "Feconn","integer" ]convert => [ "Beconn","integer" ]convert => [ "Srvconn","integer" ]convert => [ "Retries","integer" ]convert => [ "Srv_Queue","integer" ]convert => [ "Backend_Queue","integer" ]convert => [ "Time_Request","integer" ]convert => [ "Time_Queue","integer" ]convert => [ "Time_Backend_Connect","integer" ]}
}output {#stdout { codec => rubydebug }elasticsearch {hosts => "192.168.2.240:9200"index => "logstash-haproxy-%{+YYYY.MM.dd}"}
}

转载于:https://blog.51cto.com/fengwan/1755489

ELKStack实时分析Haproxy访问日志配置相关推荐

  1. Nginx 访问日志配置

    目录 一.Nginx 访问日志介绍 二.语法及默认值 三.配置实战 1.修改配置文件 2.日志变量说明 3.真实日志分析 四.参考资料 正文 回到顶部 一.Nginx 访问日志介绍 Nginx 软件会 ...

  2. Apache(httpd)配置--用户认证,域名跳转和访问日志配置

    一.用户认证 用户认证功能就是在用户访问网站的时候,需要输入用户名密码才能进行访问.一些比较好总要的站点和网站后台都会加上用户认证,以保证安全. 实例:下面对zlinux.com站点来做一个全站的用户 ...

  3. tomcat 系统访问日志配置

    http://www.itzhuyi.com/Item/Show.asp?m=1&d=53460 在server.xml里的<host>标签下加上 <Valve classN ...

  4. HAProxy的日志配置以及ACL规则实现负载均衡

    HAProxy配置日志策略 默认情况下,HAProxy是没有配置日志的 在centos6.3下默认管理日志的是rsyslog,可以实现UDP日志的接收,将日志写入文件,写入数据库 先检测rsyslog ...

  5. tomcat 服务器访问日志配置方法

    最近需要配置tomcat访问日志,通过造访他人的博客,再根据apache官方的一些文章,才逐渐清晰了许多 配置方法很简单: 在server.xml里的<host>标签下加上 <Val ...

  6. nginx php访问日志配置,nginx php-fpm 输出php错误日志的配置方法

    由于nginx仅是一个web 服务器,因此 nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进 ...

  7. 宝塔自定义nginx访问日志配置

    nginx日志自定义配置 问题 有时nginx默认的日志满足不了需求,比如网站绑定了多个域名,想知道用于访问的是具体域名,这时候就需要自定义nginx日志了. nginx 中access log 记录 ...

  8. 通过实时日志分析_进行访问日志的快速统计

    原文链接 简介 很多个人站长在搭建网站时使用nginx作为服务器,为了了解网站的访问情况,一般有两种手段: 使用CNZZ之类的方式,在前端页面插入js,用户访问的时候触发js,记录访问请求. 利用流计 ...

  9. apache的“按周配置访问日志轮询”,需要安装cronolg软件

    在学习第9课课前×××时,3月18日遇到过的1个问题有必要记录一下. 在这部分的答案讲解视频里,最后1题的"上机考试"题,第2题要求:apache的虚拟主机"按周配置访问 ...

最新文章

  1. [LUOGU] P2330 [SCOI2005]繁忙的都市
  2. Python中单线程、多线程与多进程的效率对比实验
  3. 龙剑服务器为什么总是维修,《龙剑》2014年3月13日更新维护公告
  4. maven nexus 私服的搭建学习
  5. 【1】MySQL的四种事务隔离级别
  6. python读取csv文件_python配置文件的读取
  7. PHP Web Shell in browser
  8. Python单元测试框架——unittest
  9. 两行代码开启 Ubuntu ftp服务
  10. 飞鱼CRM如何同步数据到第三方系统
  11. 【动画演示软件】Focusky教程 | 如何隐藏某帧的内容,使其在演示时才出现?
  12. 不离不弃共赴鸿蒙是什么歌,很早听过一首粤语歌,歌词好像是往往世界这么大 又可以遇到你 蛮经典的一首歌 求解答...
  13. 解析智能推荐系统开发中十大关键要素
  14. 局域网https安全证书解决方案mkcert
  15. Android 一体机研发之修改系统设置————声音
  16. 【数据分析】产品日活DAU下降,怎么分析
  17. Mysql数据库快速插入亿级数据
  18. ffmpeg生成dash点播
  19. Connection to node -1 (/ip:9092) could not be established. Broker may not be available.
  20. 5个非常实用的小程序UI设计模板分享

热门文章

  1. 经典:linux shell 正则表达式(BREs,EREs,PREs)差异比较
  2. 欧盟对埃及纺织服装业免除关税,蕴藏巨大商机,每年700亿美元进口市场等你开拓!...
  3. Linux之CentOS7安装(VMware虚拟机安装及系统安装图文教程)
  4. 写今目标自动签退的记录
  5. 数据结构——左高树(C语言)
  6. 解析展望激光雷达——自动驾驶
  7. “假作真时真亦假”:分类器设计中几个常见的评价指标
  8. Python 完美立方数
  9. 把英文单词转换成ASCII画
  10. 有点厉害!用12万行代码堆出来个蔡徐坤,关键是能跑能跳!