S小魚仔S 網誌搜尋

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

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

這幾天不斷在思考一個問題,當「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

2017年7月13日 星期四

S小魚仔S WhatsUp Gold v17 配置 SQL Server


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 Splunk 6.4.X (Centos 7) 匯入「IIS」Log 數據

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」欄位 會出現「兩筆」檔案名稱