收集日志之三: 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 创建索引模式: