收集日志之三: rsyslog 收集日志

收集日志的几种方式:
    1.logstash    (消耗内存多。功能性好)
    2.logstash的TCP/UDP 监听端口,在”其他“服务器安装 nc 命令
    3.通过 rsyslog 收集日志,要logstash接收再转发到ES :
    4.filebeat 收集日志:写入es redis logstash  kafka (消耗内存少,不使用java,不支持多输出 ,不支持IF的type判断,filebeat服务器的配置文件中先定义fields:)

实验说明
192.168.80.100 localhost7A.localdomain    node1   head  cerebro  kibana
192.168.80.110 localhost7B.localdomain    node2  
192.168.80.120 localhost7C.localdomain    node3  
192.168.80.130 localhost7D.localdomain    logstash   
192.168.80.140 localhost7D.localdomain    rsyslog  haproxy

rsyslog 提供高性能,高安全性功能和模块化设计。 虽然它最初是作为常规系统日志开发的,但是 rsyslog 已经发展成为一种瑞士军刀,
可以接受来自各种来源的输入,转换它们,并将结果输出到不同的目的地。当应用有限的处理时,RSYSLOG 每秒可以向本地目的地传送超过一百万条消息。
即使有远程目的地和更复杂的处理,性能通常被认为是“惊人的”。在 centos 6 及之前的版本叫做 syslog,centos 7 开始叫做 rsyslog。

通过 rsyslog 收集日志

安装haproxy 
yum install haproxy  nginx


配置haproxy
[root@localhost7F ~]# cat /etc/haproxy/haproxy.cfg
global
    log         127.0.0.1 local2 info
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        root
    group       root
    daemon
    stats socket /var/lib/haproxy/stats
##################
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

################
listen stats
mode http
bind 0.0.0.0:9999
stats enable
log global
stats uri /haproxy-status
stats auth admin:123456

listen web_port
bind 0.0.0.0:80 
mode http
log global
option httplog
server web1 127.0.0.1:81 check inter 3000 fall 2 rise 5


设置rsyslog 
[root@localhost7F ~]# cat /etc/rsyslog.conf

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

local2.*          /var/log/haproxy.log
local2.*          @@192.168.80.130:7777    #指向有logstash的服务器

[root@localhost7F ~]# systemctl restart rsyslog.service



设置logstash
[root@localhost7E ~]# cat /etc/logstash/conf.d/logha.conf
input {
  syslog {
    host => "0.0.0.0" $监听地址
    port => "7777"   $监听端口
    type => "syslog"
    #codec => "json"
  }
}
#output{
    #stdout{
    #codec => rubydebug
#}}

output {
  if [type] == "syslog" {
  elasticsearch {
    hosts => ["192.168.80.100:9200"]
    index => "rsyslog_haproxy_140_%{+YYYY.MM}"
   }
  }
}

登录产生日志

 

 

 

在http://192.168.80.100:5601 中management--》kibana --》  index-mode  创建索引模式:

 

posted @ 2022-12-27 10:49  yuanbangchen  阅读(579)  评论(0编辑  收藏  举报