Sending different data types and different ways to graylog server(part. 2)

 

5. 使用Graylog Collector sidecar收集 graylog server上的 log file資料 至 graylog GELF UDP input

Collector sidecar主要架構圖:

Graylog_Collector_Sidecar_—_Graylog_2_0_0_documentation

跟著http://docs.graylog.org/en/2.0/pages/collector_sidecar.html走 (windows 和 linux都有)

1) 安裝nxlog => 記得安裝完nxlog後,要先把nxlog service停下來,再改由graylog去控制nxlog

2) 安裝collector sidecar

3) 設定!!!(最麻煩的部分)

A. collector_sidecar.yml:

server_url: http://140.116.221.54:12900
node_id: graylog-collector-sidecar
collector_id: file:/etc/graylog/collector-sidecar/collector-id
tags:
    - linux
    - graylog
    - server
log_path: /var/log/graylog/collector-sidecar
update_interval: 10
log_rotation_time: 10
log_max_age: 10
backends:
    - name: nxlog
      enabled: true
      binary_path: /usr/bin/nxlog
      configuration_path: /etc/graylog/collector-sidecar/generated/nxlog.conf

– server_url要對到graylog server的port 12900,在System-> node-> REST API可看到該設多少

– node_id可隨意取,之後在graylog web抓到會顯示你這邊設定的node_id

– collector_id這個在安裝的時候,就會順便給,不需要動(除非安裝graylog collector的路徑有變更)

– tags 在graylog web會找你本地端這邊設定的tags 去對應到 web端設定的configurations的tags

– backends這邊我只試過nxlog來蒐集,在蒐集windows的log時,如果yml設定檔內有其他backend,就先都砍掉,只留nxlog

 

B. 上面設定完後,連接到graylog web介面-> System-> Collectors -> Manage configurations-> Create configuration->隨意取

– tag就填入剛剛在yml檔內設定的tags

– Configure Collector Outputs: 這邊所設定的Output,指的是 資料被蒐集的本地端所安裝的collector 要output到哪裡
當然是要output到graylog server的input囉,所以這邊設定完的output,別忘記也要到graylog web-> System-> Inputs去新增一個對應的input

– Configure Collector Inputs:
type有四種:
1| [NXLog] file input: 指的是 想被蒐集資料有安裝collector sidecar本地端的file
2| [NXLog] Windows Event log: Windows下的event log
3| [NXLog] UDP Syslog Listener: 還不是很懂QQ
4| [NXLog] TCP Syslog Listener: 還不是很懂QQ

Input的Forward to就是到上面所設定的Collector Outputs,也就是forward到graylog的input裡,
在collector這邊所設定的都會即時更新到 有安裝collector sidecar那端上,可以把web介面的collector設定想像成在本地端做設定的感覺,會比較好懂collector input和output

– Define Snippets

1| Backend目前好像只能選擇NXLog (?
2| Snippet就是寫上附加的資訊(外掛之類的訊息),會即時更新到 有安裝collector sidecar那端上
所以可以試試看在snippet加上 #hello 的字眼,然後到 有安裝collector sidecar那端上 查看collector_sidecar.yml檔有沒有被更改

 

設定完,”理論上”就會有資料上傳到graylog的input裡了

 

 

疑點解決:

如果設定完後,還是沒有資料進來怎麼辦?

1. 先檢查collector是否有成功安裝、連線:
Graylog_Web_Interface
這邊有出現,並且對應到正確的OS、collector id(可在collector-sidecar/collector-id內查看),就是有成功連線

在web collector頁面,按show message後沒有資料,就是configuration有出問題

 

2. 檢查兩端(web、有安裝sidecar那端)configuration的tags是否有相同對應:

兩端的tags一定要相同,有安裝sidecar那端的collector才抓得到configuration哦,
否則只是一個空的collector而沒有設定input和output,自然就不會有資料流動囉

*再真的沒有資料的話,可試試看把tags換掉

 

3. 檢查collector output是否有對應到graylog input的ip和port(重要)

graylog input的bind_address 和 collector output的server ip是要一樣的哦!!
port也要開同一個port,例如12210

 

4. 以上幾點都檢查完後,要檢查collector input是否有讀到,有一個最簡單的方法
在collecotor input設定一個[NXLog] file input,
path to logfile就設定隨便一個空的文件檔(e.g. hello.txt,自己創在桌面之類的)
設定完後,試著修改hello.txt,改完存檔後,再到collector按show message看是否有修改資料上傳

 

這邊有測試到一個情況是一個軟體把logfile都lock住,導致input讀不到,目前無解…

比較爛的方式就是複製出一份沒lock的,再上傳

對了! 在collector input的path to logfile的檔名可以設定用 XXX/*.log,就可以把XXX資料夾裡面的所有副檔名為log的都抓進去

作者

RongSon

Graduate Student of CCU COMM Game Development, Network Communication, macOS/Ubuntu/Android, Arduino/Raspberry Pi/Intel Edison, Java/Python/C/C++

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *