ELK 通过 Rsyslog 收集 HaProxy 日志
一、部署 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 日志相关推荐
- ELK之收集haproxy日志
由于HAProxy的运行信息不写入日志文件,但它依赖于标准的系统日志协议将日志发送到远程服务器(通常位于同一系统上),所以需要借助rsyslog来收集haproxy的日志.haproxy代理nginx ...
- rsyslog收集nginx日志配置
rsyslog日志收集配置 rsyslog服务器收集各服务器的日志,并汇总,再由logstash处理 请查看上一篇文章 http://bbotte.blog.51cto.com/6205307/161 ...
- ELK下logstash收集java日志,多行合并成一行
介绍 使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input ...
- 利用ELK技术栈收集nginx日志
之前的一篇文章已经介绍如何使用nginx写入post的数据入日志,详细见链接: nginx的post命令记录body到日志中 接下来使用filebeat.logstash.elasticsearch把 ...
- ELK日志系统之使用Rsyslog快速方便的收集Nginx日志
常规的日志收集方案中Client端都需要额外安装一个Agent来收集日志,例如logstash.filebeat等,额外的程序也就意味着环境的复杂,资源的占用,有没有一种方式是不需要额外安装程序就能实 ...
- ELK收集java日志
转载来源:ELK收集java日志 https://www.jianshu.com/p/957e8ead3f8d 由于elasticsearch本身产生的日志就是java日志,所以我们可以通过ELK平台 ...
- 日志服务器搭建及配置_[ELK入门到实践笔记] 一、通过rsyslog搭建集中日志服务器...
ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,这是我在ELK学习和实践过程写下的笔记,整理成了一个ELK入门到实践的系列文章,分享出来与大家共勉.本文为该系列文章的第一篇,通 ...
- 巧用rsyslog收集多套日志并做单套日志的过滤分离
日志是supervisor打出来的python日志,且把不同格式的日志打印到了同一批文件里,需求是把带post和ERROR关键字的日志分离,并进入两个不同kafka的topic队列,目前的情况是rsy ...
- centos6.5下安装配置ELK及收集nginx日志
Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开 ...
- ELK 经典用法—企业自定义日志收集切割和mysql模块
ELK 经典用法-企业自定义日志收集切割和mysql模块 一.收集切割公司自定义的日志 很多公司的日志并不是和服务默认的日志格式一致,因此,就需要我们来进行切割了. 1.需切割的日志示例 2018-0 ...
最新文章
- 也谈压缩感知和贝叶斯大脑
- Spring RestTemplate中文乱码解决方案
- springMVC 之 annotation
- JAVA作业 02 JAVA语法基础
- 【Python自动化运维之路Day2】
- 反转!物联网火爆,开发者却很难入门?
- 第七章:【UCHome二次开发】模板语法说明
- linux怎么将终端一分为二,Linux下的终端和作业控制
- springboot-20-全局异常处理
- CocosBuilder 教程
- 变压器次级输出为0v的原因_加速tensorflow中的Google临时融合变压器2 0
- 现代控制工程(二)状态方程的解
- PAT 甲级 1118 Birds in Forest (25 分)
- 好看的皮囊 · 也是大自然的杰作 · 全球高质量 · 美图 · 集中营 · 美女 · 2017-08-21期...
- C语言程序设计笔记(浙大翁恺版) 第八周:数组
- 1400——489C,520B,279B,479C
- Python 第三方模块 机器学习 Scikit-Learn模块 有监督学习1 交叉分解,高斯过程,保序回归
- 已知三点求圆心和半径
- C语言(百钱买百鸡问题)
- 大一新生的C语言选择题程序的尝试与苦难个人分析
热门文章
- gif动图怎么制作更简单,手把手教你在线gif制作
- 小马激活工具拒绝访问cannot open file c:\oemsf解决方法
- win7命令行打开计算机,Win7怎么打开cmd命令提示符_Win7打开命令提示符教程-192路由网...
- CDR真实图片转水墨画效果制作教程
- 80后三口之家如何理财
- shel脚本基础系列(二)语法+运算+判断
- 教你使用Box2d制作用蜡笔手绘物体的效果(一)
- 51单片机二维码识别
- c# rar解压大小_C#解压、压缩RAR文件
- RAR压缩包密码如何解密