一、部署 HaProxy

SRC_DIR=/usr/local/src
COLOR="echo -e \\033[01;31m"
END='\033[0m'
CPUS=`lscpu |awk '/^CPU\(s\)/{print $2}'`LUA_FILE=lua-5.4.3.tar.gz
HAPROXY_FILE=haproxy-2.2.12.tar.gz
HAPROXY_INSTALL_DIR=/apps/haproxySTATS_AUTH_USER=admin
STATS_AUTH_PASSWORD=123456NET_NAME=`ip a |awk -F"[: ]" '/^2/{print $3}'`
IP=`ip addr show ${NET_NAME}| awk -F" +|/" '/global/{print $3}'`os(){if grep -Eqi "CentOS" /etc/issue || grep -Eq "CentOS" /etc/*-release;thenrpm -q redhat-lsb-core &> /dev/null || { ${COLOR}"安装lsb_release工具"${END};yum -y install  redhat-lsb-core &> /dev/null; }fiOS_ID=`lsb_release -is`
}check_file (){cd ${SRC_DIR}${COLOR}'检查HAPROXY相关源码包'${END}if [ ! -e ${LUA_FILE} ];then${COLOR}"缺少${LUA_FILE}文件"${END}exitelif [ ! -e ${HAPROXY_FILE} ];then${COLOR}"缺少${HAPROXY_FILE}文件"${END}exitelse${COLOR}"相关文件已准备好"${END}fi
}install_haproxy(){${COLOR}"开始安装HAPROXY"${END}${COLOR}"开始安装HAPROXY依赖包"${END}if [ ${OS_ID} == "CentOS" ] &> /dev/null;thenyum -y install gcc make gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel libtermcap-devel ncurses-devel libevent-devel readline-devel &> /dev/nullelseapt update &> /dev/null;apt -y install gcc make openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev  libreadline-dev libsystemd-dev &> /dev/nullfitar xf ${LUA_FILE}LUA_DIR=`echo ${LUA_FILE} | sed -nr 's/^(.*[0-9]).*/\1/p'`cd ${LUA_DIR}make all testcd ${SRC_DIR}tar xf ${HAPROXY_FILE}HAPROXY_DIR=`echo ${HAPROXY_FILE} | sed -nr 's/^(.*[0-9]).*/\1/p'`cd ${HAPROXY_DIR}make -j ${CPUS} ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 USE_LUA=1 LUA_INC=/usr/local/src/${LUA_DIR}/src/ LUA_LIB=/usr/local/src/${LUA_DIR}/src/ PREFIX=${HAPROXY_INSTALL_DIR}make install PREFIX=${HAPROXY_INSTALL_DIR}[ $? -eq 0 ] && $COLOR"HAPROXY编译安装成功"$END ||  { $COLOR"HAPROXY编译安装失败,退出!"$END;exit; }cat > /lib/systemd/system/haproxy.service <<-EOF
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target[Service]
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID[Install]
WantedBy=multi-user.target
EOF[ -L /usr/sbin/haproxy ] || ln -s ../../apps/haproxy/sbin/haproxy /usr/sbin/ &> /dev/null[ -d /etc/haproxy ] || mkdir /etc/haproxy &> /dev/null  [ -d /var/lib/haproxy/ ] || mkdir -p /var/lib/haproxy/ &> /dev/nullcat > /etc/haproxy/haproxy.cfg <<-EOF
global
maxconn 100000
chroot /apps/haproxy
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
uid 99
gid 99
daemon
#nbproc 4
#cpu-map 1 0
#cpu-map 2 1
#cpu-map 3 2
#cpu-map 4 3
pidfile /var/lib/haproxy/haproxy.pid
log 127.0.0.1 local3 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 ${STATS_AUTH_USER}:${STATS_AUTH_PASSWORD}listen web_portbind ${IP}:80mode httplog global
server web1 127.0.0.1:8080 check inter 3000 fall 2 rise 5
EOFecho "PATH=${HAPROXY_INSTALL_DIR}/sbin:${PATH}" > /etc/profile.d/haproxy.shsystemctl daemon-reloadsystemctl enable --now haproxy &> /dev/nullsystemctl is-active haproxy &> /dev/null ||  { ${COLOR}"HAPROXY 启动失败,退出!"${END} ; exit; }${COLOR}"HAPROXY安装完成"${END}
}main(){oscheck_fileinstall_haproxy
}main

二、编辑 HaProxy 配置文件,并启动服务

[root@centos7 src]# vim /etc/haproxy/haproxy.cfg
listen kibanabind 10.0.0.20:5601server 10.0.0.31 10.0.0.31:5601 check inter 3s fall 3 rise 5[root@centos7 src]# systemctl restart haproxy.service

三、编辑 rsyslog 配置文件,并启动服务

[root@centos7 src]# vim /etc/rsyslog.conf
$ModLoad imudp    # 取消注释
$UDPServerRun 514    # 取消注释
local2.* /var/log/haproxy.log[root@centos7 src]# systemctl restart rsyslog.service

四、通过负载均衡去访问 kibana ,获取 HaProxy 日志

http://10.0.0.20:5601

[root@centos7 ~]# cat /var/log/haproxy.log
Aug  7 23:16:36 localhost haproxy[1741]: 10.0.0.1:64283 [07/Aug/2021:23:16:36.292] kibana kibana/10.0.0.31 0/0/0/21/22 200 24165 - - ---- 2/2/0/1/0 0/0 "GET /app/home HTTP/1.1"
Aug  7 23:16:36 localhost haproxy[1741]: 10.0.0.1:64283 [07/Aug/2021:23:16:36.314] kibana kibana/10.0.0.31 10/0/0/12/22 304 353 - - ---- 2/2/0/1/0 0/0 "GET /bootstrap.js HTTP/1.1"
Aug  7 23:16:36 localhost haproxy[1741]: 10.0.0.1:64283 [07/Aug/2021:23:16:36.337] kibana kibana/10.0.0.31 24/0/0/3/27 200 1418 - - ---- 2/2/0/1/0 0/0 "GET /ui/favicons/favicon.svg HTTP/1.1"
Aug  7 23:16:36 localhost haproxy[1741]: 10.0.0.1:64283 [07/Aug/2021:23:16:36.364] kibana kibana/10.0.0.31 17/0/0/2/19 200 5640 - - ---- 2/2/0/1/0 0/0 "GET /ui/favicons/favicon.png HTTP/1.1"
Aug  7 23:16:36 localhost haproxy[1741]: 10.0.0.1:64283 [07/Aug/2021:23:16:36.384] kibana kibana/10.0.0.31 328/0/0/3/331 304 340 - - ---- 3/3/2/3/0 0/0 "GET /translations/zh-cn.json HTTP/1.1"
Aug  7 23:16:36 localhost haproxy[1741]: 10.0.0.1:63647 [07/Aug/2021:23:16:36.292] kibana kibana/10.0.0.31 420/0/0/11/432 200 10310 - - ---- 3/3/1/1/0 0/0 "GET /node_modules/@kbn/ui-framework/dist/kui_light.css HTTP/1.1"

五、编辑 Logstash 配置文件

root@web1:~# vim /etc/logstash/conf.d/rsyslog-to-es.conf
input {syslog {host => "10.0.0.37"port => "1280"}
}output {stdout {}
}

六、加载指定配置文件,并验证端口是否起来

# 停止服务
root@web1:~# systemctl stop logstash# 加载指定配置文件
root@web1:~# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/rsyslog-to-es.conf# 验证1280端口是否起来

七、修改 rsyslog 配置文件,向远端传输日志

[root@centos7 ~]# vim /etc/rsyslog.conf
local2.* @@10.0.0.37:1280
[root@centos7 ~]# systemctl restart rsyslog.service

八、修改配置文件将输出改为 elasticsearch

root@web1:~# vim /etc/logstash/conf.d/rsyslog-to-es.conf
input {syslog {host => "10.0.0.37"port => "1280"type => "rsyslog"}
}output {if [type] == "rsyslog" {elasticsearch {hosts => ["10.0.0.31:9200"]index => "logstash-lck-rsyslog-haproxy-%{+YYYY.MM.dd}"}}
}

九、检测配置文件语法是否正确

root@web1:~# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/rsyslog-to-es.conf -t

十、启动服务并验证

# 启动服务
systemctl restart logstash.service

十一、创建索引方便查询日志



ELK 通过 Rsyslog 收集 HaProxy 日志相关推荐

  1. ELK之收集haproxy日志

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

  2. rsyslog收集nginx日志配置

    rsyslog日志收集配置 rsyslog服务器收集各服务器的日志,并汇总,再由logstash处理 请查看上一篇文章 http://bbotte.blog.51cto.com/6205307/161 ...

  3. ELK下logstash收集java日志,多行合并成一行

    介绍 使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input ...

  4. 利用ELK技术栈收集nginx日志

    之前的一篇文章已经介绍如何使用nginx写入post的数据入日志,详细见链接: nginx的post命令记录body到日志中 接下来使用filebeat.logstash.elasticsearch把 ...

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

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

  6. ELK收集java日志

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

  7. 日志服务器搭建及配置_[ELK入门到实践笔记] 一、通过rsyslog搭建集中日志服务器...

    ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,这是我在ELK学习和实践过程写下的笔记,整理成了一个ELK入门到实践的系列文章,分享出来与大家共勉.本文为该系列文章的第一篇,通 ...

  8. 巧用rsyslog收集多套日志并做单套日志的过滤分离

    日志是supervisor打出来的python日志,且把不同格式的日志打印到了同一批文件里,需求是把带post和ERROR关键字的日志分离,并进入两个不同kafka的topic队列,目前的情况是rsy ...

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

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

  10. ELK 经典用法—企业自定义日志收集切割和mysql模块

    ELK 经典用法-企业自定义日志收集切割和mysql模块 一.收集切割公司自定义的日志 很多公司的日志并不是和服务默认的日志格式一致,因此,就需要我们来进行切割了. 1.需切割的日志示例 2018-0 ...

最新文章

  1. 也谈压缩感知和贝叶斯大脑
  2. Spring RestTemplate中文乱码解决方案
  3. springMVC 之 annotation
  4. JAVA作业 02 JAVA语法基础
  5. 【Python自动化运维之路Day2】
  6. 反转!物联网火爆,开发者却很难入门?
  7. 第七章:【UCHome二次开发】模板语法说明
  8. linux怎么将终端一分为二,Linux下的终端和作业控制
  9. springboot-20-全局异常处理
  10. CocosBuilder 教程
  11. 变压器次级输出为0v的原因_加速tensorflow中的Google临时融合变压器2 0
  12. 现代控制工程(二)状态方程的解
  13. PAT 甲级 1118 Birds in Forest (25 分)
  14. 好看的皮囊 · 也是大自然的杰作 · 全球高质量 · 美图 · 集中营 · 美女 · 2017-08-21期...
  15. C语言程序设计笔记(浙大翁恺版) 第八周:数组
  16. 1400——489C,520B,279B,479C
  17. Python 第三方模块 机器学习 Scikit-Learn模块 有监督学习1 交叉分解,高斯过程,保序回归
  18. 已知三点求圆心和半径
  19. C语言(百钱买百鸡问题)
  20. 大一新生的C语言选择题程序的尝试与苦难个人分析

热门文章

  1. gif动图怎么制作更简单,手把手教你在线gif制作
  2. 小马激活工具拒绝访问cannot open file c:\oemsf解决方法
  3. win7命令行打开计算机,Win7怎么打开cmd命令提示符_Win7打开命令提示符教程-192路由网...
  4. CDR真实图片转水墨画效果制作教程
  5. 80后三口之家如何理财
  6. shel脚本基础系列(二)语法+运算+判断
  7. 教你使用Box2d制作用蜡笔手绘物体的效果(一)
  8. 51单片机二维码识别
  9. c# rar解压大小_C#解压、压缩RAR文件
  10. RAR压缩包密码如何解密