S小魚仔S 網誌搜尋

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 )
PS. 使用「Win Scp」工具,即可登入下載

載入「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 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 定序