2018/08/23

今天早上 6:00收到cisco server發出的告警 OS 也當了

Server HostName:C240-
 Severity: major
 Fault Code: F0174

 Problem Cause: equipment-inoperable
 Entity DN: sys/rack-unit-1/board/cpu-2
 Description: P2_PROCHOT: Processor 2 is operating at a high temperature: Check cooling

 PLATFORM: UCS C240 M4S
 CIMC Ver: 3.0(3a) 
 BIOS Ver: C240M4.3.0.3a.0.0321172111

嚇了我一大跳 以為機房的冷氣又壞掉了

進環控去看 溫度是正常的
接下來進CIMC
看到









直覺是風扇壞了
先重開機看看還能不能開
還好可以開
先把guest全部搬走
因為前幾天storage壞了 把guest 全搬到肚子
連絡廠商後把上面的擷圖跟收log
等到下午
代理商連絡說有個東西要調





















預設的風扇策略是低功率 有可能會造成溫度過高
建議調整如下




















還問我是不是跑vm cpu有沒有吃很多

現在買server 99%都跑vm了吧
這個還要問
風扇策略竟然還會預設低轉速
欠罵

2018/08/21

最近 librenms 發生 alert 通知不見的情況
爬了一下文原來是更新到1.42版之後
官方建議alert通知使用新的方法

Alert Transports

但 alert template跟之前的語法不同
而且如果直接使用網頁介面上的convert來轉換
出來的語法也是錯的
最後的解法方使用直接到官網全部複制
再貼到管理網頁上
目前是恢復正常了

https://docs.librenms.org/#Alerting/Templates/

順便說一下新的alert設定方法
先到alert transports 設定一個新的





之後再到alert rules 重新設定



2018/08/17

今天升級ocs 2.5 版的
升級的時候沒有發生什麼問題
但升完後
只要點search 畫面就是一片空白
查一下log 發現

Can't use method return value in write context in /usr/share/ocsinventory-reports/ocsreports/require/search/TranslationSearch.php on line 224, referer: http://1.2.3.4/ocsreports/index.php?first

爬了一下
果然有人問到


有人回答了

The multi-criteria search uses tables that need the minimum php 5.5 version. I advise you to update your php version to 5.5 or higher.

GG

centos 7 官方的php只出到5.4 而且也不想去升
而且有人升完後還要再安裝php-xml 才能用

把昨天的備分倒回去
等官方升到 php 5.5 再說吧

2018/08/01

最近借了一台 synology fs2017來測試
8顆 240G SSD

測試環境

cisco UCS C240 M4S

Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz  *2
RAM 32G
HD 300G SAS  *5
NIC 10G

proxmox 5.2 環境
guest HD 32G

使用指令如下
time qm clone 123 456

===========================
fs2017 iscsi

real 1m41.039s
user 0m4.945s
sys 0m55.628s
===========================
fs2017 nfs

real 0m47.445s
user 0m3.224s
sys 0m36.446s
===========================
cisco local zfs

real 10m3.973s
user 0m4.739s
sys 0m5.394s
===========================

cisco local lvm

real 4m28.070s
user 0m5.645s
sys 0m54.285s
===========================

hp virtual store 4300

real 4m39.839s
user 0m4.612s
sys 0m49.002s

===========================

2018/07/19

今天登入librenms時出現以下的訊息









看起是因為自動更新導致某些depcndy出了問題
先跑一下
/opt/librenms/validate.php
出現以下問題



















再來就依照提示跑一下
/opt/librenms/scripts/composer_wrapper.php install --no-dev
跑完後在文字介面再執行一次/opt/librenms/validate.php
已經沒有錯誤了
可是web介面再登入
還是會出現第一張圖的錯誤訊息
此時執行網頁介面右上的齒輪裡的validate config
出現以下的錯誤訊息









可是看了一下權限並沒有問題
google了一下









https://community.librenms.org/t/validate-config-page-report-wrong-issue/4085/3

把檔案砍了

目前看來是正常

2018/07/02

synology建議定期執行 data scrubbing
以檢查資料是不有不一致的問題
但碰到了二次只要執行
机器就當機
這次更嚴重 直接把一個SSD cache 踢掉
目前的做法是先把這個排程拿掉
猜測是不是因為做的時候會造成大量SSD IO的結果


2018/06/11

graylog預設會捉取log的第一個欄位來當成source

最近碰到 Cisco的ASA 吐出來log的第一個欄位是月分的英文
導致每個月都會換一次source
如下

May 09 2018 15:00:40 context-admin : %ASA-4-106023: Deny tcp src inside:172.16.213.212/52854 dst outside:192.168.213.203/445 by access-group "inside_access_in" [0x0, 0x0]
May 09 2018 15:00:40 context-admin : %ASA-4-106023: Deny tcp src inside:172.16.213.212/52855 dst outside:192.168.213.203/445 by access-group "inside_access_in" [0x0, 0x0]

查到二個解決方法

一個是讓ASA吐出來的log不要帶timestamp 不過因為是別廠商維護的
他們也不太想改

再來就是加個extractor
直接更換source這個欄位


2018/06/10

最近裝了二台proxmox 5.2
都沒有收到crontab的信
本來以之是之前的問題
但查了一下 並不是
再來看一下mail log
出現這個

Jun 10 06:11:34 proxmox postfix/local[21213]: error: open database /etc/aliases.db: No such file or directory

手動產生一下

newaliases

再觀察看看

2018/06/02

昨天晚上又發生ilo 當掉撈不到資料的情況
解決方法如下 reset ilo


2018/06/01

有台qnap的nas
已經好几天web進不去了
但可以ping的到
今天連nfs都死了
昨天的備分沒做
不重開不行
又不想直接關電
用ssh進去看看
竟然可以
進去後直接下reboot 完全沒反應
再help一下
好像要加command
command reboot
醬就可以重開了

2018/05/16

debian 9 預設找不到 /etc/rc.local

以下的連結說明如何產生後使用

https://www.itechlounge.net/2017/10/linux-how-to-add-rc-local-in-debian-9/

2018/05/15

本來在電腦上是安裝office 2016 但因為使用kms認証 每半年要重新執行認証程式 有點麻煩
後來就把office 2016移除改安裝office 365
但最近跳出授權到期的訊息
進到帳戶去看
才發現之前移除的office 2016竟然還在
找了半天
找到m$提供的工具
https://support.office.com/en-us/article/uninstall-office-from-a-pc-9dd49b83-264a-477a-8fcc-2fdf5dbf61d8
但看說明是執行後會移除所有office
又要重裝
XD
後來找到一個方法可以把原來的key砍了
https://gist.github.com/giordanocardillo/c3209cb215226d47322d98499c7a1df7
想說試看看
砍了之後再到帳戶去看就沒了
也不再跳訊息了
搞定
收工

2018/05/09

vsftpd預設是沒有把登入記錄寫到一個檔案
在centos只能在 /var/log/audit/audit.log找到如下資訊

May  9 10:43:36 hostname vsftpd[15873]: [user] OK LOGIN: Client "::ffff:192.168.1.2"
type=SERVICE_STOP msg=audit(1525834233.143:7923): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=vsftpd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

可以在 /etc/vsftpd/vsftpd.conf 加上

syslog_enable=YES

重啟vsftpd後
就可以在 /var/log/messages看到登入的相關資料

May  9 10:43:33 hostname vsftpd[15874]: CONNECT: Client "::ffff:192.168.1.2"
May  9 10:43:36 hostname vsftpd[15873]: [user] OK LOGIN: Client "::ffff:192.168.1.2"


今天有個新需求
要把apache 的log丟到graylog
找到很多文件
以下的方式算是最簡單的做法

apache跑在centos 上

把以下的內容加到 /etc/rsyslog.conf 或在/etc/rsyslog.d/裡加上一個新的檔案 如 apachelog.conf

$ModLoad imfile

# apache error.log
$InputFileName /var/log/httpd/error_log
$InputFileTag apache-errors:
$InputFileStateFile state_file_error_apache
$InputFileFacility local6
$InputFileSeverity info
$InputRunFileMonitor
$InputFilePollInterval 10

# apache access.log
$InputFileName /var/log/httpd/access_log
$InputFileTag apache-access:
$InputFileStateFile state_file_access_apache
$InputFileFacility local6
$InputFileSeverity info
$InputRunFileMonitor
$InputFilePollInterval 10

if $programname == 'apache-access' then @1.2.3.4:514
& stop
if $programname == 'apache-errors' then @1.2.3.4:514
& stop

依需求修改 log檔的路徑
外部 log server 的ip及port

改完後rsyslogd要重啟



2018/04/27

rules.emergingthreats.net 這個網站每天會整理有問題的ip

參考的是

Spam nets identified by Spamhaus (www.spamhaus.org)
Top Attackers listed by DShield (www.dshield.org)
Abuse.ch

還有suspicious doamin
https://secure.dshield.org/suspicious_domains.html

https://rules.emergingthreats.net/fwrules/emerging-Block-IPs.txt

看來還不錯用

2018/04/21

今天找到honeyports
程式碼是2013年的 用python寫
拿來當陷阱看來還不錯用

拿這個檔來修改
honeyports-0.4.py

預設執行時若偵測到try port的ip
會下iptables 並在畫面上出現訊息問管理者是要列出還是清掉加上的iptables
改一下程式
首先把出現訊息的地方mark掉
再來把加iptables的地方改成寫到log去
另外還有一個就是原作者在連線的回應訊息寫的是

nasty_msg = "\n\n***** Fuck You For Connecting *****\n\n"

這就看個人要不要改了

程式中的這些行因為是直接產生訊息在畫面上

Got connection from
Blocking the address: 
Creating a Linux Firewall Rule

I just blocked: 

如果不拿掉 在背景執行會有問題
不想拿也可以 就用screen來跑

改完後執行

sudo python honeyports-0.4.py -p 21
-p是監聽的port
可以多執行几次起在不同的port
大於1024可以不需要使用sudo
目前想到的是

21
22
23
137
138
139
445
1433
3389
3306
5800
5900

網卡多bind几個ip
然後.......就可以在log檔拿到這些ip了
接下來要作什麼
自己想


https://github.com/adhdproject/adhdproject.github.io/blob/master/Tools/HoneyPorts.md

https://github.com/ethack/honeyports

2018/04/12

上週檢查主机的時候發現web server的log目錄使用率已經到達95趴 快爆了
因為這台是廠商維護

有收錢的

想說就通知廠商處理
結果廠商處理完後
os有起來
但是

apache就起不來了

進去看了發現







X的
叫他清log結果把目錄整個刪掉
是怎樣
現在的廠商連這麼一點系統管理的常識都沒有了嗎?

銳X數位股份有限公司


真是一家好廠商啊


2018/04/09

今天有人在問有沒有現成的url blacklist
找到這個

https://blog.squidblacklist.org/?p=1658

2018/03/29

graylog如果要export大量資料時 百萬筆以上
不建議直接在web管理介面上Export as CSV
因為會花很多時間而且有可能導致管理介面當掉
建議使用rest
進到API browser後找到search keyword export
在網頁上輸入 搜尋關鍵字 時間 欄位及限制輸出筆數
確認輸出沒問題
就可以複制語法
把limit刪除後 使用curl來export
語法範例如下

curl -u user:passwd 'http://1.2.3.4:9000/api/search/universal/keyword/export?query=source%3A10.0.0.2%20&keyword=last%201%20day&fields=message' > log.csv
















2018/03/22

graylog偶爾還是會發生buffer滿載的情況
想說來監控一下
目前觀察到當 process buffer 和 output buffer都滿就會往回塞到disk journal 因此就直接monitor disk jounrnal

第一步就是要把graylog目前的相關資料取出來

但因為graylog只提供jason的格式 並不方便操作
所以再使用 jq 轉換 以利值的讀取
指令如下 直接取出值

curl -u user:passwd 'http://1.2.3.4:9000/api/system/metrics'|jq . |grep -A 1 journal.entries-uncommitted |grep value |awk '{print $2}'

再利用以上的值來比對設定的基準 高於就發alarm

https://stedolan.github.io/jq/

2018/03/09

今天測了一下obs及nginx nginx-rtmp-module
obs是一個相當方便的跨平台錄影及產生live streaming的軟体
但是並沒有stream server的功能
一般都是把產生的stream丟到 youtube 或其他的stream server上
但如果是在內部使用 就必須自行架設stream server
網路上找到的資料大多是 obs + nginx + nginx-rtmp-module
記錄一下安裝及測試的流程
先安裝nginx
這次使用的是 linux mint ldme2
再來

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

wget http://nginx.org/download/nginx-1.13.1.tar.gz

wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

解開後編譯安裝

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
$ make
$ sudo make install

啟動 nginx 看看有沒問題

$ sudo /usr/local/nginx/sbin/nginx

修改config 以支援 rtmp

在 /usr/local/nginx/conf/nginx.conf 下方加上以下程式碼


rtmp {
        server {
                listen 8080;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}

重啟 nginx

$ sudo /usr/local/nginx/sbin/nginx -s stop
$ sudo /usr/local/nginx/sbin/nginx

接下來在windows 裝好obs後

以串流桌面為例(含音訊)

在來源選擇顯示器擷取
















建立新來源














































再來設定把 stream 丟到之前設好的server















假設 server ip 192.168.12.74 port 要與config 設定的相同 金鑰設定為 test









設好後就可以開始串流















如果出現以下畫面且無錯誤訊息 就表示成功串流出去了

























用VLC進行觀看

vlc rtmp://192.168.12.74:8080/live/test


如果來源有多個可以同時設定 同時擷取

https://obsproject.com/
https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/

2018/03/06

最近新進一批PC
發現影子系統上不去
測了很久
得到以下結論

影子系統無法使用在uefi 上 必須使用mbr

在PC的bios要把secure boot 關掉 不要使用uefi

要把hd的gpt分割清掉

在linux下指令
sgdisk -z /dev/sdx

否則clonezilla 無法做成image

2T以下的HD 不要使用 gpt及UEFI


2018/02/22

今天ubuntu 升級後畫面就一直停在背景
左方完全沒有圖示
本來以為是升kernel的關係
降為舊版本還是一樣
找了一下
unity不見了
XD
補回去
sudo apt install unity
重開後就ok






https://ifun01.com/JC7MFH2.html

2018/02/17

之前要發mail都使用二種方法

1. 直接在需要寄信的主機上起一個mail server 來寄

2. 使用python

import smtplib,sys

sender = "test_from_hinet@hinet.net"
receipt = "abc@de.com
smtp = smtplib.SMTP("168.95.4.10")
header = "Subject: test outside in mail from hinet\r\n\r\n"
msg = "test outside in mail from hinet"
smtp.sendmail(sender, receipt, header+msg)
smtp.quit()

今天才知道 mutt 也可以設定到別台mail server寄信
設定方法是安裝好mutt後在user的家目錄設定 ~/.muttrc

加上以下這行
set smtp_url = "smtp://mail.server.ip:25/"
或在
/etc/Muttrc加上相同的內容
醬就可以了
mutt -s test abc@de.com -a test < test

2018/02/09

有同事反應有三支 .net的 update一直都無法更新成功
找了一下
下載 Microsoft .NET Framework Repair Tool 執行一下就可以了
網址如下

https://www.microsoft.com/en-us/download/details.aspx?id=30135

2018/02/07

記錄一下最近使用drbl的經驗
接在1G的設備上
不管是使用multicast 或 broadcast 速度大約就在1.X G 左右
若使用multicast 或 broadcast 建議使用client 數加秒數的方式
才不會因為某一台開不起來就一直在那裡等待 而無法開始作業

使用unicast 單台速度可到約 7.x G
但如果在unicast上同時使用二台以上作業
非常容易當機 應該說一定會當機
而且當機的情況很怪
server沒當
但client 就是連不上
此時server就是一定要重開機 重新設定才能用
所以建議一台一台做

http://drbl.nchc.org.tw/news/

2018/02/06

1/28 存放graylog資料的nas發生當機的情況
隔天上班後nas重開graylog無法順利啟動
出現的錯誤訊息是mongodb無法啟動
試了很多方式還是無法修復
先把之前的backup倒回(只針對主程式)
還是無法啟動
重裝graylog也無法使用之前的資料

最後想到不久前升級graylog時有做了一個snapshot
這個snapshot是在關機時做的
利用這個snapshot回復
loss了一週的資料

接下來思考如果之後出現煩似的情況
要如何在捐失最少的資料進行回復
想到的方式是把graylog的主程式搬到跟資料同一個資料夾
然後利用nas定時snapshot的功能每半小時做一個snapshot(nas可支援到每五分鐘)
醬就可以把主程式跟資料一起snapshot在某一個時間點
這個有做這回復驗証 可以啟動graylog沒問題
只是在 system overview 會出現 Indexer failures的情況
但還是可以操作

目前graylog存放的資料是 4.5T 完全不可能備分
看來在大資料量的情況下
snapshot是少數可以利用的解決方案

2018/01/28

最近因為有大檔案同步的需求
所以找了二個解決方案 rsync bigsync
同時試了一下
樣本都是一個49G的檔案 來源目的都一樣
直接上數据

rsync

sent 49,088,096,429 bytes  received 35 bytes  95,039,876.99 bytes/sec
total size is 49,076,114,830  speedup is 1.00

real    8m36.099s
user    3m35.524s
sys     1m17.008s

bigsync

Total read = 45.706 Gb
Total write = 45.706 Gb
Total blocks changed = 3121
Elapsed 10m13s

看起來rsync還是快一點

另外bigsync可以調整每次處理的block大小

順便貼一下數据

500M

Total read = 45.706 Gb
Total write = 45.706 Gb
Total blocks changed = 94
Elapsed 10m32s

1000M

Total read = 45.706 Gb
Total write = 45.706 Gb
Total blocks changed = 47
Elapsed 10m30s

看起來和default 15M並沒有什麼差別

再來看一下如果檔案有小變化時 二方的結果
這次測一個10G的檔

rsync

sent 10,876,360,204 bytes  received 35 bytes  65,718,188.76 bytes/sec
total size is 10,873,705,357  speedup is 1.00

real    2m44.831s
user    0m48.460s
sys     0m18.184s

看來rsync並不會把檔案切割計算

bigsync

Total read = 10.127 Gb
Total write = 4 Mb
Total blocks changed = 1
Elapsed 1m33s

結論 

如果需求是每次都要同步全新的檔 用 rsync比較快

如果目的檔案已存在 只要同步差異處 用bigsync 可以節省比較多時間


https://rsync.samba.org/
https://github.com/egorFiNE/bigsync

2018/01/24

如何以非root的身分開机執行指令

su - userid -c "絕對路徑/shell"

修改以上指令後寫到 /etc/rc.local

2018/01/23

如果要把guest轉到其他的vm平台

簡單記一下如何轉出來

如果在iscsi裡

先看下路徑
lvdisplay

再下指令
dd if=/dev/hpvs139vg/vm-128-disk-1 of=/tmp/128.raw bs=1M

如果是zfs

dd if=/dev/zvol/rpool/data/vm-138-disk-1 of=/tmp/138.raw bs=1M


再利用qemu-img 轉成需要的格式
qemu-img convert -f raw -O vmdk 128.raw 128.vmdk

之後virtualbox就可以直接使用這個vmdk了

2018/01/19

今天因為工作的需求要安裝一台winserver 2012 R2
每次裝windows就有一種............
原因就是裝好之後的update
今天光是update就花了十多個小時
Orz
從以前就一直在想
為什麼win沒辦法改進這一塊
我裝好linux跑個update最多也就十分鐘
update後另一個問題又來了
50G的HD只剩10多G可以用
哇咧
而且server版預設沒有安裝磁碟清理工具
找了一下
發現只要清理三個資料夾

c:\windows\logs\CBS\
C:\WINDOWS\TEMP
C:\WINDOWS\SoftwareDistribution\Download

因為是剛裝好 所以前二個資料夾裡沒啥資料
第三個裡面就塞了十多G
砍了

http://shaomoon715.blogspot.tw/2016/09/c-cwindowslogscbs.html

2018/01/14

在之前如果要把ovf匯入proxmox要花很多功夫
剛剛發現現在有 qm importovf 跟 qm importdisk 可以用 真是太方便了
試了一下
qm importovf怪怪的無法成功

所以只好把vm先建好

再把ova解開
tar xvf test.ova

使用 qm importdisk
指令如下

qm importdisk 123 test.vmdk local-lvm
會匯入成第二個disk
在管理介面上把剛匯入的那顆hd加上去
然後改一下boot disk

或是匯入之前先把之前建guest的第一個hd砍了
這樣匯入時就會是第一個

https://forum.proxmox.com/threads/procedure-to-import-vmware-ova-to-proxmox-5-0-23-with-zfs-vm-store.36779/

https://pve.proxmox.com/pve-docs/qm.1.html
最近有在網頁使用captcha的需求
http://captchas.net/ 提供六種語言的範例
我需要的是python

http://captchas.net/sample/python/

2018/01/13

實在被cn的ip煩到一個不行
發現下面這個好站
有需求的自行取用囉

https://www.ip2location.com/blockvisitorsbycountry.aspx


2018/01/09

今天想把snort的資料吐進 graylog

記錄一下步驟

首先改一下snort.conf 增加寫到syslog的選項

output alert_syslog: LOG_LOCAL5 LOG_ALERT

再來改一下rsyslog.conf

$template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n"

local5.alert @graylog.server:514;GRAYLOGRFC5424

再來在gralog上加入extractor 加在 收snort log的那個input

system -> input -> manage extractors












import extractors








在以下的空格貼入 https://github.com/jhaar/mygraylog-patches-extractor-snort/blob/master/extractor-snort 裡的程式碼











之後進來的資料就可以被解析了


https://www.graylog.org/blog/64-visualize-and-correlate-ids-alerts-with-open-source-tools

2018/01/07

延續昨天的問題
程式跑一個晚上砍不到10000筆 XD
早上停掉
找了一下資料
改用另一種跑法

一樣是先把要砍的欄位資料撈出來
之後以一萬筆為單位拆開 做完後從資料中清除
如下

先把找出來的cid先排序 才能使用 comm 指令

sort data > data_s
mv data_s data

get_10000

sed -n '1,10000p' data > data_del
#grep -v -f data_del data > data_tmp
comm -1 -3 data_del data > data_tmp
mv -f data_tmp data

利用上述的檔案生成sql 語法

del_data_10000

for i in `cat data_del`
do
    echo -n $i" ,"
done > 000

echo -n 999999999 >> 000

mysql -u user -p123456 snort -e"delete from event where cid in (`cat 000`);"



一次跑100個loop

#!/bin/bash

for i in {1..100};
do
    echo $i" times"

    ./get_10000
    echo "get ok"
    ./del_data_10000
    echo "del ok"

    wc data
    echo " "

done

速度快多了

2018/01/06

記錄一下在librenms上找ip及mac及switch port的方法

如果pc關了 有可能會找不到

首先先利用 arp table 找到mac





















然後再利用找到的 mac 到 FDB table 去找













簡單快速

https://blog.michaelfmcnamara.com/2008/02/what-are-the-arp-and-fdb-tables/
前一陣子不知是因為FP還是真的有那麼多攻擊
導致snort的資料庫塞了一堆 OS-WINDOWS Microsoft WINS arbitrary memory modification attempt 有五百多萬筆 XD

rule 是以下這個

alert udp $EXTERNAL_NET any -> $HOME_NET 1027:5000 (msg:"OS-WINDOWS Microsoft WINS arbitrary memory modification attempt"; sid:13826; gid:3; rev:6; classtype:attempted-admin; reference:cve,2008-1451; reference:url,technet.microsoft.com/en-us/security/bulletin/MS08-034; metadata: engine shared, soid 3|13826;)

然後整個web畫面就慢的夭壽慢 一直放著沒處理
今天想想來處理

首先先把 acid_event 這個 table 裡有關 OS-WINDOWS Microsoft WINS arbitrary memory modification attempt 的 cid 找出來

select cid from acid_event where sig_name='OS-WINDOWS Microsoft WINS arbitrary memory modification attempt';

然後寫個 shell 到 event table 去全砍了

#!/bin/bash

for i in `cat 123`
do

    echo $i
    mysql -u user -p123456 snort -e"delete from event where cid=$i;"

done

或直接寫個sql 
DELETE FROM tb1 WHERE tb1.a in (SELECT k from tb2);

接下來再 使用之前寫過的清資料的方法

再跑一次
忘記從那個版本開始(最近)
要啟動snort都會出現以下的錯誤

FATAL ERROR: /etc/snort/snort.conf(327) => Invalid keyword '}' for server configuration.

今天特別google了一下

有人提到二個解法方法
一個是裝上lzma
一個是不要使用
試了第一個方法
把lzma相關的rpm都上了 還是不行
所以只能拿掉了
改一下 snort.conf

#    decompress_swf { deflate lzma } \
    decompress_swf { deflate } \

目前是沒問題了

http://seclists.org/snort/2017/q4/146

2018/01/04

今天打開graylog管理介面時 出現新版本 2.4 更新的通知
想說來升看看 會不會解決之前 REST 跟 export 的問題
升完後測了一下
目前看來都ok了
不過REST撈出來的格式跟之前不一樣
要改程式了

2017/12/31

一直都是使用BASE這個工具來看snort產生的報表
但也一直都有個問題就是查詢結果會分頁
在之前都是一頁一頁分別列印出pdf
想把查詢結果轉成csv然後寄出
試了一下發現有二個地方要處理
一個是要把php-pear-Mail這個rpm裝上去

yum install php-pear-Mail

再來要修改base_conf.php如下

base_conf.php

$action_email_smtp_host = 'localhost';
$action_email_smtp_auth = 0;
$action_email_from = 'base@snort';

不要忘記重啟httpd

systemctl restart httpd

如下圖 在查詢結果的最下方選擇 電子郵件警告(csv)  然後打入要寄出的 email 最後點進入查詢 就可以寄出了



2017/12/22

接續之前的問題
因為rest一直怪怪的
所以目前只好手動下查詢
但又碰到另一個狀況
OR的條件下太多會當掉XD
目前試出來的結果是最多85筆
範例如下

accept AND (192.168.13.209 OR 192.168.13.30 OR 192.168.13.31 OR 192.168.50.48 OR 192.168.50.194 OR 192.168.10.100 OR 192.168.43.193 OR 192.168.1.103 OR 192.168.15.249 OR 192.168.15.252 OR 192.168.19.9 OR 192.168.15.17 OR 192.168.41.213 OR 192.168.34.96 OR 192.168.35.252 OR 192.168.35.251 OR 192.168.35.253 OR 192.168.35.250 OR 192.168.35.247 OR 192.168.35.248 OR 192.168.35.245 OR 192.168.35.249 OR 192.168.42.34 OR 192.168.41.219 OR 192.168.31.248 OR 192.168.30.47 OR 192.168.74.186 OR 192.168.35.246 OR 192.168.34.184 OR 192.168.31.241 OR 192.168.30.158 OR 192.168.30.244 OR 192.168.25.124 OR 192.168.15.23 OR 192.168.34.69 OR 192.168.26.63 OR 192.168.30.111 OR 192.168.31.239 OR 192.168.34.106 OR 192.168.34.245 OR 192.168.41.209 OR 192.168.41.229 OR 192.168.41.230 OR 192.168.25.217 OR 192.168.25.170 OR 192.168.42.222 OR 192.168.49.178 OR 192.168.50.181 OR 192.168.25.187 OR 192.168.73.12 OR 192.168.94.249 OR 192.168.95.250 OR 192.168.95.252 OR 192.168.95.253 OR 192.168.27.249 OR 192.168.27.245 OR 192.168.27.251 OR 192.168.27.244 OR 192.168.27.252 OR 192.168.27.250 OR 192.168.27.246 OR 192.168.27.248 OR 192.168.26.131 OR 192.168.26.31 OR 192.168.31.242 OR 192.168.31.240 OR 192.168.31.243 OR 192.168.31.244 OR 192.168.31.247 OR 192.168.31.246 OR 192.168.31.251 OR 192.168.31.252 OR 192.168.31.253 OR 192.168.27.243 OR 192.168.27.247 OR 192.168.4.130 OR 192.168.4.108 OR 192.168.15.21 OR 192.168.4.120 OR 192.168.4.121 OR 192.168.4.150 OR 192.168.4.110 OR 192.168.4.170 OR 192.168.4.190 OR 192.168.4.160)

2017/12/21

最近在graylog上碰到搜尋都OK
除了要匯出成csv會很慢
不過這個問題應該跟接下來要討論的是同一個問題

使用rest撈資料時發生有時撈得到有時撈不到的情況
但確定指令沒下錯 而且確定語法一定有資料可以出來
於是寫了一個shell來試

#!/bin/bash
i=1
while :
do
echo $i
curl -m 240 -u user:pwd 'http://10.0.0.1:9000/api/search/universal/keyword?query=nf_dst_address%3A192.168.12.220&keyword=last%2020%20hours&fields=message&limit=1'
        i=`expr $i + 1`
sleep 3
done

出現以下的結果

1
2
3
4
"timestamp","message"
"2017-12-20T10:09:23.000Z","NetFlowV5 [210.65.47.55]:443 <> [192.168.12.220]:42702 proto:6 pkts:1 bytes:52"
5
"timestamp","message"
"2017-12-20T10:09:23.000Z","NetFlowV5 [210.65.47.55]:443 <> [192.168.12.220]:42702 proto:6 pkts:1 bytes:52"
6
"timestamp","message"
"2017-12-20T10:09:23.000Z","NetFlowV5 [210.65.47.55]:443 <> [192.168.12.220]:42702 proto:6 pkts:1 bytes:52"
7
8
"timestamp","message"
"2017-12-20T10:09:23.000Z","NetFlowV5 [210.65.47.55]:443 <> [192.168.12.220]:42702 proto:6 pkts:1 bytes:52"
9
"timestamp","message"
"2017-12-20T10:09:23.000Z","NetFlowV5 [210.65.47.55]:443 <> [192.168.12.220]:42702 proto:6 pkts:1 bytes:52"
10
11
12
"timestamp","message"
"2017-12-20T10:09:23.000Z","NetFlowV5 [210.65.47.55]:443 <> [192.168.12.220]:42702 proto:6 pkts:1 bytes:52"
13
"timestamp","message"
"2017-12-20T10:09:23.000Z","NetFlowV5 [210.65.47.55]:443 <> [192.168.12.220]:42702 proto:6 pkts:1 bytes:52"

而且在管理介面上看到的狀況如下圖



















找了很多資料 調了很多參數都沒用 直覺是個bug

2017/12/15

解決下完ssh連線指令要等很久才會跳出密碼輸入畫面的解決方法

在被連線的server上

vi /etc/ssh/sshd_config

1. 將 GSSAPIAuthentication yes
改成
GSSAPIAuthentication no

2. 將 #UseDNS yes
改成
UseDNS no

3. 重新啟動 sshd 服務

http://blog.xuite.net/tolarku/blog/292705102-Linux+SSH+%E7%99%BB%E5%85%A5%E9%80%9F%E5%BA%A6%E6%85%A2+-+CentOS

2017/12/14

今天把ocs升到 2.4
但升完後發現user的資料都進不去
log的錯誤如下

[Thu Dec 14 15:31:49.647252 2017] [perl:error] [pid 1193] [client 192.168.12.96:62495] Can't call method "do" on an undefined value at /usr/local/share/perl5/Apache/Ocsinventory/Server/System.pm line 189.\n

google之後找到說因為升級不會把舊的mysql user pwd帶過去

所以要改二個檔

dbconfig.inc.php
z-ocsinventory-server.conf

改完後記得要重啟apache

醬就好了

http://ask.ocsinventory-ng.org/2867/method-undefined-share-apache-ocsinventory-server-system

2017/12/07

在linux裡如果使用純數字帳號是沒辦法針對帳號名稱做quota的
這個問題的解決方式就是使用UID
把帳號名稱改成UID就可以了


xfs_quota -x -c "limit bsoft=10m  bhard=15m 123456" /dev/vdb1
假設原本的帳號是123456以上的指令是沒有作用的

此時就要到 /etc/passwd去看這個帳號的UID

123456:x:1313:1313::/home/123456:/bin/bash

UID是1313

再把設定quota的指令改成

xfs_quota -x -c "limit bsoft=10m  bhard=15m 1313" /dev/vdb1

醬就可以了

2017/12/02

最近graylog出現一個狀況
不管是在網頁介面上要export查詢的資料或
在其他机器上使用curl透過rest來撈取
二者應該是相同的做法
都會很久
目前還找不到原因
不知是不是因為資料太多的關係
目前的資料
246 indices, 4,908,265,647 documents, 3.0TB

2017/11/29

最近graylog總是怪怪的
速度很慢
加了 Disk Journal 還有cpu的個數
還是很慢
buffers常常爆表
而且cpu的使用率還是很高
今天再仔細看了一下
發現 / 的使用率已經 99% 了 XD
再找找是那裡吃掉了

/var/log/graylog/elasticsearch 裡有一堆
graylog-20xx-xx-xx.log的log

看來是每天會產生一個log file
可是到/etc的logrotate相關檔案並沒有看到設定的資料
算了
先寫個排程來處理 有空再來找看看放在graylog那裡

59 23 * * * /bin/rm -f /var/log/graylog/elasticsearch/graylog-`date -d '10 days ago' "+%Y-%m-%d"`.log

留個10天應該是夠了

2017/11/28

之前使用ftp傳檔時一直都用交談的方式
今天在測sftp時才發現lftp就可以了
範例如下

lftp ftp://user:password@host -e "put/tmp/data ; bye"

lftp sftp://user:password@host  -e "put local-file.name; bye"


2017/11/25

設定每天凌晨 01:00 關机指令

schtasks /Create /SC daily /TN shutdown /ST 01:00 /TR "c:\windows\system32\shutdown.exe -s -f"

http://lee5400.blogspot.tw/2011/05/windows-schtasks.html

2017/11/22

近日graylog出現二次以下的訊息







看來應該是 journal buffer不夠了
看了一下主按台果然全都是滿的
先把disk journal調到5G(本來是1G)
調完之後看來就ok了











再觀察看看

2017/11/10

今天把vmware轉到proxmox
要啟動時發生以下的問題

kvm: -drive file=/var/lib/vz/images/102/vm-102-disk-1.qcow2,if=none,id=drive-scsi0,format=qcow2,cache=none,aio=native,detect-zeroes=on: file system may not support O_DIRECT

解決的方法很簡單

把disk cache 改成 write through就好了


2017/11/08

有關proxmox最近備份出現的問題
測試了好久
觀察了一週
做一下整理記錄
之前備份發現問題
不管是linux或windows在備份時都出現hd reset的情況
























目前得到的結論如下

在備份裝置是10G的情況下 (使用nfs 備份) 目前都沒有發現問題 

在備份裝置是1G的情況 
在網路上找到一些方法

1. 把disk 改成virtio

linux 在改完之後就解決問題了

但如果沒辦法改成virtio 則建議把guest file 放在server的 directory 不要放在share storage上


但是windows 改完後並沒有解決問題

必須要修改 /etc/vzdump.conf

加上 bwlimit:150000  (再調高會出現問題)

限制執行vzdump執行時的io 避免跟guest os搶 io 導致出現hd reset的問題

不過改成virtio對windows guest os的效能會有滿大的改善
連idrac都會當G
Orz




2017/10/24

最近更新proxmox後又發生crontab無法寄信的問題
印像中之前不久也發生過
但沒有留下記錄
再找了一下
官方當時說改一下權限就可以了之後會修正
應該是還沒修

chmod g+s /usr/bin/pvemailforward

https://forum.proxmox.com/threads/pve5-problem-when-send-mail-to-root.35733/#post-175325

2017/10/19

最近碰到一個怪問題
就是proxmox 裡的 guest linux主机會出現以下的錯誤訊息

















出現後有時ok
但有時filesystem 就會有錯誤
需要filesystem check
可是如果是windows  運氣不好就直接掛點
一開始是懷疑storage有問題
可是把guest搬到肚子後還是一樣
查了一些資料後有人提到可能是nfs的問題 而且通常都會在backup時發生
於是朝這個方向測試
測了好久
終於有了初步的結論
不管備到那裡 會發生問題就是會發生
而且跟storage的網卡速度也無關
問題在proxmox備分時提供三個選項

不壓縮
lzo
gzip

目前發現如果選擇不壓縮 備分時host會一直搶io
導致上述的情況
如果是選lzo就不會有這個問題了
gzip因為會吃比較多資源
沒有進行測試
所以結論就是

備分時請選擇 lzo 壓縮方式

2017/10/12

今天把snort 升到2.9.11後
要啟動時出現以下的錯誤

/usr/sbin/snort: error while loading shared libraries: libdnet.1: cannot open shared object file: No such file or directory

libdnet這個rpm明明就有裝
因為剛release 所以可能還沒有人升級
先找看看
在/user/lib64下有找到libdnet的相關檔案
而且全部都連結到 libdnet.so.1.0.1

ls -al|grep libdnet
lrwxrwxrwx   1 root root      16 Oct 12 08:41 libdnet.1 -> libdnet.so.1.0.1
lrwxrwxrwx   1 root root      16 Oct 12 08:31 libdnet.so -> libdnet.so.1.0.1
lrwxrwxrwx   1 root root      16 Dec 21  2015 libdnet.so.1 -> libdnet.so.1.0.1
-rwxr-xr-x   1 root root   62936 Jun 10  2014 libdnet.so.1.0.1

想說不然就來試看看
再建一個連結

ln -s libdnet.so.1.0.1 libdnet.1

醬就可以了
目前啟動正常

https://snort.org/

2017/10/08

記錄一下如何在 X11 forword的情況下把聲音一起forword

二台都是linux

近端的機器必須先安裝 pulseaudio paprefs 這二個package
一般而言目前使用的音效都已經裝好且應該都是 pulseaudio   使用的port 是4713
而 paprefs 是設定程式 裝好後執行 paprefs
依照下方的圖進行勾選設定


















設定好後就可以使用ssh 連上遠端机器

ssh -C -c arcfour -X -R 4715:localhost:4713 user@remote.ip

4715:localhost:4713  主要是要把遠端4175的封包傳到近端來

登入遠端後要先執行

export PULSE_SERVER=localhost:4715

把聲音導到 port 4715
(確認port 4715 是不是沒在使用)


再來執行程式

firefox

此時打開youtune 看影片就可以聽到聲音了


http://guildwar23.blogspot.tw/2012/11/

因為一直有把遠端的桌面利用X11 Forwarding的需求
而且是利用internet傳輸
但一直碰到的問題就是感覺非常慢
今天查了一下資料
應該可以改變一下加密的方法來加速
首先先在server上加上加密方法的支援

$ echo "Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,blowfish-cbc,aes128-cbc,3des-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc" | sudo tee --append /etc/ssh/sshd_config

再來連線時就可以使用不同的加密演算法

ssh -c arcfour,blowfish-cbc -XC host.com

以下列出使用不同演算法的速度
自己參考看看囉






















https://godleon.github.io/blog/2016/06/02/HowTo-SpeedUp-X11-Forwarding-in-SSH
http://xmodulo.com/how-to-speed-up-x11-forwarding-in-ssh.html
https://blog.famzah.net/2010/06/11/openssh-ciphers-performance-benchmark/
http://debiannoteofj.blogspot.tw/2010/09/x11-forwarding.html
http://www.miscdebris.net/blog/2007/06/01/speed-up-ssh-x11-forwarding/

2017/10/06

the oid of  clients connected to one ruckus AP

1.3.6.1.4.1.25053.1.1.12.1.1.1.3.1.2.1 is 2.4 GHz clients
1.3.6.1.4.1.25053.1.1.12.1.1.1.3.1.2.2 is 5 GHz clients

2017/10/02

昨天晚上server發生filesystem錯誤

重開後mariadb出現問題
到log去看時發現以下資訊

171002  8:51:09  InnoDB: cannot calculate statistics for table ABC/def
InnoDB: because the .ibd file is missing.  For help, please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html
171002  8:51:09 [ERROR] MySQL is trying to open a table handle but the .ibd file for
table ABC/def does not exist.
Have you deleted the .ibd file from the database directory under
the MySQL datadir, or have you used DISCARD TABLESPACE?
See http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html
how you can resolve the problem.

到目錄去看時
def.idb這個檔真的不見了
查了一下
這個檔不見是沒辦法由目前的資料再產生的
只能recovery

找了一下備分
倒回去
目前看來正常
再觀察看看

2017/09/14

今天一早上班就有人跟我說網路無法認証
查了一下發現radius 沒起來
再看log發現今天早上centos 7 有很大的更新
其中包含了freeradius的套件
試了几次 daemon就是起不來
後來用 radiusd -X 看訊息如下

rlm_ldap (ldap): Opening additional connection (0), 1 of 32 pending slots used
rlm_ldap (ldap): Connecting to ldap://10.10.10.10:389
rlm_ldap (ldap): Waiting for bind result...
rlm_ldap (ldap): Bind credentials incorrect: Invalid credentials
rlm_ldap (ldap): Server said: NDS error: failed authentication (-669).
rlm_ldap (ldap): Opening connection failed (0)
rlm_ldap (ldap): Removing connection pool
/etc/raddb/mods-enabled/ldap[8]: Instantiation failed for module "ldap"

奇怪為什麼升版前沒問題
升版後就不行了
並沒有去動ldap的config
google了一下發現有類似的情況
問題出在config跟ldap認証的密碼有特殊字元
XD
什麼怪事都有
改掉之後就可以了

再觀察看看

2017/09/01

如果是手動安裝librenms
則nagios plugin並不會安裝
找到以下這篇說明如何安裝

http://olivermarshall.net/enable-ping-tests-in-librenms/

如果是使用ova
那預設就已經裝好了
上篇也有說明如何加入service的監看

不過預設並未加入service down的alert
以下官方文件有說明如何加入

https://docs.librenms.org/Extensions/Services/

2017/08/31

最近在玩librenms
介面看起來真的滿潮的
而且只要她可以辨認的mib
會把所有相關的資料都顯示出來
連USHA的資料都完全出現
包括電壓 負載 溫度....等
這方面比cacti好用很多
不過目前碰到的問題是還無法餵值來畫圖
另外就是一定要使用snmp來偵測裝置

在測的過程中出現一個狀況
就是alert有出現
email通知的設定也沒錯
但device如果down
在畫面上有看到alert
但就是沒收到mail
之後經過了8小時
才開始發mail








試了半天
還是一樣
後來想說去forum 問問
就在要發問時
系統說要先執行validate.php把結果一起po上去
那就先執行看看

./validate.php
====================================
Component | Version
--------- | -------
LibreNMS  | 1.31.02-3-g4683736
DB Schema | 205
PHP       | 7.0.22
MySQL     | 5.5.52-MariaDB
RRDTool   | 1.4.8
SNMP      | NET-SNMP 5.7.2
====================================

[FAIL]  We have found some files that are owned by a different user than librenms, this will stop you updating automatically and / or rrd files being updated causing graphs to fail.
        [FIX] chown -R librenms:librenms /opt/librenms
/opt/librenms/html/plugins/Weathermap/configs
/opt/librenms/html/plugins/Weathermap/configs/testing.conf
[OK]    Database connection successful
[OK]    Database schema correct
[WARN]  Your install is over 24 hours out of date, last update: Tue, 29 Aug 2017 18:53:05 +0000
[FAIL]  You have a different system timezone (CST) specified to the php configured timezone (UTC), please correct this.

果然有几個問題
一個是權限問題
我在想我是用官方提供的ova
為什麼會有這個問題
再來是時區
因為我有去改os的timezone
但php.ini沒改
難怪會晚了8小時才收到信
這個也改了
再來就是說我版本太舊
不是說每天會固定更新??
算了
手動跑一下daily.sh
目前alert發信看來正常了
再觀察看看

後記
權限改完後
刪除裝置時還是會出現














要嗎就再把rrd改成777
不然就用root去刪
算了
反正刪設備的機會也不多
碰到再用root刪吧
使用rsyslog 收資料時
預設會去反解來源的ip
可以修改以下參數停用
加上 -Q -x

範例

SYSLOGD_OPTIONS=”-c3 -Q -x”

https://ssorc.tw/1194

2017/08/25

今天收到了一個zip檔
但user說忘記密碼了
XD
找到fcrackzip這個有趣的東西
ubuntu安裝很簡單
sudo apt install fcrackzip

接下來下個指令 先試10個字範圍內

fcrackzip -b -c 'aA1!' -l 1-10 -u crack_file.zip

再來就是等了

http://topspeedsnail.com/fcrackzip-crack-zip-password/

2017/08/24

今天要登入awacs(網管軟体)時
出現無法連接的訊息
登入主机發現mariadb的daemon不見了
systemctl restart mariadb也起不來
看了一下 /var/log/mariadb/mariadb.log 發現以下的記錄

170824 19:02:01  InnoDB: Page checksum 2583736692 (32bit_calc: 3902863637), prior-to-4.0.14-form checksum 2992650943
InnoDB: stored checksum 218772529, prior-to-4.0.14-form stored checksum 775370784
InnoDB: Page lsn 825440558 909582385, low 4 bytes of lsn at page end 825373998
InnoDB: Page number (if stored to page already) 775303712,
InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 775041840
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 7.
InnoDB: You may have to recover from a backup.
InnoDB: It is also possible that your operating
InnoDB: system has corrupted its own file cache
InnoDB: and rebooting your computer removes the
InnoDB: error.
InnoDB: If the corrupt page is an index page
InnoDB: you can also try to fix the corruption
InnoDB: by dumping, dropping, and reimporting
InnoDB: the corrupt table. You can use CHECK
InnoDB: TABLE to scan your table for corruption.
InnoDB: See also http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.

按照說明
在/etc/my.cnf 加上

[mysqld]
innodb_force_recovery = 1

重啟mariadb

再查一下log

170824 19:02:01  InnoDB: Error: space id and page n:o stored in the page
InnoDB: read in are 1553519:2, should be 1553541:2!
170824 19:02:01  InnoDB: Error: space id and page n:o stored in the page
InnoDB: read in are 1553519:3, should be 1553541:3!

InnoDB: Apply batch completed
InnoDB: Starting in background the rollback of uncommitted transactions
170824 19:02:01  InnoDB: Rolling back trx with id 127203F, 451 rows to undo
170824 19:02:01  InnoDB: Waiting for the background threads to start

InnoDB: Rolling back of trx id 127203F completed
170824 19:02:01  InnoDB: Rollback of non-prepared transactions completed
170824 19:02:02 Percona XtraDB (http://www.percona.com) 5.5.40-MariaDB-36.1 started; log sequence number 653240202086
170824 19:02:02 InnoDB: !!! innodb_force_recovery is set to 1 !!!
170824 19:02:02 [Note] Plugin 'FEEDBACK' is disabled.
170824 19:02:02 [Note] Server socket created on IP: '0.0.0.0'.
170824 19:02:02 [Note] Event Scheduler: Loaded 0 events
170824 19:02:02 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.5.41-MariaDB'  socket: '/home/Alopex/mysql/mysql.sock'  port: 3306  MariaDB Server
InnoDB: A new raw disk partition was initialized or
InnoDB: innodb_force_recovery is on: we do not allow
InnoDB: database modifications by the user. Shut down
InnoDB: mysqld and edit my.cnf so that newraw is replaced
InnoDB: with raw, and innodb_force_... is removed.
InnoDB: A new raw disk partition was initialized or
InnoDB: innodb_force_recovery is on: we do not allow
InnoDB: database modifications by the user. Shut down
InnoDB: mysqld and edit my.cnf so that newraw is replaced
InnoDB: with raw, and innodb_force_... is removed.

看來是修好了
不過user還是不能用

InnoDB: innodb_force_recovery is on: we do not allow
InnoDB: database modifications by the user. Shut down
InnoDB: mysqld and edit my.cnf so that newraw is replaced
InnoDB: with raw, and innodb_force_... is removed.

要再把

[mysqld]
innodb_force_recovery = 1

mark掉再重開

目前看來是正常了
再觀察看看


https://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html

2017/08/23

今天早上使用proxmox裡的guest測了一下io

host

ProLiant DL380p Gen8

raid card














guest os

linux mint 直接使用cd boot 後執行 gnome-disks 跑benchmark


datastore 使用 xfs























datastore 使用 zfs (zfs是使用由raid card做raid 5 出來之後再用 raidz0)




















是不是要為了 remote replication 而浪費這些效能
就自己決定囉

補充硬碟資料


















每台host 上共有12個如上的hd
1個hot spare 另外11個做raid 5

另外再補充在pc上測試的結果

pc上的hd資料如下
3個500G SATA 直接接在主机板上



下圖為測試結果






2017/08/10

zfs 更換disk 流程如下

若disk已損壞
zpool status 會出現損壞disk的id
插上新disk後
執行
zpool replace fail_disk_id /dev/sdx

畫面如下

















若disk尚未損壞但已經有問題必須下線

則必需手動offline

zpool offline aaa /dev/sdb
插入新disk後
執行
zpool replace aaa /dev/sdb /dev/sdx

畫面如下


在ubuntu 16.04上建立zfs的流程如下

sudo zpool create mypool raidz /dev/sdb /dev/sdc /dev/sdd

以上指令為建立一個raidz (raid 5)的pool

pool type請參考以下連結

https://wiki.ubuntu.com/ZFS/ZPool

但碰到一個問題 就是每次開机不會自動把zpool mount進來

目前的解決方法是在 /etc/rc.local 加上以下二行

zpool import mypool

zfs mount -a

2017/08/08

如果graylog是直接使用ova
那heap space預設只有 1.4 G
效能不好
所以當os加完ram後要再調整

vi /etc/graylog/graylog-settings.json

修改以下參數

"custom_attributes": {
     "graylog-server": {
       "memory": "2000m"
     },
     "elasticsearch": {
       "memory": "2000m"
     }
   }

改好後

cp /opt/graylog/conf/graylog.conf /opt/graylog/conf/graylog.conf_bck

sudo graylog-ctl reconfigure

mv /opt/graylog/conf/graylog.conf_bck /opt/graylog/conf/graylog.conf

sudo graylog-ctl restart

http://docs.graylog.org/en/2.3/pages/configuration/graylog_ctl.html#graylog-ctl-advanced

2017/12/21 後記

在reconfigure之前記得要先把 /opt/graylog/conf/graylog.conf 先備分
因為reconfigure會把graylog.conf恢復成原始值
記得把備份檔還原後再 graylog-ctl restart

2017/08/04

proxmox升到5版後開始使用zfs
但碰到了二個問題
一個是效能感覺上跟之前使用ext4或xfs差很多
另外就是zfs會一直吃ram 直到把ram全吃完
查了很多資料
都是建議加SSD來當zfs的cache
但目前沒有多餘的預算
後來找到一份官方文件

https://pve.proxmox.com/wiki/ZFS_on_Linux

依照說明
先把zfs的ram使用量限制為10G (文件為8G)
另外限制swap的使用量

vi /etc/modprobe.d/zfs.conf

options zfs zfs_arc_max=10737418240

update-initramfs -u

vi /etc/sysctl.conf

vm.swappiness = 10

改完後記得要reboot

目前看來好多了
再觀察看看