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/

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

2017/03/14

如何在shell中直接下mysql的指令

mysql -u root -p1234 database -e"select * from data;" >> $tmp/data_from_db

如果不想顯示column 名稱 要加上 -N

mysql -u root -p1234 database -N -e"select * from data;" >> $tmp/data_from_db

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的名稱
可依需求更改
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

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

graylog預設是把log的訊息全部吃進去
不需要分欄位
直接用關鍵字搜尋即可找到資料(中英文都ok)
但如果一定要分欄位
graylog也提供了extractor的功能
可以根據user的需求依照message的內容來定義不同的field
但使用這個功能必須要特別注意
如果log的量太大而且message的內容又太多
會吃掉大量的資源(cpu ram 及io)
所以並不建議使用
之前提到如果要把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

2017/03/08

在graylog中設定dash board相當的簡單
首先新加一個dashboard
再來依照所需的條件進行search
search 後的結果在畫面的左及右分別有二個地方可以直接把結果加入dashboard
左方加入的是統計數量 右方加入的是長條圖









完成後就可以在dashboard上看到結果了
而且會一直自動更新喔

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內容 只是進行通知
必須要進到管理介面看

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秒檢查一次 如果有問題就重下指令

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