Quantcast
Channel: 古之技術必有師。
Viewing all 214 articles
Browse latest View live

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

$
0
0
簡易「配置」圖

選擇「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 - 中文社區

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

$
0
0
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 服務

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

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

$
0
0
關於「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 &


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


參考資料

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

$
0
0
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


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

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

瀏覽「索引」字段

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

參考資料
GitHub」-「elasticsearch-head

S小魚仔S ELK 錯誤訊息 max file descriptors [4096] for elasticsearch process is too low ....

$
0
0
檢查「cat ./elasticsearch-5.3.2/logs/elasticsearch.log

警告
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]」。

解決方案。

切換「root」帳號
su root

編輯「limits.conf
vi /etc/security/limits.conf

加入「下面」配置,「elk」為「elasticsearch」啟動「帳戶
elk soft nofile 65536 
elk hard nofile 65536

檢查「大小
su elk -c 'ulimit -Hn'


警告
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決方案。

vi /etc/sysctl.conf

vm.max_map_count=655360

sysctl -p

====重啟「elasticsearch」和「kibana」====

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

停用「進程
kill -9PID

使用「elk」帳號,背景運行「elasticsearch」 程序。TCP-9200
su elk -c 'nohup /opt/elasticsearch-5.3.2/bin/elasticsearch &'

運行「kibana」程序
/opt/kibana-5.3.2-linux-x86_64/bin/kibana &

檢查「elasticsearch.log
cat ./elasticsearch-5.3.2/logs/elasticsearch.log

參考資料
my.oschina.net」-「Elasticsearch5.1.1 启动报错

S小魚仔S Windows Server 2016 TS Remote App 簡易佈署

$
0
0
因為工作上需要「TS Remote App」使用「Windows Server 2016」開始搭建 ,先決條件必須有「AD (網域)」,否則「無法搭建」。

本次實驗環境「AD+ TS Remote App (遠端桌面服務)」同一個主機,AD (網域) 搭建就不多加描述。


1. 添加「服務器角色」 (遠程桌面服務)



啟用「遠程桌面服務

2. 添加「角色服務」 ( 遠程桌面 Web 訪問 ) 和 ( 遠程桌面會話主機 )



3. 等待 功能 新增完成 提示「重新開機





4. 進入「服務管理器」=>「遠程桌面服務



提示您 需「建立」 RD 連接代理服務器,需要透過「添加角色和功能」配置才能使用



5. 添加「角色和功能」佈署  (遠程桌面連接代理) (遠程桌面WEB訪問) (遠程桌面會話主機)




使用「標準部署

選擇「基於會話的桌面部署

介紹「三個」主要「角色」用途

配置「RD 連接代理」主機

配置「RD WEB」主機

配置「RD 會話」主機

勾選「需要時自動重新啟動....」接著「部署

6. 「創建會話集合」 ( Create A Collection )

建立「會話集合

輸入「集合名稱

配置「RD 會話主機


允許「使用」群組

配置「Remote APP」使用「資料夾」空間,後續就「下一步」然後「創建

7. 設定「創建集合」發布 Remote App 程序






8. 透過「網頁」瀏覽「Https:// IP or Domain :RDWEB」
PS.「Remote App Server」會自動啟用「防火牆 ( Firewall Rules)」規則。




9. 如果「Clinet」沒有加入「網域」,使用「Firefox」瀏覽器登入「網頁」下載 APPxxx.rdp」 並修改內文「full address」和「workspace id」改為「IP Server」位址,即可連線。






參考資料
The Windows Server HA Blog」-「Step by Step Server 2016 Remote Desktop Services QuickStart Deployment
51cto.com」-「Win2012 下 Remoteapp 的报错 "找不到远程计算机"

S小魚仔S FreeNAS 11.0 配置 SMB 共享資料夾

$
0
0
設定「Windows (SMB)」共享「資料夾


 

1.  選擇「共享」路徑

2. 「Allow Guest Access」 和 「Only Allow Guest Access」 是啟用「匿名存取」,登入「Windows」不需要「驗證」,不建議「啟用」

3. 選擇「OK」即可


設定「帳號 - 群組」( Account Groups)



設定「帳號 - 使用者」( Account Users)



點選「進階

1. 建立「帳號
2. 取消「群組建立
3. 選擇「群組
4. 選擇「家用」目錄
PS.
注意「家用」目錄,會在 「路徑」 後面加入「帳戶」,「路徑\帳號」。
5. 配置「讀取、寫入、執行」權限
6. 建立「全整名稱
7. 配置「密碼
8. 選擇「群組
9. 點選「OK

建立完成


啟用「SMB」服務



如何清除「連線紀錄」使用「Net Use * /d /y


S小魚仔S Splunk 6.4.X (Centos 7) 匯入「IIS」Log 數據 (完成)

$
0
0
1. 建立「Index」(數據庫)

1. 點選「設定」
2. 點選「索引

點選「新增索引

1. 建立「索引(數據庫)」(IIS)
2. 點選「儲存

2. 「匯入」IIS Log

1. 點選「設定
2. 點選「新增資料

點選「從我的電腦 (上傳檔案)

選擇「檔案」( IIS LOG)

上傳完畢,點選「下一步

1. 來源類型「IIS」( 可自行選擇)
2. 呈現 LOG 顯示欄位
3. 點選「下一步」 

1. 輸入 IIS LOG「主機」IP Address
2. 「索引」 選擇「IIS
3. 點選「檢閱

瀏覽「設定」清單,若無誤 點選「送出

3. 查詢「IIS LOG」語法 

index="iis" host="192.168.0.229"


5. 如果有多筆「來源」資料,匯入相同「Index」(數據庫)

匯入以後「Source」欄位 會出現「兩筆」檔案名稱

S小魚仔S WhatsUp Gold v17 配置 SQL Server (完成)

$
0
0

1. 點選「Advanced installation
2. 建議不需要勾選「Help us.......」(傳送使用者資訊..尋求幫助)

勾選「Next

勾選「No, I want to select.......」(使用自己 SQL Server)
PS
預設「WhatsUp Gold」內建「SQL Server 2014 Express」限制資料庫為「10G

1. 輸入「SQL Server 」位置
2. 輸入「帳號」和「密碼

自動建立「WhatsUp」和「iDrone Service」資料庫

使用「IIS」Website TCP 80 Port

會自動建立一組「本機」帳號,用於「服務」啟用

選擇「WhatsUp Gold」語系

自動建立「NetFlow」資料庫

確認配置「清單

過程會全自動安裝...一直到結束。



注意事項

使用「WhatsUp Gold」配置「SQL Server」定序 必須為SQL_Latin1_General_CP1_CI_AS,否則安裝「SQL Server」步驟會出現以下錯誤。

使用「Command Line」輸入下列指令

 「cd C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\SQLServer2012
PS
不同 「SQL Server」 版本 「資料夾」位置會稍微不一樣,請注意。 

輸入下列指令

Setup 
/QUIET /ACTION=REBUILDDATABASE 
/INSTANCENAME=MSSQLSERVER 
/SQLSYSADMINACCOUNTS=SQL\Administrator 
/SAPWD=5643245 
/SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS

登入「SQL Server Management Studio
查詢「master、model、msdb、tempdb」資料庫狀態。

SELECT CONVERT (VarcharSERVERPROPERTY('Collation'));
SELECT Name, Collation_name FROM Sys.Databases
Where Name In ('master','tempdb','model','msdb')


參考資料
RiCo技術農場」-「變更 SQL Server 定序

S小魚仔S Centos 7 SaltStack 自動化運維工具

$
0
0
這幾天不斷在思考一個問題,當「Linux」主機越來越多應該怎麼合理管理? 於是就有朋友推薦「SaltStack」自動化運維工具「SaltStack - 指令參考」。

SaltStack 的架構分成 Server (Master) 跟 Client (Minion)。
Server 需要安裝「Master」、「Minion」工具。
Client 需要安裝「Minion」工具。

Server 防火牆「TCP 4505、4506」開啟例外。


====Server (Master) 配置====

#修改「電腦」名稱
hostnamectl set-hostname SaltStack-Master

#關閉「Selinux」並「重開機
vi /etc/sysconfig/selinux
SELINUX=disabled
reboot

#加入「防火牆」例外規則
sudo firewall-cmd --add-port=4505/tcp --permanent
sudo firewall-cmd --add-port=4506/tcp --permanent

#重新啟動「防火牆
sudo firewall-cmd --reload

#檢查「防火牆」配置
firewall-cmd --list-all --permanent

# 安裝「SaltStack」配置 YUM Repository
vi /etc/yum.repos.d/saltstack.repo

[saltstack-repo]
name=SaltStack repo for Red Hat Enterprise Linux $releasever
baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
enabled=1
gpgcheck=1
gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub              https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/base/RPM-GPG-KEY-CentOS-7

#安裝「SaltStack」RPM
sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm -y

#「Master」主機端安裝「Salt-master」與「salt-minion」。
yum install salt-master salt-minion -y

#配置「Salt-Master」主機「IP」。
vi /etc/salt/master
interface: 0.0.0.0             # 接受「0.0.0.0」 網段
auto_accept: True           #自動接受「minion」请求



#啟動「Salt-master
systemctl start salt-master.service

#開機「自動啟動」salt-master
systemctl enable salt-master.service


#配置「Salt-minion」指向「Server」主機「IP」。
vi /etc/salt/minion
master: 192.168.8.22

#啟動「salt-minion
systemctl start salt-minion.service

#開機「自動啟動」salt-minion
systemctl enable salt-minion.service

#檢查「Salt-master」狀態
systemctl status salt-master.service

#檢查「Salt-minion」狀態
systemctl status salt-minion.service


#檢查「4505」端口
netstat -tunlp | grep -e 4505 -e 4506

#檢查「Master」是/否 「監控」必須在「Accepted Keys」才算「受監控
salt-key -L

PS.
如果顯示「Unaccepted Keys」使用下面指定「進行授權
salt-key -a hostname -y


====Clinet (Minion) 配置====

#修改「電腦」名稱
hostnamectl set-hostname minion-01

#關閉「Selinux 」並「重開機
vi /etc/sysconfig/selinux
SELINUX=disabled
reboot

# 安裝「SaltStack」配置 YUM Repository
vi /etc/yum.repos.d/saltstack.repo

[saltstack-repo]
name=SaltStack repo for Red Hat Enterprise Linux $releasever
baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
enabled=1
gpgcheck=1
gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub              https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/base/RPM-GPG-KEY-CentOS-7

#安裝「SaltStack」RPM
sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm -y

#「Client」端安裝「Salt-minion」。
yum install salt-minion -y

#指向「Salt-master」主機「IP
vi /etc/salt/minion
master: 192.168.8.22

#啟動「Salt-minion
systemctl start salt-minion.service

#開機「自動啟動」salt-minion
systemctl enable salt-minion.service

#檢查「Salt-minion」狀態
systemctl status salt-minion.service


====Server (Master) 操作「Client (Minion)」====

#如果要對「minion-01」下指令則是用 「cmd.run
salt 'minion-01' cmd.run date

#查詢「minion-01」IP 設定
salt 'minion-01' cmd.run 'ifconfig'


參考資料
Neoesque Blog」-「Saltstack 使用心得&簡介
阿里雲 Blog」-「安装 SaltStack 和 Halite

S小魚仔S Centos 7 SaltStack 派送腳本 Shell Script

$
0
0
SaltStack」支持「Shell Script」派送,修改「Salt-Master 」Shell Script 目錄,放置「Shell Script」腳本,透過指令進行派送。

配置「Salt-Master」指定「執行」Shell Script 「目錄
vi /etc/salt/master

file_roots:

  base:
         - /opt/



;重新啟動「Salt-master
systemctl restart salt-master.service

#將寫好「Shell」腳本放置「/opt」目錄 
#使用「cmd.script」派送「Shell Script」,執行「成功」就會顯示「PID」進程號
salt 'minion-01' cmd.script salt://1.sh

參考資料
Sina App Engine Blog」-「用 SaltStack 管理一到上万台服务器

S小魚仔S Google Compute Engine 使用 SSH 登入

$
0
0
經過一番研究...終於搞定了,首先我們需要幾樣工具
Putty_Key_Generator」產生 「公鑰 (Public Key)」 與 「鑰 (Private Key)」、「Royal TS」遠端連線工具。

1. 下載「Putty_Key_Generator


2. 產生「Key」滑鼠記得..在畫面「點一點」,否則永遠都不會好。


3. 複製「公鑰 (Public Key)


4. 將「公鑰 (Public Key)」貼至「GCE主機

選擇「專案」=>「Computer Engine」=>「VM 執行個體

點選「虛擬機

 點選「編輯

貼入「公鑰 (Public Key)

4. 產生「鑰 (Private Key)」xxx.ppk



5. 開啟「Royal TS」載入「xxx.ppk

1. 選擇「Credentials
2. 選擇「Specify username and password
3. 輸入「Google 帳號」即可

1. 點選「Private Key File
2. 選擇「Patch to Private Key File
3. 載入「xxx.ppk

登入「GCE」主機 OK!


參考資料
傑瑞窩在這」-「Google Compute Engine 上架設 Server

S小魚仔S ELK 收集 Nginx Access Log

$
0
0
因為一個機緣巧合下發現如何使用「Nginx」Log 傳送給「ELK」做分析,本篇文章並不會教各為如何搭建「ELK ( Elasticsearch )、( Logstash )、( Kibana )」和「Nginx」直接切入重點。

 一. 配置「Nginx」日誌為「JSON」格式。
PS. 建議先將「內容」貼到「Notepad++」編碼為「UTF-8」。

vi /etc/nginx/nginx.conf  (Default)


#==========Nginx Log Output=============

log_format main  '{"@timestamp":"$time_iso8601",'
                        '"@source":"$server_addr",'
                        '"hostname":"$hostname",'
                        '"ip":"$http_x_forwarded_for",'
                        '"client":"$remote_addr",'
                        '"request_method":"$request_method",'
                        '"scheme":"$scheme",'
                        '"domain":"$server_name",'
                        '"referer":"$http_referer",'
                        '"request":"$request_uri",'
                        '"args":"$args",'
                        '"size":$body_bytes_sent,'
                        '"status": $status,'
                        '"responsetime":$request_time,'
                        '"upstreamtime":"$upstream_response_time",'
                        '"upstreamaddr":"$upstream_addr",'
                        '"http_user_agent":"$http_user_agent",'
                        '"https":"$https"'
                        '}';


瀏覽「Nginx」網站「確認」Nginx Log 為「JSON」格式


二. 配置「Logstash」允許「input」為「JSON」搭配「Filter」插件功能。
PS. 建議先將「內容」貼到「Notepad++」編碼為「UTF-8」。
PS. 「filter」和「mutate」是「插件」功能,為了「字段」轉型。
PS. 「geoip」可以分析「國家、經緯度、省份....等」前提是「Internet」必須要通。

#==========Logstash Log Intput=============

input {
        beats {          #輸入「監聽」「TCP 5043」端口,接收来自 Filebeat 的 Log
        port =>  "5043"           
        codec => "json"
        }
}


filter {

        mutate {
        convert => [ "status","integer" ]
        convert => [ "size","integer" ]
        convert => [ "upstreatime","float" ]
        remove_field => "message"
        }

        geoip {
        source => "ip"
        }
}

output {
  elasticsearch { hosts => ["localhost:9200"] }  #輸出「結果」到「elasticsearch」「TCP 9200」端口。
  stdout { codec => rubydebug }
}



三. 配置「Filebeat」(ELK Agent) 傳送「Nginx Log」至「Logstash

filebeat.prospectors:
- input_type: log                      #輸入 type「log」
  paths:
    - /var/log/nginx/access.log        #指定推送日誌「Log」文件
  fields:
    host_ip: 192.168.8.24             #告知「來源」IP 位址
    tags: ["nginx"]                   #設定「標籤」
output.logstash:

  hosts: ["192.168.8.25:5043"]        #指定接收Logstash





最後就是檢查「ELK」數據日誌「結果

同時可以配合「Grafana Dashboards」展示「數據」。

參考資料
Blog.csdn.net」-「ELK测试笔记:Filebeat与 Logsmash 写入 Redis
ELK Web Site」-「Plugins-filters-mutate

S小魚仔S Centos 7 啟用 SSH 公鑰 與 私鑰 設定

$
0
0
1. 使用「ssh-keygen -f root」產生 公鑰 和 私鑰,會產生「root」和「root.pub」兩份檔案。

輸入「ll」檢查「root」、「root.pub

2. 下載「Putty_Key_Generator」載入「root」並 產生「Private Key」( *.ppk )

載入「root」key

儲存「私鑰」( Private Key)


3. 佈署  Centos「KEY」 公鑰 授權「帳號」和「主機
PS.「root」是「帳號」,「192.168.2.101」主機 IP

ssh-copy-id -i root.pubroot@192.168.2.101

4. 編輯「vi /etc/ssh/sshd_config」配置檔 啟用「Key」認證

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys


5. 重啟「sshd」服務,檢查「KEY」位置

systemctl restart  sshd.service

ll /root/.ssh



6. 使用「遠端登入工具」PuttyRoyalts..等載入「Private Key」( *.ppk ) 使用「帳戶」登入即可。


參考資料
史帝芬心得筆記」-「ssh 公鑰認證登入

S小魚仔S Centos 7 安裝 Influxdb

$
0
0
最近剛好在測試日誌服務器,搭建了「Influxdb」,InfluxDB是一個由 InfluxData 開發的開源時序型資料庫,它由 Go語言寫成,著力於高性能地查詢與存儲時序型數據。InfluxDB被廣泛應用於存儲系統的監控數據,IoT行業的實時數據等場景。


==修改「電腦」名稱====

hostnamectl set-hostname Influxdb

==關閉「selinux 」======
開機 不「啟用」selinux 才不會阻擋「服務連線」服務
vi /etc/sysconfig/selinux
SELINUX=disabled
reboot

==Influxdb- Firewall========

Influxdb Web 8083/TCP

#加入「防火牆」規則
sudo firewall-cmd --add-port=8083/tcp --permanent

Influxdb API 8086/TCP

#加入「防火牆」規則
sudo firewall-cmd --add-port=8086/tcp --permanent 

#重新啟動「防火牆」
sudo firewall-cmd --reload

#檢查「Firewall」設定「規則」
firewall-cmd --list-all --permanent


======InfluxDB v1.3.5 (Server)==========

#更新「yum」資料庫來源
yum install epel-release -y

#加入「influxdb」yum 資料庫來源
vi /etc/yum.repos.d/influxdb.repo

[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key

#安裝「influxdb
sudo yum install influxdb -y

#啟動「InfluxDB
systemctl start influxd

#開機自動啟動「InfluxDB
systemctl enable influxdb.service


#進入「influx」設定「資料庫
/usr/bin/influx

#建立「帳號」(admin) 和「密碼」(admin) 允許最高權限
CREATE USER "admin" WITH PASSWORD 'admin' WITH ALL PRIVILEGES

#建立「資料庫」為「collections
CREATE DATABASE "collections"

#編輯「influxdb.conf」允許「透過」Web API 獲取數據。
PS. 可搭配「Grafana」下載「Grafana Dashboard」套用。

vi  /etc/influxdb/influxdb.conf

[http]
  enabled = true
  bind-address = ":8086"
  auth-enabled = true
  log-enabled = true
  write-tracing = false
  pprof-enabled = false
  https-enabled = false
  https-certificate = "/etc/ssl/influxdb.pem"

#重新啟動「InfluxDB」
systemctl restart influxd

#檢查「端口」服務
netstat -ltunp | grep -e 8086

參考資料

S小魚仔S PowerShell 執行 Exchange 2013 EMS Script 腳本

$
0
0
1. 設定「PowerShell」賦予「執行」權限


檢查「Get-ExecutionPolicy」權限,若如下圖「所示」,接著往下繼續..
Get-ExecutionPolicy –List | FL

修改為「RemoteSigned」執行權限
Set-ExecutionPolicy "RemoteSigned"

2. 建立「Exchange - PowerShell」( xxx.ps1)

#==載入「Exchange-2013」模組==
PS. 這裡「紅色」部份「需要」輸入 Exchange Server「FQDN
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mail.jumi.com/PowerShell/ -Authentication Kerberos
Import-PSSession $Session

#===設定「日期」變數=====

$CurrentDate = Get-Date
#===設定「日期」轉「字串」=====
$CurrentDate = $CurrentDate.ToString('MM-dd-yyyy_hh-mm-ss')

#==輸入「Exchange Script」指令==
PS. 指令不多做「解釋」有需要「自行學習
Get-MessageTrackingLog -Server mail -ResultSize Unlimited -Start "9/18/2017 00:00 AM" -End "9/19/2017 11:00 PM" -Sender "xxxxx@gmail.com" | Select-Object timestamp,source,eventid,sender,recipients,messagesubject,recipientstatus,originalclientip,clientip,serverip | sort-object -Property timestamp | Out-File C:\Ex_Log\exchange_$CurrentDate.log

執行「PowerShell」腳本


成功輸出「Exchange」Log

3. 設定 PowerShell 「排程」(schedule) 執行

選擇「創建基本任務

輸入「任務名稱

選擇「排程」每天何時執行

選擇「開始」時間

選擇「啟動程序

1.輸入「powershell
2. 添加參數 輸入「-file "C:\Users\Mail\Exchange.ps1"
PS. PowerShell檔案,不要用中文命名

這裡非常重要
1. 選擇「不管用戶是否登入都要運行
2. 使用「最高權限運行
3. 配置「Windows Server 2012 R2

1.選點「觸發器」頁面
2. 點選「觸發器」排程,可以修改「執行時間


最後輸入有執行權限「帳號和「密碼」即可

參考資料

S小魚仔S Influxdb 設定 Https 證書加密

$
0
0
1. 下載「Win32OpenSSL」產生「Private Key」(私鑰) 和「Ceritficate」(證書) 接著合併「Private Key」與「Ceritficate」。



切換「Bin」目錄夾
CD C:\OpenSSL-Win64\bin


使用「openssl.exe」產生「Private Key
openssl genrsa -out D:\influxdb_key.pem2048

使用「openssl.exe」導入「Private Key」 產生「csr
openssl req -new -key D:\influxdb_key.pem -out D:\influxdb_cert.csr



合併「Private Key 與「Ceritficate
openssl x509 -req -days 3650 -in D:\influxdb_cert.csr -signkey D:\influxdb_key.pem -out D:\influxdb_cert_key.pem




2. 編輯「influxdb.conf」配置「加密

編輯「vi /etc/influxdb/influxdb.conf

啟用「加密
https-enabled = true

載入「influxdb_cert_key.pem」( 合併 Ceritficate 與 Private Key )
https-certificate = "/opt/influxdb_cert_key.pem"

載入「Private Key
https-private-key = "/opt/influxdb_key.pem"




#重新啟動「InfluxDB
systemctl restart influxd

#檢查「InfluxDB」狀態
systemctl status influxd


3. 設定「Telegraf (客戶端)」使用「Https」加密傳輸

編輯「vi /etc/telegraf/telegraf.conf

urls = ["https://192.168.8.26:8086"]

insecure_skip_verify = true

#重啟「telegraf」客戶端
systemctl restart telegraf

#檢查「telegraf」狀態
systemctl status telegraf


參考資料
RiCo技術農場」-「Enable https for influxdb
RiCo技術農場」-「How to set up HTTPS with Telegraf

S小魚仔S Centos 7 安裝 Ntopng 進行 網路監控

$
0
0
ntopng」是原始「ntop」的下一代版本,監視網絡使用情況的網絡流量探測器。「ntopng」基於「libpcap」,它以便攜式方式編寫,以便在每個 Unix 平台,MacOSX 和 Windows 上虛擬運行,支持 sFlowNetFlow (v5/v9) 和 IPFIX,此版本「ntopng-3.1.171009」同時結合「Grafana - Ntopng Datasource」。

==修改「電腦」名稱====

hostnamectl set-hostname Ntopng
                                       
==Grafana- Firewall========

#Ntopng-Http (Server) 3000/TCP
sudo firewall-cmd --add-port=3000/tcp --permanent 

#重新啟動「防火牆
sudo firewall-cmd --reload

==關閉「selinux」======

#關閉「Selinux」為「disabled」才不會阻擋「服務連線」服務
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

#重新啟動
reboot -h now

==== Install Ntopng 3.1 版本(Yum 源) ============

#切換「Yum」源,根目錄
cd /etc/yum.repos.d/

#「Wget」下載「ntop.repo」修改檔名「ntop.repo
wget http://packages.ntop.org/centos/ntop.repo -O ntop.repo

#「Rpm」下載「epel-release-latest-7.noarch.rpm」並「安裝
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

#清理「暫存
yum clean all

#「更新」所有「Yum」源
yum update -y

======安裝「Ntopn」===========

#安裝「Pfring」、「n2disk」、「nprobe」、「ntopng」、「ntopng-data」、「cento」、「tcpdump」。
yum install pfring n2disk nprobe ntopng ntopng-data cento tcpdump -y

#安裝「pfring」驅動程式
yum install pfring-drivers-zc-dkms -y

#開啟「redis」服務
sudo systemctl start redis.service
#重開機「redis」自動開啟「服務
sudo systemctl enable redis.service

#開啟「ntopng」服務,啟動「會有錯誤」不用擔心,因為需要「重啟」。
sudo systemctl start ntopng.service

輸入「journalctl -xe」會出現「Failed to start ...」無須理會,繼續往下

#重開機「ntopng」自動開啟「服務
sudo systemctl enable ntopng.service

#重新啟動
reboot -h now

#檢查「ntopng」狀態
sudo systemctl status ntopng.service

#檢查「redis」狀態
systemctl status redis.service

#因「ntopn」是「商業軟件」需要修改「License」授權 為「--community」(通用版) Version。

#修改「ntopng.conf」編輯檔
sudo vi /etc/ntopng/ntopng.conf

;內容如下
-G=/var/tmp/ntopng.pid\
--community

#重新啟動「ntopng.service
sudo systemctl restart ntopng.service

#檢查「ntopng」狀態
sudo systemctl status ntopng.service

輸入「Http://IP:3000」即可正常「使用
PS.預設「帳號」和「密碼」( admin / admin )

參考資料
肥佳洛的學習網」-「建立 Ntopng 來作為收集與分析 SFlow 訊息
亞索數位筆記」-「在 CentOS 7.x 上安裝 ntopng
「Web Site」-「http://www.ntop.org/

S小魚仔S Influxdb 搭配 Grafana 完成簡易 Web UI Admin 管理

$
0
0
首先「本篇」不會講解「Influxdb」和「Grafana」搭建,這是最基本的知識基礎,在一個巧合之下發現「Grafana Influx Admin」Panel,開發公司為「Natel Energy」。

Influxdb」和「Grafana」需要搭建在「相同服務器」因為使用「local:8088」連線。

1. 安裝「nodes」相關「套件

yum install nodejs -y
yum install openssl -y
npm install -g yarn
npm install -g grunt-cli

2.安裝「Grafana - influx admin」 Plugins

grafana-cli plugins install natel-influx-admin-panel

sudo systemctl restart grafana-server


3. 設定「Data Sources


點選「+Add data Source

1. 輸入「名稱
2. 選擇「InfluxDB
3. 輸入「http://localhost:8086」(Default)
4. 選擇「Proxy
5. 輸入 InfluxDB「資料庫
6. 輸入 InfluxDB「帳戶」、「密碼

點選「Save & Test

成功連結「InfluxDB


4. 配置「DashBoard」套用「Influx Admin」插件

點選「Home

點選「+ New DashBoard

選擇「Influx Admin」插件

編輯「Influx Admin」插件

移動 畫面 最下面
1. 點選「Options
2. 選擇「Query Windows

點選「紅色圖形」就會有「UI」功能

點選「Show Databases」就可以查詢「資料庫
Viewing all 214 articles
Browse latest View live