最近有人介紹了一間公司
http://www.youstar.com.tw/
跟我說是使用opensource來協助客戶解決問題的公司
其實opensource並不反商
但重點是如果有利用並修改的opensouce的程式碼
同樣也必須opensource
台灣就有廠商廠被告過
不過我在想這個要怎麼生存下去
裡面有放了簡報檔 介紹了不少軟体
有些是目前就有在用 有些是之前測過但覺得並不好用
也有些我認為還不錯的軟体 卻沒有介紹
今天測了一下duplicati
覺得真的不錯
跨平台
而且支援備分到相當多的目的地 除了一般的網芳 ftp sftp外
包括各大雲端空間都支援
還支援上傳檔案加密
排程備分
差異備分
差異備分點還原
windows安裝必須要先裝 .net 4.5
程式裝好後本身並沒有管理程式
必須使用browser 開 http://127.0.0.1:8200 進入管理介面
另外使用ie開管理介面會看不到
建議使用別的browser
畫面如下
功能就不一一介紹了 自己玩玩看
如果在ubuntu上
可以直接使用
sudo apt install dupclicati
安裝
裝好後要記得
sudo systemctl start dupclicati
sudo systemctl enable dupclicati
如果是裝在server上
因為本身沒有browser
可以用ssh建立通道
ssh user@example.com -L 8200:localhost:8200
然後再使用local的browser 打開 http://127.0.0.1:8200 即可
平常把檔案備分好
萬一被加密軟体加密了
只要回復回來就好
2017/05/10
之前在centos上執行python的cgi都沒問題
但移植到ubuntu 16.04上後一直出現如下的error
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 210, in execute
query = query % args
TypeError: not all arguments converted during string formatting
程式完全一樣都沒改啊
google了半天 才解決問題
差異如下
ubuntu 16.04
sql = "delete from abc where ip=%s"
cursor.execute(sql, [ip])
變數一定要用 [ ] 包住
centos 7
sql = "delete from abc where ip=%s"
cursor.execute(sql, ip)
http://stackoverflow.com/questions/21740359/python-mysqldb-typeerror-not-all-arguments-converted-during-string-formatting
但移植到ubuntu 16.04上後一直出現如下的error
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 210, in execute
query = query % args
TypeError: not all arguments converted during string formatting
程式完全一樣都沒改啊
google了半天 才解決問題
差異如下
ubuntu 16.04
sql = "delete from abc where ip=%s"
cursor.execute(sql, [ip])
變數一定要用 [ ] 包住
centos 7
sql = "delete from abc where ip=%s"
cursor.execute(sql, ip)
http://stackoverflow.com/questions/21740359/python-mysqldb-typeerror-not-all-arguments-converted-during-string-formatting
2017/05/09
2017/05/08
cacti從過年後就一直升級
今天又升到1.1.6了
本來是跑在ubuntu 14.04上
因為之前升過一次有問題
所以放著一直沒去動
不過最近查了一下 centos 的 epel有放進去了
用yum應該很方便 而且維護也比較簡單
轉過去沒啥大問題
mariadb的參數要做些調整 還要設定時區
在install的Pre-installation Checks頁面中有提到
再來就是碰到二個問題
一個就是本來有寫一些用來撈資料的script 放在/root
然後再ln到cacti的目錄
但這個版本使用上會有問題
所以只好把這些script直接copy到/usr/share/cacti/scripts裡
copy完後記得要rebuild poller cache才會生效
另一個問題比較奇怪
本來有利用snmp從ruckus的controller上撈線上人數
但轉到新版後圖出不來了
但aruba沒問題
可是用snmpwalk去撈又能拿到資料
看了設定也沒錯
最後
在config把snmp改成v1
就............好...............了
先醬
跑看看
目前polling一次時間大約15秒內
今天又升到1.1.6了
本來是跑在ubuntu 14.04上
因為之前升過一次有問題
所以放著一直沒去動
不過最近查了一下 centos 的 epel有放進去了
用yum應該很方便 而且維護也比較簡單
轉過去沒啥大問題
mariadb的參數要做些調整 還要設定時區
在install的Pre-installation Checks頁面中有提到
再來就是碰到二個問題
一個就是本來有寫一些用來撈資料的script 放在/root
然後再ln到cacti的目錄
但這個版本使用上會有問題
所以只好把這些script直接copy到/usr/share/cacti/scripts裡
copy完後記得要rebuild poller cache才會生效
另一個問題比較奇怪
本來有利用snmp從ruckus的controller上撈線上人數
但轉到新版後圖出不來了
但aruba沒問題
可是用snmpwalk去撈又能拿到資料
看了設定也沒錯
最後
在config把snmp改成v1
就............好...............了
先醬
跑看看
目前polling一次時間大約15秒內
2017/05/04
2017/04/27
2017/04/20
今天中午左右
忽然一堆服務都失效
本來以為是机器當机
想不到情況更糟糕
raid card死了
第一個想法就是把昨天晚上備份回復到另一台proxmox
當recover 做完後才想到
在正常的机器上應該有出問題那台的所有guest config
所以應該是把config 移過來
然後直接boot就好了
這樣也不會loss晚上到中午這段時間的資料
路徑在
/etc/pve/nodes/proxmox159/qemu-server
^^^^^^^^^^^
出問題的主机名稱
在正常的机器上下指令
mv /etc/pve/nodes/proxmox159/qemu-server/* /etc/pve/qemu-server/
之後再從管理介面或下指令boot即可
操作時有可能會出現
TASK ERROR: cluster not ready – no quorum?
或無法mv的情況
因為節點之間網路的斷線,集叢中節點數量低於2時,集叢就會被鎖住
此時要下指令
pvecm expected 1
讓集叢改為只期待1個節點正常運作
這樣就可以操作了
http://blog.pulipuli.info/2014/08/proxmox-ve-fix-proxmox-ve-cluster-not.html
忽然一堆服務都失效
本來以為是机器當机
想不到情況更糟糕
raid card死了
第一個想法就是把昨天晚上備份回復到另一台proxmox
當recover 做完後才想到
在正常的机器上應該有出問題那台的所有guest config
所以應該是把config 移過來
然後直接boot就好了
這樣也不會loss晚上到中午這段時間的資料
路徑在
/etc/pve/nodes/proxmox159/qemu-server
^^^^^^^^^^^
出問題的主机名稱
在正常的机器上下指令
mv /etc/pve/nodes/proxmox159/qemu-server/* /etc/pve/qemu-server/
之後再從管理介面或下指令boot即可
操作時有可能會出現
TASK ERROR: cluster not ready – no quorum?
或無法mv的情況
因為節點之間網路的斷線,集叢中節點數量低於2時,集叢就會被鎖住
此時要下指令
pvecm expected 1
讓集叢改為只期待1個節點正常運作
這樣就可以操作了
http://blog.pulipuli.info/2014/08/proxmox-ve-fix-proxmox-ve-cluster-not.html
2017/04/07
2017/04/05
今天早上登入graylog時出現了通知訊息
有新版
立馬進行更新
可是更新完出現几個問題
一個是 elasticsearch 的message出現暴量
導致graylog預設的Disk Journal (1G)也爆了 所以到config先調大為5G 等消化完再看看要不要調回來
第二個問題是forti的log几乎全部不見了
這很奇怪
之前的几次更新並沒有出現這個問題
找了一下官方的blog看到從這一版開始直接支援fortiget的log
而且在少數出現的log裡也看到欄位被辨認出來
這個不錯 雖然很吃資源
但卻只有出現少數几條log
畫面右上的 in/out message也一直有值
用tcpdump去捉封包也沒問題
看來應該是syslog4j有bug了
只能先試一下進forti改一下丟log的方式
先把log調到之前有開的tcp port
可是並沒有出現
於是再syslog上再開另一個udp port
再改一下forti的設定
終於可以了
先醬用吧
2017/04/03
graylog支援利用ip在地圖上顯示的功能
記錄一下要使用之前所需的config
1. 首先要下載geoip的data 因為用ova安裝的graylog 預設並沒有提供這個檔案
http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
解開後放在/etc/graylog/server/
重啟graylog
此時再搜尋 就會在搜尋結果看到多出有關Geo的結果
在搜尋畫面的左方
點下World map 之後就會在搜尋畫面上方出珼地圖
http://docs.graylog.org/en/2.2/pages/geolocation.html#configure-message-processor
http://docs.graylog.org/en/2.2/pages/extractors.html#
https://dev.maxmind.com/geoip/geoip2/geolite2/
記錄一下要使用之前所需的config
1. 首先要下載geoip的data 因為用ova安裝的graylog 預設並沒有提供這個檔案
http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
解開後放在/etc/graylog/server/
2. 在管理介面上 system - configurations
調整Message Processors Configuration
把 GeoIP Resolver的順序調到最下面
3. 搜尋一筆滿足要求的資料來create Extractors 使用 Grok pattern
依照所需的條件進行處理 如下範例
srcip=%{IP:srcip}
此時再搜尋 就會在搜尋結果看到多出有關Geo的結果
在搜尋畫面的左方
點下World map 之後就會在搜尋畫面上方出珼地圖
http://docs.graylog.org/en/2.2/pages/geolocation.html#configure-message-processor
http://docs.graylog.org/en/2.2/pages/extractors.html#
https://dev.maxmind.com/geoip/geoip2/geolite2/
2017/03/22
最近几天在ubuntu上設定rsyslog
發現如果使用udp的設定
都沒辦法轉送出去到外部的log server
使用tcp就沒問題
設定方式只要修改
/etc/rsyslog.d/50-default.conf
加上
*.* @@1.2.3.4:5555 使用@@表示TCP
或
*.* @1.2.3.4:514 使用@表示UDP 用UDP一直無法成功 沒找到原因
設定好後
systemctl restart rsyslog
https://vexxhost.com/resources/tutorials/how-to-setup-remote-system-logging-with-rsyslog-on-ubuntu-14-04-lts/
發現如果使用udp的設定
都沒辦法轉送出去到外部的log server
使用tcp就沒問題
設定方式只要修改
/etc/rsyslog.d/50-default.conf
加上
*.* @@1.2.3.4:5555 使用@@表示TCP
或
*.* @1.2.3.4:514 使用@表示UDP 用UDP一直無法成功 沒找到原因
設定好後
systemctl restart rsyslog
https://vexxhost.com/resources/tutorials/how-to-setup-remote-system-logging-with-rsyslog-on-ubuntu-14-04-lts/
2017/03/18
目前使用4.4.0-62的kernel
但一直發生只要更新kernel就開不了机的情況
一直到目前的 4.4.0-67都一樣
查了半天才知道是一個bug
而且好像是只要使用usb wifi就會發生
看來還是只能停在4.4.0-62
繼續等了
https://bugs.launchpad.net/linuxmint/+bug/1666615
但一直發生只要更新kernel就開不了机的情況
一直到目前的 4.4.0-67都一樣
查了半天才知道是一個bug
而且好像是只要使用usb wifi就會發生
看來還是只能停在4.4.0-62
繼續等了
https://bugs.launchpad.net/linuxmint/+bug/1666615
2017/03/14
2017/03/10
graylog 在search 中 * 及 ? 的使用必須以獨立單字為為主
以下方的log舉例
Jan 9 20:10:37 192.168.101.253 System: Fan 1 (from left when facing right side), failed
如果我要找出這個訊息
就必須使用下列的語法
f?n AND f*d
或
f*n AND f????d
不能使用 f*d 這樣會找不到資料
ip的範圍搜尋使用
[192.168.0.0 TO 192.168.254.254]
但有時會出現不相關的資料
此時就要使用
message:[192.168.0.0 TO 192.168.254.254]
^^^^^^^
field的名稱
可依需求更改
以下方的log舉例
Jan 9 20:10:37 192.168.101.253 System: Fan 1 (from left when facing right side), failed
如果我要找出這個訊息
就必須使用下列的語法
f?n AND f*d
或
f*n AND f????d
不能使用 f*d 這樣會找不到資料
ip的範圍搜尋使用
[192.168.0.0 TO 192.168.254.254]
但有時會出現不相關的資料
此時就要使用
message:[192.168.0.0 TO 192.168.254.254]
^^^^^^^
field的名稱
可依需求更改
graylog除了可以從console操作外
還提供了方便的REST API
讓使用者可以方便的使用文字介面 curl 就可以操作
所有提供的資料及相關語法
可以從管理介面得知
從右上角的目前message流量點入後就可以在畫面右方看到API BROWSER
以關鍵字搜尋為例
先在畫面上找到
Search/Keyword : Message search
再來點下List Operations
再點Message search with keyword as timerange
就會出現如下的畫面
有三個必填欄位
query 是關鍵字 可以使用 AND NOT OR 跟管理介面搜尋相同
keyword是時間 使用 relative 如 last 1 day 等
filelds是 欄位 使用message
填好後按下 Try it out!
接下來會問帳號密碼
打完送出後就會得到結果了
系統會給一個Request URL
可以複制起來 之後只要修改相關參數就可以直接在程式上使用
http://1.2.3.4:9000/api/search/universal/keyword?query=success%20&keyword=Last%205%20minutes&fields=message
還提供了方便的REST API
讓使用者可以方便的使用文字介面 curl 就可以操作
所有提供的資料及相關語法
可以從管理介面得知
從右上角的目前message流量點入後就可以在畫面右方看到API BROWSER
以關鍵字搜尋為例
先在畫面上找到
Search/Keyword : Message search
再來點下List Operations
再點Message search with keyword as timerange
就會出現如下的畫面
有三個必填欄位
query 是關鍵字 可以使用 AND NOT OR 跟管理介面搜尋相同
keyword是時間 使用 relative 如 last 1 day 等
filelds是 欄位 使用message
填好後按下 Try it out!
接下來會問帳號密碼
打完送出後就會得到結果了
系統會給一個Request URL
可以複制起來 之後只要修改相關參數就可以直接在程式上使用
http://1.2.3.4:9000/api/search/universal/keyword?query=success%20&keyword=Last%205%20minutes&fields=message
使用curl範例如下
curl -u username:password -H 'Accept: application/json' -X GET 'http://1.2.3.4:9000/api/search/universal/keyword?query=%22success%22&keyword=last%201%20hour&fields=message'
方便使用者不進web介面就可以搜尋
但要修改時網址的傳值必須使用ascii 16進位 要留意
底下列出參考表及轉換網址
2017/03/09
之前提到如果要把windows的log丟到syslog上
可以使用evtsys
因為最近玩graylog
官網上有介紹nxlog這個工具
不只是windows可以用 linux, android都有支援 而且還有在更新維護
先來玩一下 windows
找了一台win 10 x32來裝
安裝過程沒什麼問題
裝完後要手動去改config file
路徑在
C:\Program Files\nxlog\conf\nxlog.conf
或
C:\Program Files (x86)\nxlog\conf\nxlog.conf
修改後內容如下
<Output out>
Module om_udp (預設為tcp 視需求修改)
Host 1.1.1.1 (依需求修改)
Port 514
# Exec to_syslog_snare(); (此行預設打開 但無法傳資料 註解後就正常了)
</Output>
再來就是到服務把nxlog啟動
應該就可以在syslog上看到訊息了
如果有問題 可以check一下log
C:\Program Files\nxlog\data\nxlog.log
或
C:\Program Files (x86)\nxlog\data\nxlog.log
http://www.ilanni.com/?p=595
可以使用evtsys
因為最近玩graylog
官網上有介紹nxlog這個工具
不只是windows可以用 linux, android都有支援 而且還有在更新維護
先來玩一下 windows
找了一台win 10 x32來裝
安裝過程沒什麼問題
裝完後要手動去改config file
路徑在
C:\Program Files\nxlog\conf\nxlog.conf
或
C:\Program Files (x86)\nxlog\conf\nxlog.conf
修改後內容如下
<Output out>
Module om_udp (預設為tcp 視需求修改)
Host 1.1.1.1 (依需求修改)
Port 514
# Exec to_syslog_snare(); (此行預設打開 但無法傳資料 註解後就正常了)
</Output>
再來就是到服務把nxlog啟動
應該就可以在syslog上看到訊息了
如果有問題 可以check一下log
C:\Program Files\nxlog\data\nxlog.log
或
C:\Program Files (x86)\nxlog\data\nxlog.log
http://www.ilanni.com/?p=595
2017/03/08
graylog2 announce了和splunk整合的功能
https://www.graylog.org/blog/19-graylog-splunk-integration-is-now-here
說整合也不太像 說白了就是過濾一些重要的資料再往splunk丟
因為如果是使用splunk免費版本的話一天只有500MB可以用
先由graylog2過濾的話就可省下不少的空間
利用的就是stream這個功能
不過我目前並不打算把log再丟到splunk
而且打算利用stream過濾一些異常的訊息
當發生狀況時發mail通知管理者
首先要先把發信功能打開
在graylog.conf內找到下列几行並依不同狀況進行修改
transport_email_enabled = true
transport_email_hostname = 1.2.3.4
transport_email_port = 25
transport_email_use_auth = false
transport_email_use_tls = false
transport_email_use_ssl = false
transport_email_auth_username =
transport_email_auth_password =
transport_email_subject_prefix = [graylog]
transport_email_from_email =
transport_email_web_interface_url = http://12.34.56.78
改完後重啟
接下來在web介面上操作
在stream上新增一個stream
接下來才是重點就是要manage rules
假設我想要找認証成功的user
也就是在message裡要包含 authentication 和 success 二個關鍵字
在manage rules不能寫在一起 否則會找不到 必須要分開成二筆rule
Field使用的就是message
Type要使用contain 不建議使用 match 或其他 有時會找不到
value就使用關鍵字
分別建立完成後就會有二筆rule
視需求是要符合全部或單一符合
設定後一定要進行測試
測試的方法就是利用我們的關鍵字進行search
得到結果後展開點一下右上方的 test against stream 選取設定的stream
測試成功會出現如下圖的訊息

再來就要設定alert了
首先新增一個alert condition 選取 stream跟condition type
接著設定觸發的次數及相關情況及是否要重覆寄送
再來新增一個alert notification
接著設定要寄送的相關訊息
最後要enable stream
設定完成後可以先寄送一封test mail
接下來如果有觸發就會收到mail了
mail並不會有完整的message內容 只是進行通知
必須要進到管理介面看
https://www.graylog.org/blog/19-graylog-splunk-integration-is-now-here
說整合也不太像 說白了就是過濾一些重要的資料再往splunk丟
因為如果是使用splunk免費版本的話一天只有500MB可以用
先由graylog2過濾的話就可省下不少的空間
利用的就是stream這個功能
不過我目前並不打算把log再丟到splunk
而且打算利用stream過濾一些異常的訊息
當發生狀況時發mail通知管理者
首先要先把發信功能打開
在graylog.conf內找到下列几行並依不同狀況進行修改
transport_email_enabled = true
transport_email_hostname = 1.2.3.4
transport_email_port = 25
transport_email_use_auth = false
transport_email_use_tls = false
transport_email_use_ssl = false
transport_email_auth_username =
transport_email_auth_password =
transport_email_subject_prefix = [graylog]
transport_email_from_email =
transport_email_web_interface_url = http://12.34.56.78
改完後重啟
接下來在web介面上操作
在stream上新增一個stream
接下來才是重點就是要manage rules
假設我想要找認証成功的user
也就是在message裡要包含 authentication 和 success 二個關鍵字
在manage rules不能寫在一起 否則會找不到 必須要分開成二筆rule
Field使用的就是message
Type要使用contain 不建議使用 match 或其他 有時會找不到
value就使用關鍵字
分別建立完成後就會有二筆rule
視需求是要符合全部或單一符合
設定後一定要進行測試
測試的方法就是利用我們的關鍵字進行search
得到結果後展開點一下右上方的 test against stream 選取設定的stream
測試成功會出現如下圖的訊息

再來就要設定alert了
首先新增一個alert condition 選取 stream跟condition type
接著設定觸發的次數及相關情況及是否要重覆寄送
再來新增一個alert notification
接著設定要寄送的相關訊息
最後要enable stream
設定完成後可以先寄送一封test mail
接下來如果有觸發就會收到mail了
mail並不會有完整的message內容 只是進行通知
必須要進到管理介面看
2017/03/04
之前提到graylog如果要把別机器log file的資料丟過來
要另外裝軟体
今天想到一個方法
使用tail -f 加上nc 就可以解決了
首先在graylog上新增一個input
sytem/inputs - inputs 選擇 Raw/Plaintext TCP
選擇node 在title上給一個名字 再來指定port 再來save就可以了
之後再要傳送log的server上使用
tail -F /var/log/messages | nc 1.1.1.1 6666
必須使用 -F 否則logrotate後就不會再送資料了
1.1.1.1為graylog的ip
6666為上一步驟所指定的port
這樣資料就進來了
只是有個問題 如果graylog重開 nc就會斷掉了
因此寫了一個shell來開机執行
#!/bin/bash
#check graylog data send every 5 secs
while [ true ]
do
sleep 5
ps -ef|grep 1.1.1.1|grep -v grep || /usr/bin/tail -F /var/log/messages | /usr/bin/nc 1.1.1.1 6666
done
每5秒檢查一次 如果有問題就重下指令
要另外裝軟体
今天想到一個方法
使用tail -f 加上nc 就可以解決了
首先在graylog上新增一個input
sytem/inputs - inputs 選擇 Raw/Plaintext TCP
選擇node 在title上給一個名字 再來指定port 再來save就可以了
之後再要傳送log的server上使用
tail -F /var/log/messages | nc 1.1.1.1 6666
必須使用 -F 否則logrotate後就不會再送資料了
1.1.1.1為graylog的ip
6666為上一步驟所指定的port
這樣資料就進來了
只是有個問題 如果graylog重開 nc就會斷掉了
因此寫了一個shell來開机執行
#!/bin/bash
#check graylog data send every 5 secs
while [ true ]
do
sleep 5
ps -ef|grep 1.1.1.1|grep -v grep || /usr/bin/tail -F /var/log/messages | /usr/bin/nc 1.1.1.1 6666
done
每5秒檢查一次 如果有問題就重下指令
2017/03/02
近來發現一個proxmox備份的問題
就是當guest os的hd過大時(目前觀察是500G以上)
若備分使用壓縮往往會不成功
尤其是在備分設備只支援1G的環境下
而且都是備分到一半guest os就不正常關机了 (進度不一定)
log如下
110: Feb 28 00:42:37 INFO: status: 51% (127682347008/250059350016), sparse 23% (59749072896), duration 994, 238/225 MB/s
110: Feb 28 00:42:50 INFO: status: 52% (130099838976/250059350016), sparse 23% (59900887040), duration 1007, 185/174 MB/s
110: Feb 28 00:44:06 INFO: status: 53% (132779606016/250059350016), sparse 24% (60026957824), duration 1083, 35/33 MB/s
110: Feb 28 00:44:32 INFO: status: 54% (135066157056/250059350016), sparse 24% (60116475904), duration 1109, 87/84 MB/s
110: Feb 28 00:44:40 INFO: status: 55% (137644998656/250059350016), sparse 24% (60216111104), duration 1117, 322/309 MB/s
110: Feb 28 00:44:53 INFO: status: 56% (140127109120/250059350016), sparse 24% (60333727744), duration 1130, 190/181 MB/s
110: Feb 28 00:46:30 ERROR: VM 110 not running
110: Feb 28 00:46:30 INFO: aborting backup job
110: Feb 28 00:46:30 ERROR: VM 110 not running
110: Feb 28 00:46:37 ERROR: Backup of VM 110 failed - VM 110 not running
但在10G的情況到目前為止沒發現問題
找了一下forum有一些人反應這個問題
但好像沒有啥解法
目前看來就二個方法
1. 不要使用壓縮備分(備分出來的檔案會比較大)
2. 把所有設備升級到10G
就是當guest os的hd過大時(目前觀察是500G以上)
若備分使用壓縮往往會不成功
尤其是在備分設備只支援1G的環境下
而且都是備分到一半guest os就不正常關机了 (進度不一定)
log如下
110: Feb 28 00:42:37 INFO: status: 51% (127682347008/250059350016), sparse 23% (59749072896), duration 994, 238/225 MB/s
110: Feb 28 00:42:50 INFO: status: 52% (130099838976/250059350016), sparse 23% (59900887040), duration 1007, 185/174 MB/s
110: Feb 28 00:44:06 INFO: status: 53% (132779606016/250059350016), sparse 24% (60026957824), duration 1083, 35/33 MB/s
110: Feb 28 00:44:32 INFO: status: 54% (135066157056/250059350016), sparse 24% (60116475904), duration 1109, 87/84 MB/s
110: Feb 28 00:44:40 INFO: status: 55% (137644998656/250059350016), sparse 24% (60216111104), duration 1117, 322/309 MB/s
110: Feb 28 00:44:53 INFO: status: 56% (140127109120/250059350016), sparse 24% (60333727744), duration 1130, 190/181 MB/s
110: Feb 28 00:46:30 ERROR: VM 110 not running
110: Feb 28 00:46:30 INFO: aborting backup job
110: Feb 28 00:46:30 ERROR: VM 110 not running
110: Feb 28 00:46:37 ERROR: Backup of VM 110 failed - VM 110 not running
找了一下forum有一些人反應這個問題
但好像沒有啥解法
目前看來就二個方法
1. 不要使用壓縮備分(備分出來的檔案會比較大)
2. 把所有設備升級到10G
2017/02/23
proxmox 因為是重新安裝更新到4.4
所以沒有把原來的user跟權限帶過來
今天有机器的管理者反應無法登入
才發現忘了加回去
但在操作的過程中發現
目前4.4版在管理介面上雖然可以新增group
但卻沒辦法把role assign到group去
之前在3版時是可以醬操作沒問題的
找了相關文件
目前看來是要用指令來操作
pveum
如果只要授權只能管理guest而無法操作host管理介面
指令如下
pveum aclmod /vms -user joe@pve -role PVEVMUser
相關文件如下
但4版後有些role的名稱不一樣了 要注意
http://pve.proxmox.com/wiki/User_Management#pveum_permission_management
所以沒有把原來的user跟權限帶過來
今天有机器的管理者反應無法登入
才發現忘了加回去
但在操作的過程中發現
目前4.4版在管理介面上雖然可以新增group
但卻沒辦法把role assign到group去
之前在3版時是可以醬操作沒問題的
找了相關文件
目前看來是要用指令來操作
pveum
如果只要授權只能管理guest而無法操作host管理介面
指令如下
pveum aclmod /vms -user joe@pve -role PVEVMUser
但4版後有些role的名稱不一樣了 要注意
http://pve.proxmox.com/wiki/User_Management#pveum_permission_management
2017/02/21
之前裝了graylog起來用
今天在管理介面上出現有新版的訊息
依据官網的說明進行升級
記得在升級前要備分一下目前的config
sudo cp /opt/graylog/conf/graylog.conf /opt/graylog/conf/graylog.conf_bck
升完後有可能config都會回覆成預設值
另一個設定檔
sudo cp /etc/graylog/graylog-settings.json /etc/graylog/graylog-settings.json_bck
$ wget https://packages.graylog2.org/releases/graylog-omnibus/ubuntu/graylog_latest.deb
$ sudo graylog-ctl stop
take snapshot if storage suppport
$ sudo dpkg -G -i graylog_latest.deb
$ sudo graylog-ctl backup-etcd
$ sudo graylog-ctl reconfigure
reconfigure之後要比對一下目前的config跟上面備的的是否不同再進行修正
$ sudo reboot
升完重開後發現時間又不對了 config裡好像只有密碼不變
其他都恢復成預設值了
再依照之前的記錄修正config及os的時區
目前看來運作ok
http://docs.graylog.org/en/2.2/pages/configuration/graylog_ctl.html#upgrade-graylog-omnibus
今天在管理介面上出現有新版的訊息
依据官網的說明進行升級
記得在升級前要備分一下目前的config
sudo cp /opt/graylog/conf/graylog.conf /opt/graylog/conf/graylog.conf_bck
升完後有可能config都會回覆成預設值
另一個設定檔
sudo cp /etc/graylog/graylog-settings.json /etc/graylog/graylog-settings.json_bck
$ wget https://packages.graylog2.org/releases/graylog-omnibus/ubuntu/graylog_latest.deb
$ sudo graylog-ctl stop
take snapshot if storage suppport
$ sudo dpkg -G -i graylog_latest.deb
$ sudo graylog-ctl backup-etcd
$ sudo graylog-ctl reconfigure
reconfigure之後要比對一下目前的config跟上面備的的是否不同再進行修正
$ sudo reboot
升完重開後發現時間又不對了 config裡好像只有密碼不變
其他都恢復成預設值了
再依照之前的記錄修正config及os的時區
目前看來運作ok
http://docs.graylog.org/en/2.2/pages/configuration/graylog_ctl.html#upgrade-graylog-omnibus
前一陣子升級proxmox後發生一個問題
原來使用的hp storage連不上了
找了半天才發現因為proxmox新server的
initiatorname 不同了
在hp cmc上修改後連線就正常了
但連上後發現另一個問題就是裡面還殘留升級前的檔案
因為升級後已經先搬到server的肚子
所以這些檔案就變成占空間的垃圾
而且也無法從管理介面上刪除
要用指令刪除
先用 lvdisplay 找出有那些不用的image
再使用 lvremove 刪除
lvremove /dev/test/vm-121-disk-1
https://forum.proxmox.com/threads/remove-disk-images-from-lvm.10215/
原來使用的hp storage連不上了
找了半天才發現因為proxmox新server的
initiatorname 不同了
在hp cmc上修改後連線就正常了
但連上後發現另一個問題就是裡面還殘留升級前的檔案
因為升級後已經先搬到server的肚子
所以這些檔案就變成占空間的垃圾
而且也無法從管理介面上刪除
要用指令刪除
先用 lvdisplay 找出有那些不用的image
再使用 lvremove 刪除
lvremove /dev/test/vm-121-disk-1
2017/02/11
今天朋友介紹graylog
稍微google了一下
看來跟之前學過的ELK是差不多的東西
都是log管理的
不過之前在上ELK課的時候安裝有點複雜
想說還是繼續用splunk好了
不過graylog網站上就直接有ova可以下來用
不用再自己花時間裝 滿方便的
現在好像愈來愈多的軟体都醬做了
省得user安裝的麻煩
於是下載回來稍微玩了一下
ovf的os是用ubuntu 登入後記得改一下密碼
另外要改的是時區 預設使用的是UTC 記得改為自己的時區
sudo cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime
再來就是要改graylog的config了
因為web介面上都不能改
路徑在
/opt/graylog/conf/graylog.conf
改web登入密碼
說明是要用shasum來hash
產生後直接複制貼上
# Create one by using for example: echo -n yourpassword | shasum -a 256
# and put the resulting hash value into the following line
root_password_sha2 = 895027ffec7981a554a916e76676677ee0d5da8bf35ff1ba7f15362e35a9781a
再來改時區 參考以下連結
http://www.joda.org/joda-time/timezones.html
root_timezone = Asia/Taipei
最後改一下搜尋結果顯示高亮
allow_highlighting = true
預設會有一支java起在 udp 514來收syslog
只要在其他設備上設定往這台丟就好了
至於如果要直接吃進file的內容
在splunk是只要直接設定就好了
但graylog比較麻煩
必須要再安裝 Collector Sidecar (支援由其他的机器丟至graylog)
裝好後先修改config file
/etc/graylog/collector-sidecar/collector_sidecar.yml
把tag的地方全部mark
tags:
# - linux
# - apache
然後再設定
操作流程請參考官方文件
http://docs.graylog.org/en/2.1/pages/collector_sidecar.html#graylog-collector-sidecar
http://docs.graylog.org/en/2.1/pages/sending_data.html
要注意的是input file 好像不能使用* 要一個一個指定
當log量大但hd容量不夠想限制儲存天數時
在管理介面上 system - indices - Edit
調整數量
在graylog.conf加上以下參數(依需求而定)
elasticsearch_max_time_per_index = 1d
elasticsearch_max_number_of_indices = 180
retention_strategy = delete
https://www.digitalocean.com/community/questions/how-to-config-graylog-data-save-days
目前使用起來感覺跟splunk差不多
不過splunk還是快一點
只是splunk免費版有每天500MB的限制就是了
如果有大量log需求又不想花錢
可以考慮看看
稍微google了一下
看來跟之前學過的ELK是差不多的東西
都是log管理的
不過之前在上ELK課的時候安裝有點複雜
想說還是繼續用splunk好了
不過graylog網站上就直接有ova可以下來用
不用再自己花時間裝 滿方便的
現在好像愈來愈多的軟体都醬做了
省得user安裝的麻煩
於是下載回來稍微玩了一下
ovf的os是用ubuntu 登入後記得改一下密碼
另外要改的是時區 預設使用的是UTC 記得改為自己的時區
sudo cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime
再來就是要改graylog的config了
因為web介面上都不能改
路徑在
/opt/graylog/conf/graylog.conf
改web登入密碼
說明是要用shasum來hash
產生後直接複制貼上
# Create one by using for example: echo -n yourpassword | shasum -a 256
# and put the resulting hash value into the following line
root_password_sha2 = 895027ffec7981a554a916e76676677ee0d5da8bf35ff1ba7f15362e35a9781a
再來改時區 參考以下連結
http://www.joda.org/joda-time/timezones.html
root_timezone = Asia/Taipei
最後改一下搜尋結果顯示高亮
allow_highlighting = true
預設會有一支java起在 udp 514來收syslog
只要在其他設備上設定往這台丟就好了
至於如果要直接吃進file的內容
在splunk是只要直接設定就好了
但graylog比較麻煩
必須要再安裝 Collector Sidecar (支援由其他的机器丟至graylog)
裝好後先修改config file
/etc/graylog/collector-sidecar/collector_sidecar.yml
把tag的地方全部mark
tags:
# - linux
# - apache
然後再設定
操作流程請參考官方文件
http://docs.graylog.org/en/2.1/pages/collector_sidecar.html#graylog-collector-sidecar
http://docs.graylog.org/en/2.1/pages/sending_data.html
要注意的是input file 好像不能使用* 要一個一個指定
當log量大但hd容量不夠想限制儲存天數時
在管理介面上 system - indices - Edit
調整數量
https://www.digitalocean.com/community/questions/how-to-config-graylog-data-save-days
目前使用起來感覺跟splunk差不多
不過splunk還是快一點
只是splunk免費版有每天500MB的限制就是了
如果有大量log需求又不想花錢
可以考慮看看
2017/02/10
2017/01/24
今天要在ubuntu 16.04 上使用teamview時 直接下載 執行檔來執行
解開執行後出現如下的錯誤
/tmp/tv_bin/script/tvw_exec_legacy: line 9: /tmp/tv_bin/wine/bin/wineserver: 沒有此一檔案或目錄
/tmp/tv_bin/script/tvw_exec: line 48: /tmp/tv_bin/teamviewerd: 沒有此一檔案或目錄
檢查了一下 明明檔案都有
依照官方的說明下指令檢查看看
./tv-setup checklibs
結果出現
Your system probably does not support 32 bit binaries (yet).
If you are on a 64 bit Intel/AMD system, you might need to install
initial 32 bit support by installing a basic 32 bit package, for example:
apt-get install libc6:i386 (DEB multiarch, > ~2012)
apt-get install libc6-i386 ia32-libs (DEB legacy, < ~2012)
yum install glibc.i686 (RPM RedHat)
zypper install glibc.i686 (RPM Suse)
or similar.
解開執行後出現如下的錯誤
/tmp/tv_bin/script/tvw_exec_legacy: line 9: /tmp/tv_bin/wine/bin/wineserver: 沒有此一檔案或目錄
/tmp/tv_bin/script/tvw_exec: line 48: /tmp/tv_bin/teamviewerd: 沒有此一檔案或目錄
檢查了一下 明明檔案都有
依照官方的說明下指令檢查看看
./tv-setup checklibs
結果出現
Your system probably does not support 32 bit binaries (yet).
If you are on a 64 bit Intel/AMD system, you might need to install
initial 32 bit support by installing a basic 32 bit package, for example:
apt-get install libc6:i386 (DEB multiarch, > ~2012)
apt-get install libc6-i386 ia32-libs (DEB legacy, < ~2012)
yum install glibc.i686 (RPM RedHat)
zypper install glibc.i686 (RPM Suse)
or similar.
原來teamview的linux版本不支援x64的os
必須補上x32的library
除了libc6:i386 還有以下
libdbus-1-3:i386 libasound2:i386 libexpat1:i386 libfontconfig1:i386 libfreetype6:i386 libjpeg62:i386 libpng12-0:i386 libsm6:i386 libxdamage1:i386 libxext6:i386 libxfixes3:i386 libxinerama1:i386 libxrandr2:i386 libxrender1:i386 libxtst6:i386 zlib1g:i386
全部補好後再執行就ok了
官方提供的deb檔也只有x32的版本
暫時先醬
只能再等看看什麼時候能支援x64了
2017/01/19
半年一次弱掃時間又到了
果不其然
又出問題了
使用半年前的vm 掃到一半就當機 強制重開後竟然連用都不能用了
只好再到kali linux重捉一次
之前是都捉virtualbox的image來用
這次想把她轉到proxmox 所以捉了vmware的image
記錄一下操作的流程
image捉回來後解開有下列檔案
Kali-Linux-Light-2016.2-vm-amd64.nvram Kali-Linux-Light-2016.2-vm-amd64-s007.vmdk
Kali-Linux-Light-2016.2-vm-amd64-s001.vmdk Kali-Linux-Light-2016.2-vm-amd64-s008.vmdk
Kali-Linux-Light-2016.2-vm-amd64-s002.vmdk Kali-Linux-Light-2016.2-vm-amd64.vmdk
Kali-Linux-Light-2016.2-vm-amd64-s003.vmdk Kali-Linux-Light-2016.2-vm-amd64.vmsd
Kali-Linux-Light-2016.2-vm-amd64-s004.vmdk Kali-Linux-Light-2016.2-vm-amd64.vmx
Kali-Linux-Light-2016.2-vm-amd64-s005.vmdk Kali-Linux-Light-2016.2-vm-amd64.vmxf
Kali-Linux-Light-2016.2-vm-amd64-s006.vmdk
首先就是要把vmdk合併並轉成raw檔
只要下一個指令就可以完成 會自動合併所有的vmdk檔
qemu-img convert -f vmdk -O raw Kali-Linux-Light-2016.2-vm-amd64.vmdk 123.raw
再來在proxmox上開一個guest os 假設guest id為 123
硬碟要選IDE format要選raw 如下圖所示
開好後修改HD的cache mode為write through
如下圖所示
修改/etc/pve/qemu-server/123.conf裡
ide0: datastore:123/vm-123-disk-1.raw,cache=writethrough
把預設的32G刪除
把之前轉好的123.raw 改名並覆蓋掉vm-123-disk-1.raw
大功告成
果不其然
又出問題了
使用半年前的vm 掃到一半就當機 強制重開後竟然連用都不能用了
只好再到kali linux重捉一次
之前是都捉virtualbox的image來用
這次想把她轉到proxmox 所以捉了vmware的image
記錄一下操作的流程
image捉回來後解開有下列檔案
Kali-Linux-Light-2016.2-vm-amd64.nvram Kali-Linux-Light-2016.2-vm-amd64-s007.vmdk
Kali-Linux-Light-2016.2-vm-amd64-s001.vmdk Kali-Linux-Light-2016.2-vm-amd64-s008.vmdk
Kali-Linux-Light-2016.2-vm-amd64-s002.vmdk Kali-Linux-Light-2016.2-vm-amd64.vmdk
Kali-Linux-Light-2016.2-vm-amd64-s003.vmdk Kali-Linux-Light-2016.2-vm-amd64.vmsd
Kali-Linux-Light-2016.2-vm-amd64-s004.vmdk Kali-Linux-Light-2016.2-vm-amd64.vmx
Kali-Linux-Light-2016.2-vm-amd64-s005.vmdk Kali-Linux-Light-2016.2-vm-amd64.vmxf
Kali-Linux-Light-2016.2-vm-amd64-s006.vmdk
首先就是要把vmdk合併並轉成raw檔
只要下一個指令就可以完成 會自動合併所有的vmdk檔
qemu-img convert -f vmdk -O raw Kali-Linux-Light-2016.2-vm-amd64.vmdk 123.raw
再來在proxmox上開一個guest os 假設guest id為 123
硬碟要選IDE format要選raw 如下圖所示
開好後修改HD的cache mode為write through
如下圖所示
修改/etc/pve/qemu-server/123.conf裡
ide0: datastore:123/vm-123-disk-1.raw,cache=writethrough
把預設的32G刪除
把之前轉好的123.raw 改名並覆蓋掉vm-123-disk-1.raw
大功告成
2017/01/14
去年底進了三台server跟一台網路設備
接上arista 10G switch後都發現有大量的rx error
換了線 gbic 甚至再借了一台hp的10G設備來測都一樣
感覺上應該不是layer1的問題
詢問cisco 6504廠商後才知道10G已經不會去檢查封包內容 只要header正常就會直接forward
因此arista上並沒有看到任何的error
建議捉封包來看看
結果一捉發現以下的問題
cisco 6504送出的DTP(Dynamic Trunking Protocol)封包出現checksum有問題 XD
因為目前也用不到DTP
所以建議先關了
在跟arista對接的cisco port上下指令
switchport nonegotiate
目前已經解決
第一次碰到cisco送出的封包有問題
無言
接上arista 10G switch後都發現有大量的rx error
換了線 gbic 甚至再借了一台hp的10G設備來測都一樣
感覺上應該不是layer1的問題
詢問cisco 6504廠商後才知道10G已經不會去檢查封包內容 只要header正常就會直接forward
因此arista上並沒有看到任何的error
建議捉封包來看看
結果一捉發現以下的問題
cisco 6504送出的DTP(Dynamic Trunking Protocol)封包出現checksum有問題 XD
因為目前也用不到DTP
所以建議先關了
在跟arista對接的cisco port上下指令
switchport nonegotiate
目前已經解決
第一次碰到cisco送出的封包有問題
無言
tcpdump是文字介面下非常好用的捉封包工具
但捉完後不是很好判讀
因此通常會捉完後再使用wireshark
預設只會捉取封包部分內容
IPv4 68 bytes
IPv6 96 bytes
所以要加上 -s0的參數來捉取完整封包
範例如下
tcpdump -i eth0 -s0 -c 10000 -w /tmp/dumpfile
-c 表示捉取几個封包後就結束
-w 表示把捉取封包的內容存檔 可使用wireshark 開啟
https://wiki.wireshark.org/SnapLen
但捉完後不是很好判讀
因此通常會捉完後再使用wireshark
預設只會捉取封包部分內容
IPv4 68 bytes
IPv6 96 bytes
所以要加上 -s0的參數來捉取完整封包
範例如下
tcpdump -i eth0 -s0 -c 10000 -w /tmp/dumpfile
-c 表示捉取几個封包後就結束
-w 表示把捉取封包的內容存檔 可使用wireshark 開啟
https://wiki.wireshark.org/SnapLen
2016/12/30
一直以來snort 啟動時都會出現如下的log
Dec 30 14:35:39 a236 snort[2425]: Encoded Rule Plugin SID: 39634, GID: 3 not registered properly. Disabling this rule.
Dec 30 14:35:39 a236 snort[2425]: Encoded Rule Plugin SID: 38753, GID: 3 not registered properly. Disabling this rule.
Dec 30 14:35:39 a236 snort[2425]: Encoded Rule Plugin SID: 41102, GID: 3 not registered properly. Disabling this rule.
Dec 30 14:35:39 a236 snort[2425]: Encoded Rule Plugin SID: 39634, GID: 3 not registered properly. Disabling this rule.
Dec 30 14:35:39 a236 snort[2425]: Encoded Rule Plugin SID: 38753, GID: 3 not registered properly. Disabling this rule.
Dec 30 14:35:39 a236 snort[2425]: Encoded Rule Plugin SID: 41102, GID: 3 not registered properly. Disabling this rule.
看起來好像就是so_rule沒有load進去
今天找了一下解決的方法
原來是不能直接使用下載回來的更新檔內的so_rule
而是必須要自己再compile一次
做完之後
再改了一下update rule的shell 目前看來是正常
不過
dns的alert好多
2016/12/04
日前把一台有800G HD的linux server 在不停機的狀態下p2v轉到proxmox
記錄一下流程
linux server雖然不停機但是在轉換過程中資料不能有異動
1. 在原server上使用sshfs把proxmox的目錄mount進來
modprobe fuse
sshfs root@10.0.0.1:/mnt/data /mnt/10
2. 使用dd把原server的HD完整複制成一個raw檔
dd if=/dev/cciss/c0d0 of=/mnt/10/www.raw bs=1M
^^^^^^^
這個參數一定要加 加快速度
3. 在proxmox上新開的vm hd要指定為ide 格式為raw
否則開机時會出現kernel panic 無法開機
再來把www.raw更名為已開vm的檔名
4. guest os 要修正 /etc/udev/rules.d/70-persistent-net.rules 網卡編號
視需要修正crontab
在/etc/rc.local加上開机對時
修正後reboot
注意備份路徑
加上proxmox備分
5. 舊机器shutdown
記錄一下流程
linux server雖然不停機但是在轉換過程中資料不能有異動
1. 在原server上使用sshfs把proxmox的目錄mount進來
modprobe fuse
sshfs root@10.0.0.1:/mnt/data /mnt/10
2. 使用dd把原server的HD完整複制成一個raw檔
dd if=/dev/cciss/c0d0 of=/mnt/10/www.raw bs=1M
^^^^^^^
這個參數一定要加 加快速度
3. 在proxmox上新開的vm hd要指定為ide 格式為raw
否則開机時會出現kernel panic 無法開機
再來把www.raw更名為已開vm的檔名
4. guest os 要修正 /etc/udev/rules.d/70-persistent-net.rules 網卡編號
視需要修正crontab
在/etc/rc.local加上開机對時
修正後reboot
注意備份路徑
加上proxmox備分
5. 舊机器shutdown
2016/11/24
在linux shell中常常會需要判斷某個檔案內是否有特定字串
或是某個指令執行有沒有成功
視情況以進行接下來的處理
之前都是用grep把結果導到/tmp
再用test去判斷檔案是否存在
其實也可以用$?來判斷
$?是shell中一個特別的變數
如果上一個指令成功則為0
反之則為1
範例如下
grep error file
[ $? == 0 ] && echo "not ok"
假設file 內有error這個字串
則印出 not ok
http://c.biancheng.net/cpp/view/2739.html
或是某個指令執行有沒有成功
視情況以進行接下來的處理
之前都是用grep把結果導到/tmp
再用test去判斷檔案是否存在
其實也可以用$?來判斷
$?是shell中一個特別的變數
如果上一個指令成功則為0
反之則為1
範例如下
grep error file
[ $? == 0 ] && echo "not ok"
假設file 內有error這個字串
則印出 not ok
http://c.biancheng.net/cpp/view/2739.html
2016/11/21
因為有個單位是使用自行申請的ADSL
近來每天都打電話來說網路被鎖
在想說要不要寫個程式在user開机時把ip傳來同時在黑名單把ip刪掉
先找了一些資料
找出目前使用的ip
curl icanhazip.com
curl ipv4.icanhazip.com
wget -qO- icanhazip.com
在批次檔中使用ftp傳檔
ftp -s:upload.txt
upload.txt內容
open ftp.server.com
user@server.com
userpwd
prompt
cd ftp_upload
mput test.txt
bye
使用python拿到ip並寄出
import urllib2,smtplib,sys
response = urllib2.urlopen('http://icanhazip.com/')
html = response.read()
print html
sender = "test_from_hinet@hinet.net"
receipt = "abc@de.com"
smtp = smtplib.SMTP("168.95.4.10")
header = "Subject: ip \r\n\r\n"
msg = html
smtp.sendmail(sender, receipt, header+msg)
smtp.quit()
http://neochung.com/2015/01/pc/batch-file/windows%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%89%B9%E6%AC%A1%E6%AA%94-bat-%E4%B8%8A%E5%82%B3ftp%E6%AA%94%E6%A1%88/
http://askubuntu.com/questions/95910/command-for-determining-my-public-ip
近來每天都打電話來說網路被鎖
在想說要不要寫個程式在user開机時把ip傳來同時在黑名單把ip刪掉
先找了一些資料
找出目前使用的ip
curl icanhazip.com
curl ipv4.icanhazip.com
wget -qO- icanhazip.com
在批次檔中使用ftp傳檔
ftp -s:upload.txt
upload.txt內容
open ftp.server.com
user@server.com
userpwd
prompt
cd ftp_upload
mput test.txt
bye
使用python拿到ip並寄出
import urllib2,smtplib,sys
response = urllib2.urlopen('http://icanhazip.com/')
html = response.read()
print html
sender = "test_from_hinet@hinet.net"
receipt = "abc@de.com"
smtp = smtplib.SMTP("168.95.4.10")
header = "Subject: ip \r\n\r\n"
msg = html
smtp.sendmail(sender, receipt, header+msg)
smtp.quit()
http://neochung.com/2015/01/pc/batch-file/windows%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%89%B9%E6%AC%A1%E6%AA%94-bat-%E4%B8%8A%E5%82%B3ftp%E6%AA%94%E6%A1%88/
http://askubuntu.com/questions/95910/command-for-determining-my-public-ip
2016/11/10
之前找到一個滿精簡又好用的web mail rainloop
只是每次更新都要再重新設定一次
做一下記錄
把捉回來的zip 解壓到 /var/www/rainloop/
cd /var/www/rainloop/
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chown -R www-data:www-data .
再來進到管理介面進行設定
For example: http://webmail.domain.com/?admin
Default login is "admin", password is "12345".
把預設的google domain取消
http://www.rainloop.net/
只是每次更新都要再重新設定一次
做一下記錄
把捉回來的zip 解壓到 /var/www/rainloop/
cd /var/www/rainloop/
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chown -R www-data:www-data .
再來進到管理介面進行設定
For example: http://webmail.domain.com/?admin
Default login is "admin", password is "12345".
首先更改admin的密碼
再來把常使用的domain設上去把預設的google domain取消
http://www.rainloop.net/
2016/11/08
根据資安要求
每半年要執行一次弱掃
已經改用openvas好几年了
但每次只要更新 就不能用
所以打算直接用 kali linux
把vm下載回來後
調整一下cpu ram及usb
直接boot就可以用了
預設的帳號密碼是 root toor
不管是lite 或完整版預設都沒有裝openvps
要手動安裝 建議下載lite 檔案比較小
apt update
apt install openvas
裝完後執行openvas initial setup 如下圖
完成時系統會自動給一組密碼
再來打開firefox
https://127.0.0.1:9392
登入的帳號為admin
密碼是之前系統給的那組
記得要馬上改掉
目前碰到的問題是只要apt upgrade 整個os 更新
openvas就一定會掛點
所以不建議整個os更新
或是要用時再去捉一次vm回來
另外要掃瞄之前要更新特徵碼
可以從網頁上執行 但看不到進度
或直接下指令
openvas-feed-update
openvas-certdata-sync
openvas-nvt-sync
openvas-scapdata-sync
每半年要執行一次弱掃
已經改用openvas好几年了
但每次只要更新 就不能用
所以打算直接用 kali linux
把vm下載回來後
調整一下cpu ram及usb
直接boot就可以用了
預設的帳號密碼是 root toor
不管是lite 或完整版預設都沒有裝openvps
要手動安裝 建議下載lite 檔案比較小
apt update
apt install openvas
裝完後執行openvas initial setup 如下圖
完成時系統會自動給一組密碼
再來打開firefox
https://127.0.0.1:9392
登入的帳號為admin
密碼是之前系統給的那組
記得要馬上改掉
目前碰到的問題是只要apt upgrade 整個os 更新
openvas就一定會掛點
所以不建議整個os更新
或是要用時再去捉一次vm回來
另外要掃瞄之前要更新特徵碼
可以從網頁上執行 但看不到進度
或直接下指令
openvas-feed-update
openvas-certdata-sync
openvas-nvt-sync
openvas-scapdata-sync
2016/11/07
2016/10/27
在proxmox上裝完win10後發現一個問題
每次關機後開機一定要開二次
第一次一定會不正常關机
找了一下資料
發現應該是 Fast startup的問題
而且win10預設Fast startup 就是on
把她off後就正常了
https://www.reddit.com/r/Windows10/comments/3ixg13/windows_10_longer_boot_times_and_having_to_boot/
http://www.tenforums.com/tutorials/4189-fast-startup-turn-off-windows-10-a.html
每次關機後開機一定要開二次
第一次一定會不正常關机
找了一下資料
發現應該是 Fast startup的問題
而且win10預設Fast startup 就是on
把她off後就正常了
https://www.reddit.com/r/Windows10/comments/3ixg13/windows_10_longer_boot_times_and_having_to_boot/
http://www.tenforums.com/tutorials/4189-fast-startup-turn-off-windows-10-a.html
2016/10/08
為了安全
愈來愈多的網站都改用https的傳輸方式了
Let`s Encrypt提供了一個方便 自動而且免費的方式來達成這個需求
certbot幫助管理者方便的佈署
只要選擇使用的web server及os
就有完整的安裝方式
https://certbot.eff.org/
https://letsencrypt.org/
愈來愈多的網站都改用https的傳輸方式了
Let`s Encrypt提供了一個方便 自動而且免費的方式來達成這個需求
certbot幫助管理者方便的佈署
只要選擇使用的web server及os
就有完整的安裝方式
https://certbot.eff.org/
https://letsencrypt.org/
2016/10/04
之前不久proxmox上的backup出現問題
看了一下log
出現以下的訊息
Sep 13 00:01:57 proxmox78 kernel: [571754.499445] hpsa 0000:05:00.0: scsi 2:1:0:0: resetting logical Direct-Access HP LOGICAL VOLUME RAID-5 SSDSmartPathCap- En- Exp=1
Sep 13 00:02:08 proxmox78 kernel: [571766.276361] hpsa 0000:05:00.0: scsi 2:1:0:0: reset logical completed successfully Direct-Access HP LOGICAL VOLUME RAID-5 SSDSmartPathCap- En- Exp=1
Sep 13 00:05:57 proxmox78 kernel: [571994.368353] hpsa 0000:05:00.0: scsi 2:1:0:0: resetting logical Direct-Access HP LOGICAL VOLUME RAID-5 SSDSmartPathCap- En- Exp=1
Sep 13 00:06:09 proxmox78 kernel: [572007.128671] hpsa 0000:05:00.0: scsi 2:1:0:0: reset logical completed successfully Direct-Access HP LOGICAL VOLUME RAID-5 SSDSmartPathCap- En- Exp=1
再進到ilo去看後
發現以下的狀況
有HD出現smart error了
但面版上並沒有出現異常
也還是可以用
本想說應該不是出現reset的原因
但沒几天
另一台也出現同樣的問題
因為已經過保
也不打算修理
於是把其中一台關掉
把沒問題的HD拿到另一台試看看
到目前已經三週
沒有再出現問題
打電話去HP
HP回覆因為机器已經過保 無法回答問題
真是想罵人
看了一下log
出現以下的訊息
Sep 13 00:01:57 proxmox78 kernel: [571754.499445] hpsa 0000:05:00.0: scsi 2:1:0:0: resetting logical Direct-Access HP LOGICAL VOLUME RAID-5 SSDSmartPathCap- En- Exp=1
Sep 13 00:02:08 proxmox78 kernel: [571766.276361] hpsa 0000:05:00.0: scsi 2:1:0:0: reset logical completed successfully Direct-Access HP LOGICAL VOLUME RAID-5 SSDSmartPathCap- En- Exp=1
Sep 13 00:05:57 proxmox78 kernel: [571994.368353] hpsa 0000:05:00.0: scsi 2:1:0:0: resetting logical Direct-Access HP LOGICAL VOLUME RAID-5 SSDSmartPathCap- En- Exp=1
Sep 13 00:06:09 proxmox78 kernel: [572007.128671] hpsa 0000:05:00.0: scsi 2:1:0:0: reset logical completed successfully Direct-Access HP LOGICAL VOLUME RAID-5 SSDSmartPathCap- En- Exp=1
再進到ilo去看後
發現以下的狀況
有HD出現smart error了
但面版上並沒有出現異常
也還是可以用
本想說應該不是出現reset的原因
但沒几天
另一台也出現同樣的問題
因為已經過保
也不打算修理
於是把其中一台關掉
把沒問題的HD拿到另一台試看看
到目前已經三週
沒有再出現問題
打電話去HP
HP回覆因為机器已經過保 無法回答問題
真是想罵人
2016/08/12
一直以來在shell中都比較習慣使用cut來切割字串
但在log裡總是會碰到一個問題
就是在月份的單日會多一個空格
此時cut就會有問題
導致程式出狀況
awk就不會有這個問題
ex:
Aug 7 03:30:11 mail snmpd[2067]: Connection from UDP
Aug 12 08:30:10 mail snmpd[2067]: Connection from UDP
用cut和awk就會出現不同的結果
如下
cat ex |cut -d ' ' -f 3
7
08:30:10
cat ex |awk '{print $3}'
03:30:11
08:30:10
因此在取空格時 建議使用awk 比較不會有因空格造成的問題
2016/07/23
在某些情況下table內只能有一筆唯一的資料存在
而此時在insert時一般會先select看看存不存在
mysql提供了一個方便的語法
mysql INSERT ... ON DUPLICATE KEY UPDATE (新增或是更新一行完成)
必要條件:
1. 資料表中必須有 PRIMARY或UNIQUE的索引。
2. INSERT時須帶入1. 欄位的資料
SQL語法範例
INSERT INTO `gamePlayer` (`pNode`, `gsn`,`out`, `monster`, `club3`, `changecolor`) VALUES ('K',4, 100, -1, 0, 1) ON DUPLICATE KEY UPDATE `out`=100, `monster`=-1, `club3`=0, `changecolor`=1
http://note.tc.edu.tw/765.html
而此時在insert時一般會先select看看存不存在
mysql提供了一個方便的語法
mysql INSERT ... ON DUPLICATE KEY UPDATE (新增或是更新一行完成)
必要條件:
1. 資料表中必須有 PRIMARY或UNIQUE的索引。
2. INSERT時須帶入1. 欄位的資料
SQL語法範例
INSERT INTO `gamePlayer` (`pNode`, `gsn`,`out`, `monster`, `club3`, `changecolor`) VALUES ('K',4, 100, -1, 0, 1) ON DUPLICATE KEY UPDATE `out`=100, `monster`=-1, `club3`=0, `changecolor`=1
http://note.tc.edu.tw/765.html
2016/07/18
2016/07/14
今天重新安裝proxmox 4.2版
可是裝完後發現之前版本會有的
/dev/mapper/pve-data 3856 808 3046 8% /var/lib/vz
不見了
到forum上去找 才發現 4.2的架構已經不同了
變成直接使用LVM來放image及ct
而不再把該lvm mkfs後再mout來用
因此必須手動把這個storage加上去
步驟
Datacenter -> Storage -> Add -> LVM-Thin
所以不建議用原机升級的方式來升到4.2
reinstall是比較好的方法
https://forum.proxmox.com/threads/dev-pve-data-not-mounted-after-fresh-4-2-install.27220/
用了LVM-Thin後有几個情況
雖然LXC可以在不用停机的情況下使用LVM的snapshot功能備份
但在不同node要migrate時 proxmox是使用dd來操作
導致效能非常的差 而且沒有百分比的顯示
評估過後
因為目前不使用LXC而且以後使用的机率也不大
所以再改回來使用目錄
步驟如下
lvremove /dev/pve/data
lvcreate -L 4M -n data pve
lvcreate -l 100%FREE -n datastore pve
mkfs.xfs /dev/pve/datastore
And mount it on your /etc/fstab
/dev/pve/datastore /mnt/datastore xfs defaults 0 0
可是裝完後發現之前版本會有的
/dev/mapper/pve-data 3856 808 3046 8% /var/lib/vz
不見了
到forum上去找 才發現 4.2的架構已經不同了
變成直接使用LVM來放image及ct
而不再把該lvm mkfs後再mout來用
因此必須手動把這個storage加上去
步驟
Datacenter -> Storage -> Add -> LVM-Thin
所以不建議用原机升級的方式來升到4.2
reinstall是比較好的方法
https://forum.proxmox.com/threads/dev-pve-data-not-mounted-after-fresh-4-2-install.27220/
用了LVM-Thin後有几個情況
雖然LXC可以在不用停机的情況下使用LVM的snapshot功能備份
但在不同node要migrate時 proxmox是使用dd來操作
導致效能非常的差 而且沒有百分比的顯示
評估過後
因為目前不使用LXC而且以後使用的机率也不大
所以再改回來使用目錄
步驟如下
lvremove /dev/pve/data
lvcreate -L 4M -n data pve
lvcreate -l 100%FREE -n datastore pve
mkfs.xfs /dev/pve/datastore
And mount it on your /etc/fstab
/dev/pve/datastore /mnt/datastore xfs defaults 0 0
2016/07/06
2016/07/05
原本一直以來都是使用flow-tools來收netflow的資料
http://freecode.com/projects/flow-tools
flow-capture
但最近的工作需要收集從fortiget傳來的netflow的資料
一開始也是使用flow-capture
但一直沒有資料
用tcpdump去看
是有資料進來的
但查了一些文件才知道fortiget送過來的是netflow v9
flow-capture不支援
於是改用nfdump 支援 v5 v7 v9
資料就正常收取了
http://nfdump.sourceforge.net/
nfcapd
http://freecode.com/projects/flow-tools
flow-capture
但最近的工作需要收集從fortiget傳來的netflow的資料
一開始也是使用flow-capture
但一直沒有資料
用tcpdump去看
是有資料進來的
但查了一些文件才知道fortiget送過來的是netflow v9
flow-capture不支援
於是改用nfdump 支援 v5 v7 v9
資料就正常收取了
http://nfdump.sourceforge.net/
nfcapd
2016/06/27
最近的新增需求是要起一個ftp server
可是不想要用vsftp或其他daemon
所以直接使用pyftpdlib
還滿方便的 有很多範例可以直接套用
但用了後發現沒有log功能
再查了一下資料
發現只要加紅色二行就搞定了
import logging
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
from pyftpdlib.authorizers import DummyAuthorizer
authorizer = DummyAuthorizer()
authorizer.add_user('user', '12345', '.', perm='elradfmwM')
handler = FTPHandler
handler.authorizer = authorizer
logging.basicConfig(filename='/var/log/pyftpd.log', level=logging.INFO)
server = FTPServer(('', 2121), handler)
server.serve_forever()
2016/06/18
在python中撈取mysql的資料
在cursor.execute後可以用cursor.fetchone()及cursor.fetchall()
如果回傳的只有一筆資料 可以使用cursor.fetchone() 可以少一點code
語法
cursor.execute(select count(*) from table)
result = cursor.fetchone()
print result[0]
如果回傳的資料有很多 則使用cursor.fetchall()
語法
cursor.execute(select * from table)
result = cursor.fetchall()
if result:
for record in result:
print record[0]
在cursor.execute後可以用cursor.fetchone()及cursor.fetchall()
如果回傳的只有一筆資料 可以使用cursor.fetchone() 可以少一點code
語法
cursor.execute(select count(*) from table)
result = cursor.fetchone()
print result[0]
如果回傳的資料有很多 則使用cursor.fetchall()
語法
cursor.execute(select * from table)
result = cursor.fetchall()
if result:
for record in result:
print record[0]
2016/06/17
今天找了一下有關mysql 日期時間的使用
大約記一下
分為
NOW() 2001-02-02 19:00:46
CURDATE() 2001-02-02
CURTIME() 19:00:46
使用加減功能
NOW() - INTERVAL 1 DAY 結果 2001-02-01 19:00:46
CURDATE()+ INTERVAL 1 DAY 結果 2001-02-03 00:00:00
未來 > NOW() < 過去
select * from table where enddate > NOW() 表示在NOW()之後的時間 表示未來 大未來
select * from table where enddate < NOW() 表示在NOW()之前的時間 表示過去 小過去
http://wen198599.pixnet.net/blog/post/22450019-mysql%E6%97%A5%E6%9C%9F%E5%92%8C%E6%99%82%E9%96%93%E5%87%BD%E6%95%B8%E4%B8%8D%E6%B1%82%E4%BA%BA
http://www.webasp.net/article/25/24538.htm
http://www.w3school.com.cn/sql/func_now.asp
http://www.mysqltutorial.org/mysql-now/
大約記一下
分為
NOW() 2001-02-02 19:00:46
CURDATE() 2001-02-02
CURTIME() 19:00:46
使用加減功能
NOW() - INTERVAL 1 DAY 結果 2001-02-01 19:00:46
CURDATE()
未來 > NOW() < 過去
select * from table where enddate > NOW() 表示在NOW()之後的時間 表示未來 大未來
select * from table where enddate < NOW() 表示在NOW()之前的時間 表示過去 小過去
http://wen198599.pixnet.net/blog/post/22450019-mysql%E6%97%A5%E6%9C%9F%E5%92%8C%E6%99%82%E9%96%93%E5%87%BD%E6%95%B8%E4%B8%8D%E6%B1%82%E4%BA%BA
http://www.webasp.net/article/25/24538.htm
http://www.w3school.com.cn/sql/func_now.asp
http://www.mysqltutorial.org/mysql-now/
2016/06/15
訂閱:
文章 (Atom)









































