使用logstash配置rsyslog收集haproxy日志

一,使用logstash配置rsyslog收集haproxy日志

1.rsyslog介绍

在centos 6及之前的版本叫做syslog,centos 7开始叫做rsyslog,根据官方的介绍,rsyslog(2013年版本)可以达到每秒转发百万条日志的级别,rsyslog是日志收集处理工具

它提供了高性能,出色的安全性和模块化设计。尽管rsyslog最初是常规的syslogd,但已发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输入,并将其转换,然后输出到不同的目的地。

当应用有限的处理时,RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。即使在远程目的地和更精细的处理下,性能通常也被认为是“惊人的”。

2.安装配置rsyslog
#安装rsyslog
[root@lb01 ~]# yum install -y rsyslog

#编辑rsyslog配置文件
[root@lb01 ~]# vim /etc/rsyslog.conf

#开启支持udp协议
$ModLoad imudp
$UDPServerRun 514

#开启支持tcp协议
$ModLoad imtcp
$InputTCPServerRun 514

#最后面一行添加,local6对应haproxy配置文件定义的local级别,端口为Logstash的端口
local6.*     @@10.0.0.53:2222
3.安装并配置haproxy
[root@lb01]# vim /etc/haproxy/haproxy.cfg 
#全局配置
global

#最大连接数
maxconn 100000

#库文件权限目录
chroot /var/lib/haproxy

#用户和组
uid 99
gid 99

#后台启动
daemon

#指定启动进程数量
nbproc 1

#pid文件
pidfile /var/run/haproxy.pid

#定义日志,与rsyslog中的配置对应
log 127.0.0.1 local6 info

#默认配置
defaults

#开启长连接
option  http-keep-alive

#获取用户真实IP
option  forwardfor

#最大连接数
maxconn 100000

#运行模式
mode http
timeout connect 300000ms
timeout client  300000ms
timeout server  300000ms

#监听状态
listen status

#运行模式
mode http

#监听地址:监听端口
bind 0.0.0.0:9999

#状态 启动
stats enable

#全局日志
log global

#状态检查页面的地址
stats uri     /haproxy-status

#状态检查页面登录的用户名和密码
stats auth    haadmin:123456

#frontend web_port
frontend web_port
        bind 0.0.0.0:80
        mode http
        option httplog
        log global
        option  forwardfor
###################ACL Setting##########################
        acl tomcat     hdr_dom(host) -i linux.tomcat.com
        acl nginx      hdr_dom(host) -i linux.nginx.com
###################USE ACL##############################
        use_backend     tomcat_host    if  tomcat
        use_backend     nginx_host     if  nginx
########################################################

backend tomcat_host
        mode    http
        option  httplog
        balance source
        server web1  10.0.0.7:8080 check inter 2000 rise 3 fall 2 weight 1

backend nginx_host
        mode    http
        option  httplog
        balance source
        server web1  10.0.0.7:80 check inter 2000 rise 3 fall 2 weight 1
# 注释:
	check:检查健康状态
	inter:检查状态的间隔时间
	rise:检查次数
	fall:检查过程中错误次数
	weight:权重
图解

4.启动服务
[root@lb01 ~]# systemctl start haproxy.service 
[root@lb01 ~]# systemctl start rsyslog

# 检查启动
[root@lb01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN      8060/haproxy               
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8060/haproxy              
tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      8028/rsyslogd               
tcp6       0      0 :::514                  :::*                    LISTEN      8028/rsyslogd 
5.配置hosts测试
10.0.0.4 linux.tomcat.com linux.nginx.com

# 分别访问
	linux.tomcat.com  # 代理页面
	linux.nginx.com   # 代理页面
        http://linux.tomcat.com:9999/haproxy-status  # 代理服务状态页面
6.配置logstash收集haproxy日志

1)配置收集到标准输出

[root@redis01 ~]# vim /etc/logstash/conf.d/haproxy_stdout.conf
input {
  syslog {
    port => "2222"
  }
}

output {
  stdout {}
}

2)配置收集到ES

[root@redis01 ~]# vim /etc/logstash/conf.d/haproxy_es.conf
input {
  syslog {
    port => "2222"
  }
}

output {
  elasticsearch {
    hosts => ["10.0.0.71:9200"]
    index => "haproxy_es_%{+YYYY-MM-dd}"
  }
}
posted @ 2020-12-09 10:08  nick_xm  阅读(238)  评论(0编辑  收藏  举报