Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

这次聊一下Graylog如何主动采集Nginx日志,分成两部分:

  • 介绍一下 Graylog Collector Sidecar 是什么
  • 如何配置 Graylog Collector Sidecar 采集nginx日志

一、首先介绍一下Graylog Collector Sidecar

  Graylog Collector Sidecar 是一个轻量级的日志采集器,通过访问graylog进行集中式管理,支持linux和windows系统。

  Sidecar 守护进程会定期访问graylog的REST API接口获取Sidecar配置文件中定义的标签(tag),Sidecar在首次运行时会从graylog服务器拉取配置文件中指定标签(tag)的配置信息同步到本地。

  目前Sidecar支持NXLog,Filebeat和Winlogbeat。他们都通过的graylog中的web界面进行统一配置,支持Beats、CEF、Gelf、Json API、NetFlow等输出类型。

  Graylog最厉害的在于可以在配置文件中指定Sidecar把日志发送到哪个graylog群集,并对graylog群集中的多个input进行负载均衡,这样在遇到日志量非常庞大的时候,graylog也能应付自如。

Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

二、配置 Graylog Collector Sidecar 采集nginx日志

1、graylog服务器端配置:

(1)导航栏 System/Collectors -> Collectors -> Manage Configurations -> Create configuration ,创建我们第一个名为linux的配置文件

Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

(2)在输入栏写入配置文件的名字 linux ,表示这个是用来收集linux主机日志的配置文件,点击 save 保存

Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

(3)创建 Beats Output ,我们在Configure Beats Outputs 中点击 Create Output ,Output 主要定义的是日志的类型以及它要流入的目标服务器(graylog),这就好比你寄出一个快递要写包裹接收的地址

Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

(4)Beats output 中需要填写的内容是output的名称(Name):ForLinux、类型(Type)我们选择FilebeatHosts里面填入的是graylog日志服务器的地址和端口(假设我们是三台graylog的集群192.168.252.10-12,5044是beats类型默认的端口),然后把Load balancing(负载均衡)选上,这样日志收集后就会轮询的向这三台主机发送日志了,最后点击 save 保存

Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

(5)Beats Output 创建完毕之后,我们还要创建一个Input,点击 Configure Beats Inputs 下的 Create Input 进行创建。input相当于是属于ForLinux 配置下的一个tag,它用来定义来源日志的信息。还用发快递举例,这个input相当于填写发件人的地址信息,告知对方是谁发出的并寄给 ForLinuxForLinux 配置里面就是写的接收人的地址信息,你可以定义多个Input来区分不同的发件人,也就是来源日志的类型。

Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

(6)Beats Input中要填写的是Name(谁发的)、Forward to(发给谁)、Type(linux or windows)、Path to Logfile(相当于发件人的详细地址)、Type of input file(ES分析日志中的type字段,便于区分日志类型),最后点击save保存

Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

(7)保存好Beats Input之后不要忘记把创建好的tag进行Update tags,否则客户端将找不到这个tag。以上graylog服务器端的配置就都完成了。

Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

(8)graylog创建日志接收的Input 5044端口,导航栏System/Inputs -> Inputs ,在复选框里选择Beats,点击Launch new input

Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

(9)如果你是garylog集群,选择Global,也就是在每个节点都启动5044端口,Title起个名字叫Beats input,端口保持默tcp 5044,最后点击save保存

Graylog2通过Graylog Collector Sidecar采集Nginx日志 主动方式

(10)我们开始进行客户端的安装,我们以Ubuntu16.04为例,假设graylog服务器ip为192.168.252.10,nginx服务器主机名为nginx1:

1、在nginx1服务器上下载并安装collector-sidecar

wget https://github.com/Graylog2/collector-sidecar/releases/download/0.1.8/collector-sidecar_0.1.8-1_amd64.deb
sudo /usr/bin/dpkg -i collector-sidecar_0.1.8-1_amd64.deb
sudo /usr/bin/graylog-collector-sidecar -service install
sudo systemctl enable collector-sidecar.service

2、编辑collector-sidecar配置文件:

vi /etc/graylog/collector-sidecar/collector_sidecar.yml
server_url: http://192.168.252.10:9000/api/
node_id: nginx1
update_interval: 10
tls_skip_verify: false
send_status: true
list_log_files:
collector_id: file:/etc/graylog/collector-sidecar/collector-id
cache_path: /var/cache/graylog/collector-sidecar
log_path: /var/log/graylog/collector-sidecar
log_rotation_time: 86400
log_max_age: 604800
tags:
    - nginx_beats_input
backends:
    - name: nxlog
      enabled: false
      binary_path: /usr/bin/nxlog
      configuration_path: /etc/graylog/collector-sidecar/generated/nxlog.conf
    - name: filebeat
      enabled: true
      binary_path: /usr/bin/filebeat
      configuration_path: /etc/graylog/collector-sidecar/generated/filebeat.yml"
service collector-sidecar restart

 3、查看collector-sidecar的日志

tail -f /var/log/graylog/collector-sidecar/collector_sidecar.log

 

上一篇:C# .NET UDP 形式调用 graylog,gelf


下一篇:INFORMS 及 EJOR 系列主编汇总