GlusterFS + lagstash + elasticsearch + kibana 3 + redis日誌收集儲存系統部署 01

來源:互聯網
上載者:User

標籤:

因公司資料安全和分析的需要,故調研了一下 GlusterFS +  lagstash + elasticsearch + kibana 3  + redis 整合在一起的日誌管理應用:安裝,配置過程,使用方式等續一,glusterfsDistributed File System部署:說明:公司想做網站業務日誌及系統日誌統一收集和管理,經過對mfs, fastdfs 等Distributed File System的調研,最後選擇了 glusterfs,因為Gluster具有高擴充性、高效能、高可用性、可橫向擴充的彈性特點,無中繼資料服務器設計使glusterfs沒有單點故障隱患,官網:www.gluster.org1.      系統內容準備:Centos 6.4         服務端:         192.168.10.101         192.168.10.102         192.168.10.188         192.168.10.189         用戶端:         192.168.10.103         EPEL源和GlusterFS源         增加EPEL源和GLusterFS源,EPEL源中包含GLusterFS,版本比較舊,相對穩定,本次測試採用最新的3.5.0版本。          rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm         wget -P /etc/yum.repos.dhttp://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo 2.      部署過程         服務端安裝:          yum -y install glusterfs glusterfs-fuseglusterfs-server         chkconfig glusterd on         service glusterd start         服務端配置:         將4個儲存節點群組成一叢集,本文在第一個節點執行,只需要在任意節點執行就ok。          [[email protected] ~]# gluster peer probe192.168.10.102         probe successful         [[email protected] ~]# gluster peer probe192.168.10.188         probe successful         [[email protected] ~]# gluster peer probe 192.168.10.189         probe successful         查看叢集的節點資訊:          [[email protected] ~]# gluster peer status         number of peers: 3         hostname: 192.168.10.102         uuid:b9437089-b2a1-4848-af2a-395f702adce8         state: peer in cluster (connected)         hostname: 192.168.10.188         uuid: ce51e66f-7509-4995-9531-4c1a7dbc2893         state: peer in cluster (connected)         hostname: 192.168.10.189         uuid:66d7fd67-e667-4f9b-a456-4f37bcecab29         state: peer in cluster (connected)         以/data/gluster為共用目錄,建立名為test-volume的卷,副本數為2:           sh cmd.sh "mkdir /data/gluster"         [[email protected] ~]#  gluster volume create test-volume replica 2192.168.10.101:/data/gluster 192.168.10.102:/data/gluster192.168.10.188:/data/gluster 192.168.10.189:/data/gluster         creation of volume test-volume has beensuccessful. please start the volume to access data.         啟動卷:          [[email protected] ~]# gluster volume starttest-volume         starting volume test-volume has beensuccessful         查看卷狀態:          [[email protected] ~]# gluster volume info         volume name: test-volume         type: distributed-replicate         status: started         number of bricks: 2 x 2 = 4         transport-type: tcp         bricks:         brick1: 192.168.10.101:/data/gluster         brick2: 192.168.10.102:/data/gluster         brick3: 192.168.10.188:/data/gluster         brick4: 192.168.10.189:/data/gluster3.      用戶端安裝配置:         安裝:          yum -y installglusterfs glusterfs-fuse         掛載:          mount -t glusterfs 192.168.10.102:/test-volume/mnt/ (掛載任意一個節點即可)推薦用這種方式。          mount -t nfs -o mountproto=tcp,vers=3192.168.10.102:/test-volume /log/mnt/ (使用nfs掛載,注意遠端的rpcbind服務必須開啟)         echo "192.168.10.102:/test-volume/mnt/ glusterfs defaults,_netdev 0 0" >> /etc/fstab (開機自動掛載)4.      測試         檢查檔案正確性          dd if=/dev/zero of=/mnt/1.img bs=1Mcount=1000 # 在掛載用戶端產生測試檔案         cp /data/navy /mnt/  # 檔案拷貝到儲存上          宕機測試。         使用glusterfs-fuse掛載,即使目標伺服器故障,也完全不影響使用。用NFS則要注意掛載選項,否則服務端故障容易導致檔案系統halt住而影響服務!          # 將其中一個節點停止儲存服務service glusterd stop         service glusterfsd stop# 在掛載用戶端刪除測試檔案         rm -fv /mnt/navy# 此時在服務端查看,服務被停止的節點上navy並未被刪除。此時啟動服務:serviceglusterd start# 數秒後,navy就被自動刪除了。新增檔案效果相同!5.      營運常用命令:
  刪除卷         gluster volume stop test-volume         gluster volume delete test-volume         將機器移出叢集         gluster peer detach 192.168.10.102         只允許172.28.0.0的網路訪問glusterfs         gluster volume set test-volumeauth.allow 192.168.10.*         加入新的機器並添加到卷裡(由於副本數設定為2,至少要添加2(4、6、8..)台機器)         gluster peer probe 192.168.10.105         gluster peer probe 192.168.10.106         gluster volume add-brick test-volume192.168.10.105:/data/gluster 192.168.10.106:/data/gluster         收縮卷         # 收縮卷前gluster需要先移動資料到其他位置         gluster volume remove-brick test-volume192.168.10.101:/data/gluster/test-volume192.168.10.102:/data/gluster/test-volume start         # 查看遷移狀態         gluster volume remove-brick test-volume192.168.10.101:/data/gluster/test-volume192.168.10.102:/data/gluster/test-volume status         # 遷移完成後提交         gluster volume remove-brick test-volume192.168.10.101:/data/gluster/test-volume192.168.10.102:/data/gluster/test-volume commit         遷移卷         # 將192.168.10.101的資料移轉到,先將192.168.10.107加入叢集         gluster peer probe 192.168.10.107         gluster volume replace-bricktest-volume 192.168.10.101:/data/gluster/test-volume192.168.10.107:/data/gluster/test-volume start         # 查看遷移狀態gluster volume replace-brick test-volume192.168.10.101:/data/gluster/test-volume192.168.10.107:/data/gluster/test-volume status         # 資料移轉完畢後提交gluster volume replace-brick test-volume192.168.10.101:/data/gluster/test-volume192.168.10.107:/data/gluster/test-volume commit         # 如果機器192.168.10.101出現故障已經不能運行,執行強制提交然後要求gluster馬上執行一次同步         gluster volume replace-bricktest-volume 192.168.10.101:/data/gluster/test-volume192.168.10.102:/data/gluster/test-volume commit -force         gluster volume heal test-volumes full         24007

 

 二.日誌收集系統部署說明簡解:系統各部分應用介紹Logstash:做系統log收集,轉載的工具。同時整合各類日誌外掛程式,對日誌查詢和分析的效率有很大的協助.一般使用shipper作為log收集、indexer作為log轉載.Logstash shipper收集log 並將log轉寄給redis 儲存Logstash indexer從redis中讀取資料並轉寄給elasticsearchredis:是一個db,logstash shipper將log轉寄到redis資料庫中儲存。Logstash indexer從redis中讀取資料並轉寄給elasticsearch。Elasticsearch:開源的搜尋引擎架構,前期部署簡單,使用也簡單,但後期需要做必要的最佳化具體請參照部落格http://chenlinux.com/categories.html#logstash-ref  中logstash部分.可進行多資料集群,提高效率。從redis中讀取資料,並轉寄到kibana中Kibana: 開源web展現。 虛擬伺服器準備:192.168.10.143    logstash shipper192.168.10.144       logstash  indexer redis192.168.10.145    elasticsearch  kibana31.三台主機都要安裝jdk 1.7推薦oracle jdk 1.7+版本java -version設定java的環境變數,比如  vim~/.bashrc >> JAVA_HOME=/usr/java/jdk1.7.0_55PATH=$PATH:/$JAVA_HOME/binCLASSPATH=.:$JAVA_HOME/libJRE_HOME=$JAVA_HOME/jreexport JAVA_HOME PATH CLASSPATH JRE_HOME>> source ~/.bashrc2.安裝redis(192.168.10.144)wgethttp://download.redis.io/releases/redis-2.6.16.tar.gztar -zxf redis-2.6.16.tar.gzcd redis-2.6.16make &&  make install./src/redis-server ../redis.conf  啟動redis用戶端來驗證安裝./src/redis-cli> keys *    #列出所有的key  3.安裝Elasticsearch(192.168.10.145)wgethttp://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.13.zip unzipelasticsearch-0.90.13.zipelasticsearch解壓即可使用非常方便,接下來我們看一下效果,首先啟動ES服務,切換到elasticsearch目錄,運行bin下的elasticsearchcd  elasticsearch-0.90.13bin/elasticsearch -f訪問預設的9200連接埠 curl -X GET http://localhost:9200          4.安裝logstash (192.168.10.143 ,192.168.10.144)wgethttp://download.elasticsearch.org/logstash/logstash/logstash-1.2.1-flatjar.jarlogstash下載即可使用,命令列參數可以參考logstash flags,主要有agent  #運行Agent模式-f CONFIGFILE #指定設定檔web    #自動Web服務-p PORT #指定連接埠,預設9292  5. 安裝kibana(192.168.10.145)logstash的最新版已經內建kibana,你也可以單獨部署kibana。kibana3是純粹JavaScript+html的用戶端,所以可以部署到任意http伺服器上。wgethttp://download.elasticsearch.org/kibana/kibana/kibana-latest.zip unzip kibana-latest.zip cp-r  kibana-latest /var/www/html可以修改config.js來配置elasticsearch的地址和索引。 修改以下行。 elasticsearch:"http://192.168.10.145:9200",       6.      整合配置:192.168.10.143 logstash shipper  配置收集日誌Vim /etc/logstash_shipper.conf    input{               file  {          type => "linux-syslog"           path => [ "/var/log/lastlog", "/var/log/syslog","/var/log/lastlog" ]         } }    output {        redis {        host => "192.168.10.144"                    port => “6379”        data_type =>"list"        key => "syslog"       }}      啟動logstash shipper       Nohup java –jar logstash-1.2.1-flatjar.jar agent –f /etc/ logstash_shipper.conf &              過十秒後,輸出如下資訊:Using milestone 2input plugin ‘file‘. This plugin should be stable, but if you see strangebehavior, please let us know! For more information on plugin milestones, seehttp://logstash.net/docs/1.2.2/plugin-milestones {:level=>:warn}Using milestone 2 output plugin ‘redis‘.This plugin should be stable, but if you see strange behavior, please let usknow! For more information on plugin milestones, see http://logstash.net/docs/1.2.2/plugin-milestones{:level=>:warn}  192.168.10.144  logstash indexer 配置如下:Vim /etc/logstash_indexer.conf input{   redis   {   host => "192.168.10.144"   data_type =>"list"   port => "6379"   key => "syslog"   type => "redis-input"   } } output   {   elasticsearch {   host => "192.168.10.145"   port => "9300"   }} 啟動logstash  indexer Nohup java –jar logstash-1.2.1-flatjar.jar agent –f /etc/ logstash_indexer.conf & 輸出同上。 7.      登入 http://192.168.10.145/kibana  訪問如下                             

三,整合分布式檔案儲存體和日誌收集系統 邏輯圖如下:

把glusterfs 掛載到web伺服器端,具體需要編寫日誌結構化程式配合日誌寫到glusterfs儲存上。

GlusterFS + lagstash + elasticsearch + kibana 3 + redis日誌收集儲存系統部署 01

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.