S小魚仔S 網誌搜尋

2017年6月4日 星期日

S小魚仔S ELK 安裝 Head 插件 (Plugin) 檢查 Index 健康狀況

ELK 安裝 Head 插件 可以檢查「index」使用率「大小」以及「健康」狀況。

1. 將檔案「下載」修改「檔名」並「解壓縮」傳到「/opt目錄
https://github.com/mobz/elasticsearch-head
PS.
1. 不能放在「elasticsearch」=> plugins 目錄 
2. 不能使用 「elasticsearch-plugin install




2. 切換 目錄「cd /opt/elasticsearch-5.4.0/config/

3. 編輯「elasticsearch.yml
vi elasticsearch.yml

4. 最後面加入「下面語句
http.cors.enabled: true
http.cors.allow-origin: "*"

6. 安裝「nodejs」套件
yum install -y nodejs

6. 切換「cd /opt/head」目錄



安裝「npm install -g grunt-cli」套件

安裝「npm install

7.重啟「elasticsearch」服務

;檢查「9200」PID 程序
netstat -ltunp | grep "9200"

;停用「進程」

kill -9 28258

;使用「elk」帳號,背景運行「elasticsearch」 程序。TCP-9200

su elk -c 'nohup /opt/elasticsearch-5.4.0/bin/elasticsearch &'

8. 啟動「grunt server」服務器,畫面會顯示某些「錯誤」直接「忽略」,因「ELK」5.0.X 版本 會有相容性「問題

grunt server」 (頁面執行) 或「nohup grunt server &」(背景執行)


8. 使用「http://localhost:9200」瀏覽

點選「Index」索引 =>「索引信息

瀏覽「索引」字段

完成「Head 插件 (Plugin)」安裝,師父領進門,修行在個人。

參考資料
elasticsearch」-「Cannot start Elasticsearch with non loopback address
GitHub」-「elasticsearch-head

2017年6月3日 星期六

S小魚仔S ELK 收集 Fortigate 60D Syslog 使用 Grok 產生 字段

關於「ELK」簡單來說就是一個「LOG」收集分析軟件,屬於「開源」基於「Linux」環境 架設與佈署,Windows Log、Linux Log、Syslog 照單全收,需要建置角色「Elasticsearch」、「Logstash」、「Kibana」三個套件,個人還是喜歡「Splunk」因為簡單好上手。

由於「Fortigate 60D - Syslog」 送往「ELK」並不會自動做「字段分析」,需要使用「logstash」=>「filter」插件功能 =>啟用「grok」,同時感謝「料理佳餚」作者 分享「ELK」設定「Grok」方法。

先讓各位看一下「Grok」編寫方法

ELK」收集「字段」顯示

使用「Grok」功能,我們需要先獲取「Fortigate 60D」Message

<189>date=2017-06-03 time=05:02:07 devname=FGT60D1112219335 devid=FGT60D1112219335 logid=0000000013 type=traffic subtype=forward level=notice vd=root srcip=192.168.2.100 srcport=50086 srcintf="internal" dstip=117.185.116.152 dstport=80 dstintf="wan1" poluuid=08a76f2c-1110-51e7-d44e-8c9dc0f52380 sessionid=300676 proto=6 action=close policyid=1 policytype=policy dstcountry="China" srccountry="Reserved" trandisp=snat transip=192.168.1.5 transport=50086 service="HTTP" appcat="unknown" applist="default" duration=1 sentbyte=703 rcvdbyte=519 sentpkt=6 rcvdpkt=5 wanin=307 wanout=383 lanin=383 lanout=307

天啊..這麼多訊息,我們要怎麼進行「字段」分析,別擔心前往「Grok Debug」將「內文」貼上,使用「Discover」智能分析「關鍵」字段,由於「畢竟」是「工具」許多「字段」都是寫死,必須改為「變數」。

將「Dicover」智能分析「結果」Copy 過來「Debugger」頁面,依序修改「變數」並且 所見及所得 ( What You See It Waht You Get ) ,一步一步 邁向成功之路.....

得到最後結果如下
%{SYSLOG5424PRI}date=20%{DATE} time=%{TIME:time} devname=%{HOSTNAME:devName} devid=%{HOSTNAME:devId} logid=%{NUMBER:logId} type=%{WORD:logType} subtype=%{WORD:logSubType} level=%{WORD:level} vd=%{DATA:virtualDomain} srcip=%{IP:srcIP} srcport=%{NUMBER:srcPort} srcintf=%{DATA:srcInterface} dstip=%{IP:dstIP} dstport=%{NUMBER:dstPort} dstintf=%{DATA:dstInterface} poluuid=%{DATA:poluuid} sessionid=%{NUMBER:sessionid} proto=%{INT:protocol} action=%{WORD:action} policyid=%{INT:policyId} policytype=%{WORD:policytype} dstcountry=%{QS:dstcountry} srccountry=%{QS:dstcountry} trandisp=%{WORD:trandisp} transip=%{IP:transip} transport=%{NUMBER:transport} service=%{QS:service} appcat=%{QS:appcat} applist=%{QS:applist} duration=%{NUMBER:duration} sentbyte=%{NUMBER:entbyte} rcvdbyte=%{NUMBER:rcvdbyte} sentpkt=%{NUMBER:sentpkt} rcvdpkt=%{NUMBER:rcvdpkt} wanin=%{NUMBER:wanin} wanout=%{NUMBER:wanout} lanin=%{NUMBER:lanin} lanout=%{NUMBER:lanout}

將「結果」貼到「Filter」內「grok


filter {           
   grok { 
                  match => [
                  "message", "%{SYSLOG5424PRI}date=20%{DATE} time=%{TIME:time} devname=%{HOSTNAME:devName} devid=%{HOSTNAME:devId} logid=%{NUMBER:logId} type=%{WORD:logType} subtype=%{WORD:logSubType} level=%{WORD:level} vd=%{DATA:virtualDomain} srcip=%{IP:srcIP} srcport=%{NUMBER:srcPort} srcintf=%{DATA:srcInterface} dstip=%{IP:dstIP} dstport=%{NUMBER:dstPort} dstintf=%{DATA:dstInterface} poluuid=%{DATA:poluuid} sessionid=%{NUMBER:sessionid} proto=%{INT:protocol}
action=%{WORD:action} policyid=%{INT:policyId} policytype=%{WORD:policytype} dstcountry=%{QS:dstcountry} srccountry=%{QS:dstcountry} trandisp=%{WORD:trandisp} transip=%{IP:transip} transport=%{NUMBER:transport} service=%{QS:service} appcat=%{QS:appcat} applist=%{QS:applist} duration=%{NUMBER:duration} sentbyte=%{NUMBER:entbyte} rcvdbyte=%{NUMBER:rcvdbyte} sentpkt=%{NUMBER:sentpkt} rcvdpkt=%{NUMBER:rcvdpkt} wanin=%{NUMBER:wanin} wanout=%{NUMBER:wanout} lanin=%{NUMBER:lanin} lanout=%{NUMBER:lanout}"
                           ]
                }
        }

最終結果如下

重新啟動「ELK」(logstash)

找到 (logstash)「5043」端口「服務」
netstat -ltunp | grep "5043"

強制結束「PID」程序
kill -9 16741

重新啟動「logstash
nohup /opt/logstash-5.4.0/bin/logstash -f /opt/logstash-5.4.0/config/nginx.yml &



登入「ELK」Web UI (Kibana) 更新「字段





終於完成..這麼複雜的方法..我開始懷念「Splunk」好用的工具。


參考資料

2017年5月27日 星期六

S小魚仔S FreeNAS 9.10.2 配置 NFS (三)

 1.設定「儲存」配置「權限



2. 配置「共享」選擇「UNIX (NFS)




開啟「NFS」服務



參考資料

S小魚仔S FreeNAS 9.10.2 配置 iSCSI (二)

1.設定「延伸磁區


1. 輸入「名稱
2. 選擇「檔案」類型
3. 延伸磁區「xxx/xxx.entent」(需要自定義副檔名)
4. 輸入「容量
5.選擇「Lun RPM」(空間轉速)
6. 點選「確定

配置「完成」瀏覽 檢查


2. 設定「啟動器



允許 任何「來源」連接。

3. 設定「入口



配置「IP」協議「通訊埠」,點選「確定


4.設定「目標



1. 輸入「名稱
2. 選擇「入口群組
3.選擇「啟動器群組
4.點選「確定


5. 設定「相關目標



1. 輸入「目標」名稱
2. 選擇「LUN ID
3. 選擇「延伸磁區」(Extent)
4. 點選「確定


6. 啟用「iSCSI」服務




7. 設定「Esxi







配置「成功

參考資料
media.jaes.ntpc.edu.tw」-「FreeNAS-開啟 iSCSI 服務

2017年5月26日 星期五

S小魚仔S FreeNAS 9.10.2 安裝 與 Volumes 配置 (一)

簡易「配置」圖

選擇「Install/Upgrade

點選「Yes

選擇「安裝」硬碟

點選「Yes
PS
警告」將會格式化「硬碟

輸入「密碼

選擇「Boot via BIOS

進行「安裝中」..

安裝「完畢」,選擇「OK」並「Reboot System


安裝完以後,會有「IP」地址 接著 前往「登入

登入「輸入」帳號、密碼,選擇「Log In」,接著選擇「Exit」不要使用「設定精靈

點選「System」=>「General
Language」(Traditional Chinese)
Timezone」(Asia/Taipei)

接下來就進入「愉快」繁體中文 GUI,然後「分割」( Volumes - 空間 )

點選「Volume Manager

1. 設定「名稱
2. 切割「硬碟」( Stripe ) 模式
PS
RAIDZ」是 在「ZFS」文件系統,採用的軟件「RAID」 解決方案,常見模式如下
Stripe: 模式需要「一顆」硬碟  ( Raid 0 )
Mirror: 模式需要「二顆」硬碟  ( Raid 1 )
RAIDZ1: 模式需要「」硬碟 ( Raid 5 )
RAIDZ2: 模式需要「」硬碟 ( Raid 6 )
Cache Device: 選擇「Cache Device」(快取模式) 建議使用「SSD」(硬碟),可以達到「緩存」加速「效果」。

切割完成「Volumes - 空間」,格式化 ( Volumes ) 



點選「儲存」=>「檢視磁區

完成「Volumes」設定

參考資料
官方網站」-「FreeNas
FreeNAS User Guide」-「Storage
FreeNas Forums」-「Chinese - 中文社區