graylog可以收集操作系統日誌,包括linux,windows,macos等。在linux上配置使用rsyslog服務,比較容易,在windows 配置比較複雜。
參考官方配置手冊http://docs.graylog.org/en/latest/pages/sidecar.html#windows
一、linux主機日誌收集
公司很多的虛擬機都是centos7的操作系統,帶有rsyslog服務,可以使用syslog協議將系統日誌發送到graylog上進行收集,可以指定端口。
必須注意的是, 很多linux發行版的非root用戶是無法使用1024以下的端口的,這些被稱爲特權端口。本次使用udp1515端口收集。
使用rsyslog轉發syslog消息很容易。充分利用日誌的唯一重要事項是遵循 RFC 5424。按照如下示例配置您的rsyslog守護程序將RFC 5424日期發送到Graylog syslog輸入:
touch /etc/rsyslog.d/greylog.conf #創建rsyslog額外配置文件 cat << EOF > /etc/rsyslog.d/greylog.conf #編輯配置文件 *.* @192.168.99.40:1515;RSYSLOG_SyslogProtocol23Format #*.* 代表linux中所有模塊所有級別的日誌,@代表使用udp協議,@@代表使用tcp協議,192.168.99.40:1515greylog主機的IP和收集端口 EOF #RSYSLOG_SyslogProtocol23Format 代表syslog協議格式模板
配置完成後,重啓rsyslog服務
systemctl restart rsyslog systemctl enable rsyslog
自此,linux主機syslog配置完成
然後在到graylog上進行配置,在system->input中,添加一個新的input,按照如下進行配置,選擇Syslog UDP
點擊launch new input,然後按照如下進行配置
說明:
1、port 寫1515
2、bind address保持0.0.0.0 默認
完成添加後,點擊“start input"啓動
然後我們在一臺linux主機上進行測試,使用簡單測試用命令,檢查greylog是否能夠收到
logger -p mail.info "hello!"
確認可以收到
二、windows收集日誌
windows操作系統無法使用syslog協議進行發送日誌。一種方式使用第三方軟件如”eventlog"將windows的系統日誌轉化syslog協議的日誌進行發送,但是greylog卻無法收集和處理。
所以在greylog上是使用第三方程序作爲代理安裝到windows主機上,從而收集windows主機日誌。
greplog主要推薦使用Graylog Sidecar進行。
Graylog Sidecar是一個輕量級配置管理系統,適用於不同的日誌收集器,也稱爲後端。Graylog節點充當包含日誌收集器配置的集中式集線器。在支持的消息生成設備/主機上,Sidecar可以作爲服務(Windows主機)或守護程序(Linux主機)運行。
日誌收集器配置通過Graylog Web界面集中管理。Sidecar守護程序會定期使用REST API獲取目標的所有相關配置。在第一次運行時,或者在檢測到配置更改時,Sidecar將生成(呈現)相關的後端配置文件。然後它將啓動或重新啓動那些重新配置的日誌收集器。
2.1windows上安裝sidecar
下載地址https://github.com/Graylog2/collector-sidecar/releases
windows安裝如下版本
windows上的sidecar下載地址
https://github.com/Graylog2/collector-sidecar/releases/download/1.0.0/graylog_sidecar_installer_1.0.0-1.exe
該程序是嚮導方式安裝,將安裝程序傳輸到windows主機上,直接以管理員身份運行
不過在安裝之前,我們需要需要確定sidecar的api token
首先在system中添加一個input
然後按照如下進行配置
bind address和port 保持默認即可
然後進入system/sidecar
此時根據提示,創建sidecar用戶的token
新建一個token
把這個token記錄下來,然後在 windows主機上執行sidecar安裝程序
這裏面唯一調整的就是 api的url和token字符串,如果可以,修改實例名稱,比如爲ip地址,然後下一步完成windows主機上sidecar的安裝
完成安裝後,以管理員身份運行cmd配置windows sidecar的作爲服務並啓動
C:\Program Files\graylog\sidecar\graylog-sidecar.exe -service install C:\Program Files\graylog\sidecar\graylog-sidecar.exe" -service start
然後檢查服務狀態,確認sidecar服務已經啓動
記住Windows Sidecar包已包含Filebeat和Winlogbeat,不需要再額外安裝
2.2配置input
在greylog上配置input配置完成後,先別啓動,因爲還要配置sidecar
在system中選擇sidecar
進入後,進入configuration進行新建配置
進入collection配置,選擇configuration進行配置
進入配置後,按照如下進行配置
說明:
1、name可以隨意取
2、collector要選擇 “winlogbeat on wondows'
然後這裏注意,需要修改out.logstash:,修改爲graylog主機的ip地址
然後點擊確認
下來,我們需要將新創建的配置(以及Filebeat收集器)分配給我們的sidecar。轉到該頁面。Collector Administration
然後可以看到windows主機安裝了sidecar能夠被graylog發現
這些都要手動選擇上,然後確認
確認之後,需要確認sidecar處於running狀態,自此sidecar配置完畢
然後我們在"overview "點擊”show message"就可以看到收集到的日誌
收到的windows主機日誌如下所示:
三、注意事項和添加到dashboard
在配置sidecar時,需要注意很多事情,在windows主機端安裝客戶端
1、配置正確的sidecar用戶api token
2、實例名稱可以修改爲主機名或者ip地址
3、一定要保持windows主機與greylog主機的tcp 5044端口開放
4、一定要確認windows主機的graylog服務啓動
5、對於linux主機或者其他自定義配置,需要調整sidecat.yml,配置參考如下:
基本上大部分主機配置只需要配置SERVER_URL和server_api_token
5、可以在windows主機的C:\Program Files\Graylog\sidecar\logs(greylog的sidecar客戶端默認安裝路徑)查看sidecar客戶端日誌信息,方便排錯
在graylog端配置時需要注意
1、input選擇beates,而且要保持開啓
2、sidecar需要配置正確的collector,例如windows爲winlogbeate,linux主機爲filebeat
3、要保持collector處於運行狀態
4、只有客戶端配置正確且與graylog通信正常,纔會在sidecar中看到顯示的sidecar實例
5、配置collector時候,一定要調整out.logstash:修改爲graylog主機地址
我TM還能說什麼,收集個windows日誌,居然如此麻煩
接下來,就是將sidecar收集到的日誌添加到儀表盤
就像這樣
同時也可以在souce中查看日誌收集總覽