zoukankan      html  css  js  c++  java
  • 使用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}"
      }
    }
    
  • 相关阅读:
    php 创建文件
    php xml格式对象 返回->对应格式数组
    php 将16进制数串转换为二进制数据的函数
    php 生成随机字符串
    高质量PHP代码的50个实用技巧:非常值得收藏
    php __FILE__,__CLASS__等魔术变量,及实例
    纯js上传文件 很好用
    XMLHttpRequest上传文件实现进度条
    Java BufferedReader、InputStream简介
    Java socket通信
  • 原文地址:https://www.cnblogs.com/xiaolang666/p/14107073.html
Copyright © 2011-2022 走看看