由于HAProxy的运行信息不写入日志文件,但它依赖于标准的系统日志协议将日志发送到远程服务器(通常位于同一系统上),所以需要借助rsyslog来收集haproxy的日志.haproxy代理nginx的访问,使用logstash收集nginx的访问信息.

1.安装配置haproxy

yum -y install gcc pcre pcre-devel openssl  openssl-devel
cd /usr/local/src/
wget https://www.haproxy.org/download/1.7/src/haproxy-1.7.11.tar.gz
tar xf haproxy-1.7.11.tar.gz
cd haproxy-1.7.11/
make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1  PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
/usr/local/haproxy/sbin/haproxy -vcat /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target[Service]
EnvironmentFile=/etc/sysconfig/haproxy
ExecStart=/usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid $OPTIONS
ExecReload=/bin/kill -USR2 $MAINPID[Install]
WantedBy=multi-user.targetcat /etc/sysconfig/haproxy
# Add extra options to the haproxy daemon here. This can be useful for
# specifying multiple configuration files with multiple -f options.
# See haproxy(1) for a complete list of options.
OPTIONS=""cp /usr/local/src/haproxy-1.7.11/haproxy /usr/sbin/
cp /usr/local/src/haproxy-1.7.11/haproxy-systemd-wrapper /usr/sbin/

2.准备haproxy配置文件

mkdir /etc/haproxy
cat /etc/haproxy/haproxy.cfgglobal
maxconn 100000
chroot /usr/local/haproxy
uid 1000
gid 1000
daemon
nbproc 1
pidfile /usr/local/haproxy/run/haproxy.pid
log 127.0.0.1 local6 infodefaults
option http-keep-alive
option  forwardfor
maxconn 100000
mode http
timeout connect 300000ms
timeout client  300000ms
timeout server  300000mslisten statsmode httpbind 0.0.0.0:9999stats enablelog globalstats uri     /haproxy-statusstats auth    haadmin:123456
#frontend web_port
frontend web_portbind 0.0.0.0:80mode httpoption httploglog globaloption forwardfor
#ACL Setting
acl pc        hdr_dom(host) -i www.elk1.com
acl mobile    hdr_dom(host) -i m.elk1.com
#USE ACL
use_backend   pc_host        if pc
use_backend   mobile_host    if mobilebackend pc_hostmode    httpoption  httplogbalance sourceserver web1  10.0.0.22:88 check inter 2000 rise 3 fall 2 weight 1
backend mobile_hostmode    httpoption  httplogbalance sourceserver web1  10.0.0.22:88 check inter 2000 rise 3 fall 2 weight 1useradd haproxy -M -s /sbin/nologin --uid 1000
id haproxy
uid=1000(haproxy) gid=1000(haproxy) groups=1000(haproxy)
systemctl start haproxy.service
ss -tnl # 查看80端口是否启动
# haproxy不允许ip直接访问80端口,修改windows的hosts,win+r-->drivers快速打开hosts
10.0.0.22 www.elk1.com
10.0.0.22 m.elk1.com

这里让haproxy代理nginx,将nginx的监听端口改为88并启动,使用www.elk.com,无法跳转到我想要的页面,所以改成了www.elk1.com

访问http://www.elk1.com/nginxweb/

haproxy运行截图

3.配置rsyslog记录haproxy日志

vim /etc/rsyslog.conf   # 打开15,16,19,20行注释
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514# 文件末尾添加haproxy中配置的对应日志级别
local6.*     /var/log/haproxy/haproxy.log  # 日志记录文件
local6.*     @@10.0.0.22:5160   # 本地IP和监听端口mkdir /var/log/haproxy
chown -R haproxy.haproxy /var/log/haproxysystemctl restart rsyslog
systemctl restart  haproxycat /etc/logstash/conf.d/haproxy_log.conf
input {syslog{type => "haproxy1022"port => "5160"}
}
output{  stdout{codec => "rubydebug"}
}

port => "5160"监听rsyslog中定义的local6端口,小于1024可能会报错

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/haproxy_log.conf

logstash收集rsyslog传过来的日志

cat haproxy_log.conf
input {syslog{type => "haproxy1022"port => "5160"}
}
output{  if [type] == "haproxy1022" {elasticsearch {hosts => ["10.0.0.22:9200"]index => "logstash-haproxy1022-%{+YYYY.MM.dd}"}}
}

systemctl restart logstash.service

ELK-Logstash收集haproxy日志:http://blog.51cto.com/tryingstuff/2051930

转载于:https://www.cnblogs.com/fawaikuangtu123/p/10356418.html

ELK之收集haproxy日志相关推荐

  1. centos6.5下安装配置ELK及收集nginx日志

    Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开 ...

  2. Loki 收集Nginx日志以 grafana 可视化展示

    背景 通常用ELK来收集Nginx日志的,对于服务器较少的用elk则显得太重了,可以用loki+Promtail+grafana 代替. Loki类似elasticsearch,用于存储:Promta ...

  3. ELK:收集k8s容器日志最佳实践

    简介 关于日志收集这个主题,这已经是第三篇了,为什么一再研究这个课题,因为这个课题实在太重要,而当今优秀的开源解决方案还不是很明朗: 就docker微服务化而言,研发有需求标准输出,也有需求文件输出, ...

  4. ELK日志系统之使用Rsyslog快速方便的收集Nginx日志

    常规的日志收集方案中Client端都需要额外安装一个Agent来收集日志,例如logstash.filebeat等,额外的程序也就意味着环境的复杂,资源的占用,有没有一种方式是不需要额外安装程序就能实 ...

  5. ELK收集tomcat日志

    转载来源 :ELK收集tomcat日志 :https://www.jianshu.com/p/9f4ba87e4e15 1.安装tomcat 注意:需要提前安装好java环境 [root@db01 ~ ...

  6. ELK收集java日志

    转载来源:ELK收集java日志 https://www.jianshu.com/p/957e8ead3f8d 由于elasticsearch本身产生的日志就是java日志,所以我们可以通过ELK平台 ...

  7. ELK收集docker日志

    转载来源 :ELK收集docker日志 : 1.安装docker ##安装依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 ...

  8. CentOS下ELK收集Nginx日志

    1. ELK收集Nginx普通格式的日志 1.1 测试服务器架构 1.2 ab工具使用 yum install httpd-tools -y# -n 总共发送多少条请求,注意,最后"/&qu ...

  9. 项目实战|史上最简单的springboot 整合elk教程,实现日志收集(带视频哦)

    配套视频教程已经上传 整合ELK-实现日志收集(知乎) 整合ELK-实现日志收集(CSDN) 项目源码已上传至 https://gitee.com/yangleliu/learning.git,免费索 ...

最新文章

  1. Linux soft lockup分析
  2. python中if not x: 和 if x is not None: 和 if not x is None的使用和区别
  3. UNITY所谓的异步加载几乎全部是协程,不是线程;MAP3加载时解压非常慢
  4. 迭代器以及迭代器的作用
  5. 378. 有序矩阵中第K小的元素
  6. 0代码隐藏GroupedTableView上边多余的间隔
  7. 摘要抽取算法——最大边界相关算法MMR(Maximal Marginal Relevance)
  8. 《Go程序设计语言》- 第10章:包和go工具
  9. UI设计中设计没亮点怎么办_上
  10. 寻星计划|Apache Doris 社区4月职位广场,IDG资本、Shopee 多个岗位
  11. js 实现删除确认提示框
  12. 反悔贪心 + 优先队列:PIPI的逃跑路线Ⅳ
  13. MAMP配置虚拟主机
  14. Curious Cupid
  15. 命令行下调整linux桌面屏幕的亮度
  16. linux系统中同时开启wifi与热点的办法
  17. C++ 文件查找 _findfirst、_findnext和_fineclose的使用
  18. Adobe Photoshop CS5如何调出标尺和网格
  19. 【总结】对接达梦数据库DM8详细教程
  20. 无线工勘平台(华为、华三、锐捷)

热门文章

  1. .NET Standard,有哪些替代方案?
  2. ILSpy 6.0 Preview 1 发布,.NET 反编译工具
  3. 清华学霸直博简历:CPU、操作系统、编译器全自主写
  4. sklearn保存svm分类模型_机器学习100天-Day1601线性支持向量机分类
  5. linux下oracle10g安装配置说明,Linux下oracle10g安装配置说明(ZT)
  6. 40岁的程序员还能找到工作吗_学会了Vue就能找到前端工作吗
  7. 使用tensorboard可视化tensorflow模型
  8. lisp读点坐标绘多义线_AutoCAD中多义线的坐标标注
  9. 代码批量加引号_如何用Word批量制作员工工作证?1分钟搞定1000份!只需三步
  10. 三维坐标 偏转_三维坐标变换原理-平移, 旋转, 缩放