龙空技术网

基于rsyslog系统日志服务采集haproxy的请求日志

编程侠Java 152

前言:

当前咱们对“如何查看oracle的请求访问日志”大体比较关切,兄弟们都需要剖析一些“如何查看oracle的请求访问日志”的相关知识。那么小编在网络上收集了一些关于“如何查看oracle的请求访问日志””的相关文章,希望同学们能喜欢,兄弟们一起来学习一下吧!

最近在排查haproxy日志的过程中发现,与其他容器不同的是,haproxy要记录负载的请求日志并没有那么容易,不像其他容器直接在yml中配置日志文件映射就能记录日志。并且使用docker-compose logs -f 查看的日志并不是请求的日志,而是容器启动日志。

进一步研究发现,走配置文件直接映射日志文件的路子走不通,需要借助rsyslog系统日志服务采集haproxy的请求日志,而haproxy默认是没有开启日志记录的(开启后若请求比较频繁,会产生大量的日志),需要相应的手工配置使其日志功能开启。

一、RSYSLOG系统日志服务

linux上,应用程序和内核都需要记录日志。负责记录应用程序的是syslogd,记录内核的则是klogd。centos 5上使用的是syslog,但由于其功能过于薄弱和单一,在centos 6和7上被rsyslog所取代。

rsyslog是linux系统中用来实现日志功能的服务。默认已经安装,并且自动启用。

作用:主要用来采集日志,不生产日志,转换它们,并将结果输出到不同的目的地。

其特性包括:

(1)支持输出日志到各种数据库,如 MySQL、Oracle、PostgreSQL、MongoDB等;

(2)精细的输出格式控制以及对消息的强大 过滤能力;

(3)高精度时间戳;队列操作(内存,磁盘以及混合模式等); 支持数据的加密和压缩传输等。

(4)高性能,每秒可以向本地目的地发送超过一百万条消息

rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器, rsyslog进程可以从网络中收集其它主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器【因为日志产生的比较多,会专门的分配大磁盘的日志服务器】。rsyslog的另外一个用法,就是可以配置为客户端,用来过滤和发送内部日志消息到本地文件夹(如/var/log)或一台可以路由到的远程rsyslog 服务器上,本文我们就是基于这种用法,发送信息到本地的指定目录文件下(比如我设置的路径 /data/haproxy/logs/haproxy.log)

二、配置日志服务

【创建日志记录文件夹】

mkdir -p /data/haproxy/logs/haproxy.logchmod a+x /data/haproxy/logs

【开启rsyslog记录haproxy日志功能】

修改rsyslog.conf文件,使用 vim /etc/rsyslog.conf 命令进入。

修改之前的文件内容如下:

(1)修改(开启514 UDP监听 ),放开红色字体对应两行的注释:

# Provides UDP syslog reception$ModLoad imudp$UDPServerRun 514

(2)添加下面一行代码(指定日志存放点),位于上面的代码下面一行:

local0.* /data/haproxy/logs/haproxy.log

修改之后的截图如下:

【修改/etc/sysconfig/rsyslog】

修改rsyslog 文件,使用 vim /etc/sysconfig/rsyslog 命令进入。

(1)添加以下内容【红色字体部分】:

# Options for rsyslogd# Syslogd options are deprecated since rsyslog v3.# If you want to use them, switch to compatibility mode 2 by "-c 2"# See rsyslogd(8) for more detailsSYSLOGD_OPTIONS="-r -m 0 -c 2"
三、配置haproxy

【haproxy配置】

我使用的是docker-compose 部署的haproxy,结构如下:

修改config文件夹下的haproxy.cfg配置文件,使用 vim /data/haproxy/config/haproxy.cfg

添加:

log 192.168.10.xx local0 info

注意:配置local0事件,这里不要使用log 127.0.0.1 local0 info,而是使用服务器的内网ip192.168.10.xx。

global        daemon            log 192.168.10.234 local0 infodefaults        log global        mode http        retries 3         option httplog        option dontlognull        timeout connect 5000ms        timeout client 50000ms        timeout server 50000ms######## 监控界面配置 #################listen admin_status        bind *:8888                     # 监控界面访问信息        mode http        stats refresh 5s                #统计页面刷新间隔        stats uri /haproxy              # 监控页面URI        stats realm Global\ statistics  # 统计报告格式        stats auth test:password        # 登录账户信息frontend http_service    bind 0.0.0.0:80    default_backend http_backendsbackend http_backends    balance roundrobin              #轮询算法;check表示健康检查    server server1 192.168.10.234:8080 check 

修改完成之后,使用docker-compose up -d 启动 haproxy。

四、日志验证

(1)重新启动rsyslog

systemctl restart rsyslog

(2)网页中输入经过haproxy的网址进行测试,查看是否生成请求日志,我以我的访问地址为例。

(3)查看日志记录

使用命令 tail -f /data/haproxy/logs/haproxy.log 查看日志。

标签: #如何查看oracle的请求访问日志