graylog數(shù)據(jù)備份

前言


Graylog中使用MongoDB存儲配置數(shù)據(jù)稽亏,例如:用戶信息、stream信息配置數(shù)據(jù)等,沒有任何的日志數(shù)據(jù)是存儲在MongoDB中的。我們比較關(guān)心的日志數(shù)據(jù)是存儲在elasticsearch中驾孔,因此要做數(shù)據(jù)備份重要的是備份elasticsearch中的索引。

Elasticsearch數(shù)據(jù)的備份惯疙,可以使用snapshot API翠勉。這個會拿到集群當(dāng)前的狀態(tài)和數(shù)據(jù)然后保存在一個共享倉庫里面,并且是增量備份霉颠。備份的第一個快照會拷貝一份完整的數(shù)據(jù)对碌,而后續(xù)的快照則是保留已存快照和新數(shù)據(jù)之間的差異數(shù)據(jù)。隨著你不時的對數(shù)據(jù)進(jìn)行快照蒿偎,備份也在增量的添加和刪除朽们。這意味著后續(xù)備份會相當(dāng)快速,因為它們只傳輸很小的數(shù)據(jù)量诉位。
要使用這個功能骑脱,你必須首先創(chuàng)建一個保存數(shù)據(jù)的倉庫。有多個倉庫類型可以供你選擇:
1)共享文件系統(tǒng)苍糠,比如 NAS
2)Amazon S3
3)HDFS (Hadoop 分布式文件系統(tǒng))
4)Azure Cloud
本文以下介紹的為創(chuàng)建共享的目錄叁丧,作為備份數(shù)據(jù)的倉庫,在創(chuàng)建的倉庫中創(chuàng)建快照以備份數(shù)據(jù)。

信息匯總:
使用快照備份數(shù)據(jù)之前需要創(chuàng)建共享文件系統(tǒng)的倉庫拥娄,本次使用sshfs在ES集群中每個節(jié)點的相同位置掛載一個共享目錄蚊锹,下面列出集群環(huán)境中各個節(jié)點中用于數(shù)據(jù)備份的目錄及其作用。

IP 目錄 備注
192.168.2.121 /backup
/esData/backup
共享倉庫目錄
倉庫目錄
192.168.2.122 /esData/backup 倉庫目錄
192.168.2.123 /esData/backup 倉庫目錄

如上述表格所示稚瘾,本次搭建3節(jié)點的elasticsearch集群牡昆。
各個節(jié)點的/esData/backup目錄掛載到192.168.2.121的目錄/backup,
最終所有節(jié)點的備份數(shù)據(jù)都將存儲在192.168.2.121中的/backup目錄中孟抗。后續(xù)如果需要做數(shù)據(jù)遷移迁杨,遷移192.168.2.121的目錄/backup中的數(shù)據(jù)即可。

前期準(zhǔn)備


創(chuàng)建并掛載共享目錄

這里的共享目錄是指集群中的每個節(jié)點都能感知并將數(shù)據(jù)寫入到該倉庫的文件凄硼。

安裝sshfs

執(zhí)行如下命令安裝sshfs:

$ sudo yum install sshfs

至此铅协,sshfs安裝完成。

選定共享目錄

  1. 選擇在集群中一個節(jié)點上創(chuàng)建目錄作為共享目錄摊沉,本次選擇192.168.2.121節(jié)點:
    $ sudo mkdir /backup
    
  2. 更改所屬用戶:
    $ sudo chown -R monitorManager:monitorManager /backup
    
  3. 更改權(quán)限:
    $ sudo chmod -R 777 /backup
    

創(chuàng)建倉庫目錄

  1. 在每個節(jié)點的相同位置創(chuàng)建目錄:
    $ sudo mkdir /esData
    $ sudo mkdir /esData/backup
    
  2. 更改所屬用戶:
    $ sudo chown -R monitorManager:monitorManager /esData
    
  3. 更改權(quán)限:
    $ sudo chmod -R 777 /esData
    

測試elasticsearch用戶是否對創(chuàng)建的目錄有寫入權(quán)限

命令如下:

$ sudo -u elasticsearch touch /backup/test
$ sudo -u elasticsearch touch /esData/backup/test

每個節(jié)點掛載共享目錄

  1. /etc/fuse.conf中的user_allow_other注釋去掉狐史,否則下面的步驟2會有問題。
  2. 在每個節(jié)點中執(zhí)行如下命令说墨,將剛剛創(chuàng)建的目錄掛載到共享目錄上:
    $ sshfs monitorManager@172.30.5.132:/backup /esData/backup -o allow_other
    

說明:其中參數(shù)-o allow_other 是為了解決不同節(jié)點往共享倉庫中寫數(shù)據(jù)的權(quán)限問題骏全。

更改elasticsearch配置

更改elasticsearch配置文件

更改/etc/elasticsearch/elasticsearch.yml文件,在文件末尾添加path.repo配置倉庫目錄位置:

$ sudo vim /etc/elasticsearch/elasticsearch.yml

添加如下內(nèi)容:

path.repo: /esData/backup

保存文件并退出編輯尼斧。

重啟elasticsearch

重啟elasticsearch節(jié)點:

$ sudo systemctl restart elasticsearch.service

開始你的備份


創(chuàng)建倉庫

執(zhí)行如下命令姜贡,創(chuàng)建一個倉庫:

$ curl -XPUT 'http://192.168.2.121:9200/_snapshot/backup_1' -d '{
"type":"fs",
"settings":{
"location":"/esData/backup",
"compress":true
}
}'

說明:

  • 給我們的倉庫取一個名字,在本例它叫backup_1棺棵。
  • 我們指定倉庫的類型應(yīng)該是一個共享文件系統(tǒng)楼咳。
  • 最后,我們提供一個已掛載的設(shè)備作為目的地址烛恤,本例中位置為:/esData/backup母怜。
  • "compress":true代表壓縮備份。
    這步會在掛載點創(chuàng)建倉庫和所需的元數(shù)據(jù)缚柏。
    還有一些其他的配置你可能想要配置的苹熏,這些取決于你的節(jié)點、網(wǎng)絡(luò)的性能狀況和倉庫位置:
  • max_snapshot_bytes_per_sec:當(dāng)快照數(shù)據(jù)進(jìn)入倉庫時币喧,這個參數(shù)控制這個過程的限流情況轨域。默認(rèn)是每秒20mb。
  • max_restore_bytes_per_sec:當(dāng)從倉庫恢復(fù)數(shù)據(jù)時杀餐,這個參數(shù)控制什么時候恢復(fù)過程會被限流以保障你的網(wǎng)絡(luò)不會被占滿干发。默認(rèn)是每秒20mb。
    假設(shè)我們有一個非沉常快的網(wǎng)絡(luò)铐然,而且對額外的流量也很 OK蔬崩,那我們可以增加這些默認(rèn)值:
$ curl -XPOST 'http://192.168.2.121:9200/_snapshot/backup_1' -d '{
"type":"fs",
"settings":{
"location":"/esData/backup",
"max_snapshot_bytes_per_sec" : "50mb",
"max_restore_bytes_per_sec" : "50mb"
"compress":true
}
}'

注意:注意我們用的是 POST而不是PUTPOST會更新已有倉庫的設(shè)置搀暑。
查看倉庫指定倉庫:

$ curl -XGET 'http://192.168.2.121:9200/_snapshot/my_backup?pretty'

查看所有倉庫:

$ curl -XGET 'http://192.168.2.121:9200/_snapshot?pretty'

或者

$ curl -XGET 'http://192.168.2.121:9200/_snapshot/_all?pretty'

說明:pretty參數(shù)會讓返回數(shù)據(jù)可讀性提高沥阳,顯示縮進(jìn),以json的格式返回到控制臺自点。

快照索引

一個倉庫可以包含同一個集群的多個快照桐罕。快照根據(jù)集群中的唯一名字進(jìn)行區(qū)分桂敛。
快照所有打開的索引:

$ curl -XPUT 'http://192.168.2.121:9200/_snapshot/backup_1/snapshot_1?pretty&wait_for_completion=true'

這個會備份所有打開的索引到backup_1倉庫下一個命名為 snapshot_1 的快照里功炮。wait_for_completion參數(shù)指定創(chuàng)建snapshot的請求是否等待快照創(chuàng)建完成再返回。
快照指定索引:

$ curl -XPUT 'http://192.168.2.121:9200/_snapshot/backup_1/snapshot_2018_03_23' -d '{"indices":"test_28"}?pretty&wait_for_completion=true'

上面的命令快照了索引名為test_28的索引术唬,可以指定多個索引名稱薪伏,如:"indices":"test_28,test_27,test_26"
監(jiān)控快照進(jìn)度:

$ curl -XGET 'http://192.168.2.121:9200/_snapshot/backup_1/snapshot_2018_03_23/_status?pretty'

wait_for_completion=true只是顯示基礎(chǔ)信息,對于大型的集群備份時這個指標(biāo)是不夠用的粗仓,上面的_status可以顯示全面的信息嫁怀,一個正在運行的快照會顯示 IN_PROGRESS作為狀態(tài)。
INITIALIZING
分片在檢查集群狀態(tài)看看自己是否可以被快照借浊。這個一般是非程潦纾快的。
STARTED
數(shù)據(jù)正在被傳輸?shù)絺}庫蚂斤。
FINALIZING
數(shù)據(jù)傳輸完成存捺;分片現(xiàn)在在發(fā)送快照元數(shù)據(jù)。
DONE
快照完成曙蒸!
FAILED
快照處理的時候碰到了錯誤捌治,這個分片/索引/快照不可能完成了。檢查你的日志獲取更多信息逸爵。
查看指定快照:
例如具滴,你想要查看backup_1倉庫中名為snapshot_2018_03_23的快照凹嘲,你就可以使用下面的命令师倔。

$ curl -XGET 'http://172.30.5.133:9200/_snapshot/backup_1/snapshot_2018_03_23?pretty'

查看所有快照:
查看backup_1倉庫中的所有快照。

$ curl -XGET 'http://192.168.2.121:9200/_snapshot/backup_1/_all?pretty'

刪除快照:
刪除backup_1倉庫中的snapshot_1的快照周蹭。

$ curl -XDELETE 'http://192.168.2.121:9200/_snapshot/backup_1/snapshot_1'

取消一個快照:
要取消一個快照趋艘,在他進(jìn)行中的時候簡單的刪除快照就可以:

$ curl -XDELETE 'http://192.168.2.121:9200/_snapshot/backup_1/snapshot_1'

這個會中斷快照進(jìn)程,然后刪除倉庫里進(jìn)行到一半的快照凶朗。

從快照恢復(fù)

一旦你備份過了數(shù)據(jù)瓷胧,恢復(fù)它就簡單了:只要在你希望恢復(fù)回集群的快照ID后面加上_restore即可。
快照恢復(fù):

$ curl -XPOST 'http://192.168.2.121:9200/_snapshot/backup_1/snapshot_1/_restore?pretty&wait_for_completion=true'

默認(rèn)情況下棚愤,把這個快照里存有的所有索引都恢復(fù)搓萧。如果 snapshot_1包括五個索引杂数,這五個都會被恢復(fù)到我們集群里。
此外瘸洛,你可以指定索引名稱恢復(fù)指定的索引揍移,同樣可以使用 include_global_state 選項來防止恢復(fù)集群的狀態(tài)。 indices 支持配置多個索引multi index syntax.rename_patternrename_replacement 選項可以在恢復(fù)的時候使用正則表達(dá)式來重命名index反肋。例如:

$ curl -XPOST "192.168.2.121:9200/_snapshot/backup_1/snapshot_1/_restore" -d '{
    "indices": "index_1,index_2",
    "ignore_unavailable": "true",
    "include_global_state": false,
    "rename_pattern": "index_(.+)",
    "rename_replacement": "restored_index_$1"
}'

說明:

  • 只恢復(fù)index_1那伐、index_2索引,忽略快照中存在的其余索引石蔗。
  • rename_pattern查找所提供的模式能匹配上的正在恢復(fù)的索引罕邀。
  • rename_replacement 然后把它們重命名成替代的模式。

上述命令會恢復(fù)index_1养距、index_2 到你及群里诉探,但是重命名成了restored_index_1restored_index_2棍厌。
取消快照恢復(fù):
要取消一個恢復(fù)阵具,你需要刪除正在恢復(fù)的索引。 因為恢復(fù)進(jìn)程其實就是分片恢復(fù)定铜,發(fā)送一個 刪除索引 API 修改集群狀態(tài)阳液,就可以停止恢復(fù)進(jìn)程。比如:

$ curl XDELETE 'http://192.168.2.121:9200/restored_index_3'

如果restored_index_3 正在恢復(fù)中揣炕,這個刪除命令會停止恢復(fù)帘皿,同時刪除所有已經(jīng)恢復(fù)到集群里的數(shù)據(jù)。

數(shù)據(jù)遷移


數(shù)據(jù)備份之后在共享目錄/backup中是這樣的:

  1. 在遷移目標(biāo)的集群上重復(fù)上面創(chuàng)建倉庫的步驟畸陡。
  2. 將源集群的備份內(nèi)容(/backup里的所有文件)鹰溜,復(fù)制到遷移目標(biāo)的集群倉庫目錄里。
  3. 在遷移目標(biāo)集群上丁恭,使用RESTful API進(jìn)行備份的恢復(fù)曹动,如果索引已經(jīng)存在目標(biāo)的集群,需要先關(guān)閉索引牲览,恢復(fù)數(shù)據(jù)后在開啟墓陈。
    $ curl XPOST 'http://ip:port/index_name/_close'
    $ curl XPOST 'http://ip:port/_snapshot/backup_1/snapshot_name/_restore'
    $ curl XPOST 'http://ip:port/index_name/open'
    
  4. 查看恢復(fù)狀態(tài)
    $ curl XGET 'http://ip:port/_snapshot/backup_1/snapshot_name/_status?pretty'
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市第献,隨后出現(xiàn)的幾起案子贡必,更是在濱河造成了極大的恐慌,老刑警劉巖庸毫,帶你破解...
    沈念sama閱讀 212,332評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仔拟,死亡現(xiàn)場離奇詭異,居然都是意外死亡飒赃,警方通過查閱死者的電腦和手機利花,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評論 3 385
  • 文/潘曉璐 我一進(jìn)店門科侈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人炒事,你說我怎么就攤上這事兑徘。” “怎么了羡洛?”我有些...
    開封第一講書人閱讀 157,812評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長欲侮。 經(jīng)常有香客問我崭闲,道長威蕉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,607評論 1 284
  • 正文 為了忘掉前任韧涨,我火速辦了婚禮,結(jié)果婚禮上虑粥,老公的妹妹穿的比我還像新娘。我一直安慰自己娩贷,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,728評論 6 386
  • 文/花漫 我一把揭開白布彬祖。 她就那樣靜靜地躺著,像睡著了一般储笑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上突倍,一...
    開封第一講書人閱讀 49,919評論 1 290
  • 那天,我揣著相機與錄音赘方,去河邊找鬼弱左。 笑死窄陡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拆火。 我是一名探鬼主播跳夭,決...
    沈念sama閱讀 39,071評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼涂圆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了币叹?” 一聲冷哼從身側(cè)響起润歉,我...
    開封第一講書人閱讀 37,802評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颈抚,沒想到半個月后踩衩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,256評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡贩汉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,576評論 2 327
  • 正文 我和宋清朗相戀三年驱富,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匹舞。...
    茶點故事閱讀 38,712評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡褐鸥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赐稽,到底是詐尸還是另有隱情叫榕,我是刑警寧澤,帶...
    沈念sama閱讀 34,389評論 4 332
  • 正文 年R本政府宣布姊舵,位于F島的核電站晰绎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏括丁。R本人自食惡果不足惜寒匙,卻給世界環(huán)境...
    茶點故事閱讀 40,032評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望躏将。 院中可真熱鬧锄弱,春花似錦、人聲如沸祸憋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚯窥。三九已至掸鹅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拦赠,已是汗流浹背巍沙。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荷鼠,地道東北人句携。 一個月前我還...
    沈念sama閱讀 46,473評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像允乐,于是被迫代替她去往敵國和親矮嫉。 傳聞我的和親對象是個殘疾皇子削咆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,606評論 2 350

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理拨齐,服務(wù)發(fā)現(xiàn)昨寞,斷路器,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • feisky云計算熟史、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,833評論 0 5
  • 翻譯自官網(wǎng)蹂匹, 水平有限凹蜈,用于自查。轉(zhuǎn)載請注明網(wǎng)址: http://www.reibang.com/p/f53ce0...
    朱柏霖閱讀 1,248評論 0 1
  • 1基本安裝1.1在基于RHEL的系統(tǒng)中安裝Cassandra1.1.1必要條件? YUM包管理器? Root或...
    戰(zhàn)神湯姆閱讀 1,041評論 0 4
  • 我喜歡和自己對話,在交談中找到兩個我的區(qū)別妈橄,找到善與惡的紅線,好與壞的距離鼻种;也或者找到對話中自己的共通點沙热,握手點頭...
    王小草兒閱讀 919評論 7 6