前言:
需求是小編需要采集windows 上面的系統日志,是以要搭建個日志采集系統
首先說下什麼是ELK呢?
ELK 是三個開源項目的首字母縮寫,這三個項目分别是:Elasticsearch、Logstash 和 Kibana。
- Elasticsearch 是一個搜尋和分析引擎。
- Logstash 是伺服器端資料處理管道,能夠同時從多個來源采集資料,轉換資料,然後将資料發送到諸如 Elasticsearch 等存儲庫中。
- Kibana 則可以讓使用者在 Elasticsearch 中使用圖形和圖表對資料進行可視化。

不過小編采用的是winlogbeat + ES + Kibina的組合進行日志收集,優點就是輕量級,因為去掉了笨重的logstash, 占用資源更少。
如上圖所示,該ELK架構由beats(這裡我們采用winlogbeat)+elasticsearch+kibana構成,這個架構比較簡單,入門級的架構。
01
準備工作:
Centos7虛拟機一台作為服務端 Windows 虛拟機一天作為用戶端
各軟體包下載下傳好并上傳到Centos7服務上/opt目錄下
02
關閉selinux:
臨時關閉selinux:
擷取目前selinux狀态 getenforce Enforcing為開啟,Permissive為關閉
臨時關閉:setenforce 0
永久關閉selinux:vim /etc/sysconfig/selinux
SELINUX=enforcing 替換為SELINUX=disabled
重新開機機器後後,運作指令sestatus
SELinux status : disabled
03
部署JDK:
首先進入/opt目錄然後做如下操作
[[email protected] /]# tar zxvf jdk1.8.0_131.tar.gz [[email protected] /]# mv jdk1.8.0_131 /usr/ [[email protected] /]# vim /etc/profile
添加
export JAVA_HOME=/usr/jdk1.8.0_131/ export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
[[email protected] /]# source /etc/profile [[email protected] /]# java –version
這樣JDK就安裝好了
04
部署Elasticsearch:
[[email protected] /]# tar xzf elasticsearch-5.3.0.tar.gz [ro[email protected] /]# mv elasticsearch-5.3.0 /usr/local/elasticsearch [[email protected] /]# ll /usr/local/elasticsearch/
[[email protected] /]# useradd elk 建立使用者 [[email protected] /]# chown -R elk /usr/local/elasticsearch/ [[email protected] /]# ll /usr/local/elasticsearch/
[[email protected] /]# vim /etc/security/limits.conf
添加
* soft nofile 65536 * hard nofile 65536
[[email protected] /]# vim /etc/security/limits.d/20-nproc.conf
添加
soft nproc 2048
[email protected] /]# vi /etc/sysctl.conf
添加
[[email protected] /]# sysctl –p
注意:做完幾步後 建議重新開機系統
[[email protected] /]# cd /usr/local/elasticsearch/config/ [[email protected] config]# vim jvm.options
注釋:如果你虛拟機是2G以上不需要改
[[email protected] config]# vim elasticsearch.yml
1.修改監聽的網絡位址為0.0.0.0
改成
2.開啟監聽的端口
去掉#
3. data,用于存放索引分片資料檔案,logs,用于存放日志
檔案夾如果沒有需要自己建立。注意檔案夾建立好後chown –R elk data和logs下。
[[email protected] /]# su - elk 進入elk使用者啟動 [[email protected] ~]$ /usr/local/elasticsearch/bin/elasticsearch -d 啟動 [[email protected] ~]$ tail -fn 50 /usr/local/elasticsearch/logs/elasticsearch.log
或看端口 9200 9300 是否啟動了
[[email protected] elk]# netstat -ntlp|grep -E "9200|9300"
浏覽器中輸入:http://IP:9200測試是否正常(以下為正常)
05
部署Kibana:
[[email protected] /]# tar xzf kibana-5.3.0-linux-x86_64.tar.gz [r[email protected] /]# mv kibana-5.3.0-linux-x86_64 /usr/local/kibana [[email protected] /]# cd /usr/local/kibana/config/ [[email protected] config]# vim kibana.yml
1.修改監聽的網絡位址為0.0.0.0
改成
去掉#号(改成EC伺服器的ip位址) 這台和EC在一起是以不用改 如果有對個分布式叢集用,隔開
2.開啟監聽的端口
[[email protected] config]# cd .. [[email protected] kibana]# cd bin/ 進入bin目錄 [[email protected] bin]# nohup ./kibana & 背景啟動 [[email protected] bin]# netstat -tnlp|grep -E "9200|9300|5601"
浏覽器http://192.168.125.139:5601
至此服務端搭建完畢。
06
部署Winlogbeat用戶端:
1.首先把下載下傳好的檔案上傳的用戶端機器上
2.解壓到C:\Program Files
3.安裝winlogbeat服務
重新命名檔案夾為winlogbeat
用管理者身份打開windows的 powershell
- 運作以下指令來安裝服務
C:\Users\Administrator> cd 'C:\Program Files\Winlogbeat' C:\Program Files\Winlogbeat> .\install-service-winlogbeat.ps1
如果在系統上禁用了腳本執行,則需要為目前會話設定執行政策以允許腳本運作。
PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1.
安裝好後即可在系統服務中看到了
然後啟動服務
4.配置winlogbeat.yml檔案
用winlogbeat收集日志,發送到elasticsearch
修改配置檔案 :winlogbeat.yml
修改tags資訊,因為winlogbeat沒有ip自帶,檢視日志時不友善區分,顧在此字段中添加ip+mac
填寫要輸出到es的位址
修改此處即可
這裡是要采集的日志類型,預設已配置好無需修改
5.重新開機服務
最後登入kibana配置winlogbeat索引檢視擷取的日志
可以看到已經接收到剛才開啟winlogbeat服務的日志資訊了
Tags中也有所填資訊友善以後索引檢視
至此實驗完成。