首页 > 日志服务 > ELK日志服务使用-rsyslog传输日志
2016
02-25

ELK日志服务使用-rsyslog传输日志

在前两篇文章中,对elk的安装,运行,配置做了介绍。ELK中elasticsearch如果用单机,就不用配置什么,如果是集群,则需要3台或5台设置一下,因为说明文档解释的相当详细,这里不做多说明。kibana也没有多少需要设置的。下面我们主要说一下logstash的配置。
我们多数情况是多台web或者service服务器,均生成日志,由elk日志服务器处理,日志收集汇总又有多种方式,下面几种方式在博客里面均有写,大括号{}代表一台服务器,→代表传输方向,如果是“→redis→”代表通过redis通道传输日志:

下面说一下用rsyslog发送接收日志的配置过程,通过rsyslog把日志传输到另一台主机,存储为文件:

centos 6.6默认的rsyslog

发送日志端

在此添加日志的配置文件

接收日志端

上述配置说明
$InputFileTag定义的NAME必须唯一,同一台主机上不同的应用应当使用不同的NAME,否则会导致新定义的TAG不生效;
$InputFileStateFile定义的StateFile必须唯一,它被rsyslog用于记录文件上传进度,否则会导致混乱;
@192.168.71.46:1514用于指定接收日志的服务器,UDP协议,IP,port
有需要的话,$InputFileSeverity info 也添加上
$InputFilePollInterval 5 等待5秒钟发送一次,

上面那个图,接收日志端:/etc/rsyslog.conf 中
*.info;mail.none;authpriv.none;cron.none;server*.none /var/log/messages
之所以最后面加 server*.none,是因为发送日志端定义日志的tag,为 server1_dubbo_log,不加server*.none 就会在 /var/log/message 同时包存一份,占硬盘

配置完成后重启rsyslog服务

测试:

发送日志端

接收日志端

rsyslog同步日志包含一个日志头,对于nginx来说的话无关紧要,elk直接分析这个日志就可以,另一种方法是rsyslog直接发送给另一台主机的某一个端口,发送端rsyslog的配置不变,如上配置,把日志通过tcp 1514端口发送给IP 192.168.71.46。接收端rsyslog不需要设置,因为用不到rsyslog来接收日志了,需要配置的是logstash。

由logstash接收,配置如下:

启动elasticsearch和kibana,查看后台展示:

ELK日志服务使用-rsyslog传输日志 - 第1张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

附nginx的配置,配置文件不用改动,例子:

nginx对应的logstash配置

by:http://bbotte.com/

最后编辑:
作者:bbotte
这个作者貌似有点懒,什么都没有留下。