S小魚仔S 網誌搜尋

2017年10月11日 星期三

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

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/

2017年9月25日 星期一

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

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



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


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

使用「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

2017年9月19日 星期二

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

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. 點選「觸發器」排程,可以修改「執行時間


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

參考資料

2017年9月14日 星期四

S小魚仔S Centos 7 安裝 Influxdb

最近剛好在測試日誌服務器,搭建了「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

參考資料

2017年9月7日 星期四

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

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.pub root@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 公鑰認證登入

2017年9月6日 星期三

S小魚仔S ELK 配置 Logstash 收集 Nginx Access Log

因為一個機緣巧合下發現如何使用「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

2017年8月23日 星期三

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

經過一番研究...終於搞定了,首先我們需要幾樣工具
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!


參考資料
軟體主廚的程式料理廚房」-「使用其他 SSH 用戶端登入到 Google Compute Engine 的 Linux VM
傑瑞窩在這」-「Google Compute Engine 上架設 Server

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

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 管理一到上万台服务器