2017年1月8日 星期日

在 CentOS7/RHEL7 上,安裝 Monitorix 監控系統

設定提要:
  • Apache Web 以及 php 套件安裝,請參考這一篇
  • Mariadb (或是MySQL) Server 安裝,請參考這一篇
快速設定流程:
  1. 安裝 EPEL 套件:
    #yum install epel-release
    #yum upgrade epel-release
    
  2. 利用 YUM ,安裝 monitorix:
    #yum install monitorix
    
  3. 啟動 monitorix:
    #systemctl start monitorix
    
  4. 利用 firefox ,打開 http://localhost:8080 網頁即可!

  5. 監控多部主機:
  6. 在每一個被監控主機上,安裝 moitorix 套件:
    #yum install epel-release
    #yum upgrade epel-release
    #yum install monitorix
    #systemctl start monitorix
    
  7. 在監控主機上,設定 multihost 項目參數:
    #vim /etc/monitorix/monitorix.conf
    <multihost>
            enabled = y
            footer_url = y
            graphs_per_row = 2
            remotehost_list = Server1, Server2
            <remotehost_desc>
                 0 = http://www.example.com,/monitorix,/monitorix-cgi
                 1 = http://192.168.0.100:8080,/,/
            </remotehost_desc>
    
            groups = n
            remotegroup_list = My Group
            <remotegroup_desc>
                  0 = Server1, Server2
            </remotegroup_desc>
    </multihost>
    
  8. 在監控主機上,重新啟動 monitorix:
    #systemctl restart monitorix
    

參考文獻:
  • http://www.monitorix.org/doc-redhat.html

2017年1月5日 星期四

在 CentOS7/RHEL7上,架設 Care2X 站台!

設定提要:
  • Apache Web 以及 php 套件安裝,請參考這一篇
  • Mariadb (或是MySQL) Server 安裝,請參考這一篇
快速設定流程:
  1. 在網頁目錄下,下載 Care2X 軟體:
    #cd /var/www/html
    #mkdir care2x
    #git clone https://github.com/care2x/care2x
    
  2. 修正權限設定:
    #chown -R apache.apache care2x
    #chmod o=--- -R care2x/
    
  3. 利用瀏覽器,進行設定:
    #firefox http://localhost/care2x
    
    出現下圖畫面:

  4. 出現系統設定相關參數頁面:

  5. 為符合設定,所以先在 MariaDB 內,新增資料庫與使用者:
    #mysql -u root -p
    MariaDB [(none)]> CREATE DATABASE care2x;
    MariaDB [(none)]> CREATE USER 'care2x'@'localhost' IDENTIFIED BY 'FuckingYourMotherPassword';
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON care2x.* TO 'care2x'@'localhost';
    MariaDB [(none)]> exit;
    

  6. 填入資料後,可以按「continue...」(記得要按 「Save」):

  7. 出現檢查表,請設法將所有項目變成綠色勾:
  8. 為符合設定,加裝 php 延伸套件:
    #yum install php-imap calendar php-adodb
    #mkdir cache
    #chmod 777 cache
    #chown apache.apache cache
    
    修改完後,檢查表請按「Restart Installation」,進行重新填入資料的動作...
  9. 修正後,檢查表應全部為綠色勾:

  10. 同意 License :

  11. 資料庫內的資料表產生中:

  12. 選定ICD(流行疾病分類)資料表格式,本站選用 ICD10 EN:

  13. 資料表新增中:

  14. 再選一次資料表,本站選擇OPS31 ES:

  15. 資料表新增中:

  16. (接下來,又要選呀?好吧,就每一項都選........):

  17. PS:按完,才知道自已有病....只要按「Done」就好啦~~~~
  18. 按 Done,結束:

  19. 安裝完成的畫面:

  20. 完成後的網站畫面:

  • https://github.com/care2x/care2x

2017年1月4日 星期三

在 CentOS7/RHEL7上,架設 PHPBB 站台!

設定提要:
  • Apache Web 以及 php 套件安裝,請參考這一篇
  • Mariadb (或是MySQL) Server 安裝,請參考這一篇
快速設定流程:
  1. 在網頁目錄下,下載 phpBB 3.1 版的壓縮檔:
    #cd /var/www/html
    #wget https://www.phpbb.com/files/release/phpBB-3.1.10.zip
    (請順便下載正體中文語言包!)
    
  2. 解開壓風縮檔:
    # unzip phpBB-3.1.10.zip
    #unzip mandarin_chinese_traditional_script_3_1_10.zip
    
  3. 將正體中文語言檔目錄,放至正確的位置:
    #cd mandarin_chinese_traditional_script_3_1_10/language/
    #cp -a zh_cmn_hant/ ../../phpBB3/language/
    #cd ../
    #cd styles/
    #cp -a prosilver/ ../../phpBB3/styles/
    #cp -a subsilver2/ ../../phpBB3/styles/
    

  4. 利用瀏覽器連上主機的 phpBB3 目錄:
    #firefox http://localhost/phpBB3
    
    範例圖:

  5. 選擇右上角的語言功能,換成正體中文!

  6. 選擇全新安裝,進行安裝 phpBB3!
    test

  7. 檢視安裝條件,應全部為「是」!(資料庫的部份,只要 MySQL 項目為「是」即可)



  8. 修改 config.php 權限,使其為「可寫入的」狀況!
    #cd /var/www/html/phpBB3
    #chmod 664 config.php
    #chown apache.apache config.php
    
    (改完後,重新整理該頁面!如下圖所示!)
    


    沒問題,即可「開始安裝」

  9. 在 MariaDB 內,新增資料庫與使用者:
    #mysql -u root -p
    MariaDB [(none)]> CREATE DATABASE phpBB3;
    MariaDB [(none)]> CREATE USER 'phpBB3'@'localhost' IDENTIFIED BY 'FuckingYourMotherPassword';
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON phpBB3.* TO 'phpBB3'@'localhost';
    MariaDB [(none)]> exit;
    
  10. 將上一步驟資料,依序填入下圖中的欄位:

    ※資料庫連結成功,就會出現下圖!
    PStest

  11. 設定論壇管理員的帳密!

    設定成功,就會出現下圖!

  12. 若剛才 config.php 有設定正確權限,此步驟將出現下圖!

  13. 填入相關的 E-mail 送信主機與帳密(如果想用本機送信,就略過該設定):

  14. 出現下圖,表示資料庫內的資料表已經建立完成!

  15. 安裝若順利,應該就會出下圖!之後,請記得更改 install 目錄名稱!

  16. 一開始的 ACP 管理員登入後的畫面!

  17. 管理員登出 ACP 之後的晝面!

參考文獻:
  • https://www.phpbb.com/downloads/

2016年11月21日 星期一

在 CentOS7/RHEL7 上,使用快照分層化(Snapshot layering)快速建立影像檔案!

設定提要:
  • Ceph Hammer 套件的架設,請參考這一篇
  • Ceph Block 的使用,請參考這一篇
  • 管理 RBD 快照的方式,請參考這一篇
快速設定流程:
  1. 在 ServerC 上建立一個 128MB 的 RDB 映像檔:(--image-format 2 是啟動分層功能的方式!)
    [root@serverc ~]#rbd create test-clone --image-format 2 --size 128
    
  2. 在 ServerB 上建立一個指標,指到上一步驟所建立的 RDB 映像檔:
    [root@serverb ~]# rbd --id rbd.serverb map test-clone
    [root@serverb ~]# rbd --id rbd.serverb showmapped
    id pool image      snap device    
    0  rbd  test-clone -    /dev/rbd0 
    
  3. 在 ServerB 上,針對 RDB 映像檔,建立檔案系統,並且掛載到 /mnt/clones 目錄下:
    [root@serverb ~]#mkfs.ext4 /dev/rbd0
    [root@serverb ~]#mkdir /mnt/clones
    [root@serverb ~]#mount /dev/rbd0 /mnt/clones
    
  4. 在 ServerB 上,新增一個 10MB 的檔案到 /mnt/clones 目錄下:
    [root@serverb ~]#dd if=/dev/zero of=/mnt/clones/file-1 bs=1M count=10
    
  5. 在 ServerC 上,新增一個新的 snapshot:
    [root@serverc ~]#rbd snap create --snap my-snapshot test-clone
    
  6. 在 ServerC 上,建立一個 my-snapshot 複本在 test-clone 內,名為 my-clone:
    [root@serverc ~]#rbd clone --image test-clone --snap my-snapshot --dest my-clone
    
  7. 在 ServerC 上,確認 my-clone 有完整被建立起來:
    [root@serverc ~]#rbd children --image test-clone --snap my-snapshot
    
  8. 在 ServerC 上,扁平化 my-clone 影像檔:
    [root@serverc ~]#rbd flatten --image my-clone
    
  9. 在 ServerB 上建立一個指標,指到新建立的 my-clone 映像檔:
    [root@serverb ~]#rbd --id rbd.serverb map my-clone
    [root@serverb ~]# rbd --id rbd.serverb showmapped
    
  10. 在 ServerB 上,缷載 /mnt/clones 目錄:
    [root@serverb ~]#umount /mnt/clones
    
  11. 在 ServerB 上,掛載新的 RBD 檔到 /mnt/clones 目錄:
    [root@serverb ~]#mount /dev/rbd1 /mnt/clones
    
  12. 在 ServerB 上,查詢 /mnt/clones 目錄,是否有 file-1 檔案:
    [root@serverb ~]#ls /mnt/clones
    

2016年11月17日 星期四

在 CentOS7/RHEL7 上,管理 RBD 快照檔案!

設定提要:
  • Ceph Hammer 套件的架設,請參考這一篇
  • Ceph Block 的使用,請參考這一篇
快速設定流程:
  1. 在 ServerC 上建立一個 128MB 的 RDB 映像檔:
    [root@serverc ~]# rbd create test-snapshot --size 128
    
  2. 在 ServerB 上建立一個指標,指到上一步驟所建立的 RDB 映像檔:
    [root@serverb ~]# rbd --id rbd.serverb map test-snapshot
    [root@serverb ~]# rbd --id rbd.serverb showmapped
    id pool image         snap device    
    0  rbd  test-snapshot -    /dev/rbd0 
    
    
  3. 在 ServerB 上,將 RDB 映像檔格式化成 ext4 檔案系統:
    [root@serverb ~]# mkfs.ext4 /dev/rbd0
    
  4. 在 ServerB 上,將 RDB 映像檔掛載起來:
    [root@serverb ~]# mkdir /mnt/snapshots
    [root@serverb ~]# mount /dev/rbd0 /mnt/snapshots
    
  5. 在 ServerB 上,利用 df 指令來查看檔案系統:
    [root@serverb ~]# df -h
    
  6. 利用 dd 指令,在 snapshots 目錄內,建一個 10MB 的檔案:
    [root@serverb ~]# dd if=/dev/zero of=/mnt/snapshots/file-1 bs=1M count=10
    
  7. 在 ServerC 上建立一個 RDB 快照檔案,指向 RDB 映像檔:
    [root@serverc ~]# rbd snap create --snap my-snapshot test-snapshot
    
  8. 在 ServerB 上,利用 dd 指令,在 snapshots 目錄內,建另一個 10MB 的檔案:
    [root@serverb ~]# dd if=/dev/zero of=/mnt/snapshots/file-2 bs=1M count=10
    [root@serverb ~]#ls /mnt/snapshots
    
  9. 在 ServerC 上建立另一個 RDB 快照檔案,指向 RDB 映像檔:
    [root@serverc ~]# rbd snap create --snap another-snap test-snapshot
    
  10. 在 ServerB 上,缷載 /mnt/snapshots 目錄:
    [root@serverb ~]#umount /mnt/snapshots
    
  11. 在 ServerC 上,列出所有建立的 RDB 快照檔案:
    [root@serverc ~]# rbd --id rbd.serverb snap ls test-snapshot
    
  12. 在 ServerC 上,返回到第一個 RDB 快照, my-snapshot:
    [root@serverc ~]# rbd snap rollback --snap my-snapshot test-snapshot
    
  13. 在 ServerB 上,將 RDB 映像檔掛載起來:
    [root@serverb ~]# mount /dev/rbd0 /mnt/snapshots
    [root@serverb ~]#ls /mnt/snapshots
    
  14. 在 ServerB 上,缷載 /mnt/snapshots 目錄:
    [root@serverb ~]#umount /mnt/snapshots
    
  15. 在 ServerC 上,返回到第二個 RDB 快照, another-snapshot:
    [root@serverc ~]# rbd snap rollback --snap another-snap test-snapshot
    
  16. 在 ServerB 上,將 RDB 映像檔掛載起來:
    [root@serverb ~]# mount /dev/rbd0 /mnt/snapshots
    [root@serverb ~]#ls /mnt/snapshots
    

2016年10月25日 星期二

在 CentOS7/RHEL7 上,使用 Ceph Block 設備(RBD)

設定提要:
  • Ceph Hammer 套件的架設,請參考這一篇
快速設定流程:
  1. 切換到建立 Ceph 時的目錄:
    #cd ~/ceph-deploy
    
  2. 編輯 Ceph 設定檔:
    #vim ceph.conf
    (在檔尾追加下列設定:)
    [client]
    rbd_cache = true
    rbd_cache_writethrough_until_flush = true
    
  3. 重新配置 Ceph :
    #ceph-deploy --overwrite-conf config push serverd servere
    
  4. 為 RBD 客戶端建立憑證:
    #ceph auth get-or-create client.rbd.serverb osd 'allow rwx pool=rbd' mon 'allow r' -o /etc/ceph/ceph.client.rbd.serverb.keyring
    
    (上述指令若輸入錯誤,請先刪除,再重新輸入:)
    ceph auth del client.rbd.serverb
    
  5. 建立一個 RBD 影像檔:
    #rbd create test --size 128
    
  6. 確認剛才建立的 RBD 影像檔:
    #rbd info test
    
  7. 切換至 Serverb 主機,安裝 Ceph 指令工具:
    #yum install -y ceph-common
    
  8. 在 Serverb 主機上,啟動 RBD Map 服務:
    #chkconfig rbdmap on
    #systemctl start rbdmap
    
  9. 在 Serverb 主機,導入 RBD 核心驅動工具:
    #modprobe rbd
    #lsmod | grep rbd
    
  10. 將 ServerC 上的 keyring 與 ceph.conf 檔,複製到 Serverb 主機:
    #scp root@serverc:/etc/ceph/ceph.client.rbd.serverb.keyring /etc/ceph/
    #scp root@serverc:/etc/ceph/ceph.conf /etc/ceph/
    
  11. 在 Serverb 主機上,繪製 RBD 影像檔:
    #rbd --id rbd.serverb map test
    
  12. 在 Serverb 主機上,驗證 RBD 影像檔:
    #rbd --id rbd.serverb showmapped
    
  13. 在 Serverb 主機上,將 RBD 影像檔,製成檔案系統:
    #mkfs.ext4 /dev/rbd0
    #mkdir /mnt/rbd
    #mount /dev/rbd0 /mnt/rbd
    
    (亦可寫入 /etc/fstab 檔案內:)
    /dev/rbd0  /mnt/rbd  ext4 defaults,_netdev 0 0
    
  14. 測試一下效能:
    #dd if=/dev/zero of=/tmp/test1 bs=10M count=1
    #df
    #cp /tmp/test1 /mnt/rbd
    #ls /mnt/rbd/
    #rados --id rbd.serverb df
    #dd if=/dev/zero of=/tmp/test2 bs=10M count=1
    #cp /tmp/test2 /mnt/rbd
    #df
    #rados --id rbd.serverb df
    
  15. 在 Serverb 主機上,利用 rbd put 指令,上傳物件到 RADOS :
    #dd if=/dev/zero of=/tmp/test3 bs=10M count=1
    #rados --id rbd.serverb -p rbd put test3 /mnt/test3
    #rados --id rbd.serverb df
    #rados --id rbd.serverb -p rbd stat test3
    
    (以下是不允許的狀況:)
    #rados --id rbd.serverb -p data put test1 /tmp/test1
    

2016年10月21日 星期五

在 CentOS7/RHEL7 上,安裝 Ceph Storage 系統

設定提要:
  • 使用 Ceph Hammer 套件來架設!
  • 先暫停 firewalld 服務,以利架設過程!
快速設定流程:
  1. 利用 yum 進行相關套件安裝:
    #yum -y install centos-release-ceph-hammer
    #yum -y install ceph-deploy
    
  2. 建立 Ceph 設定目錄:
    #mkdir ~/ceph-deploy
    
  3. 建立 Ceph 安裝設定檔:
    #cd ~/ceph-deploy
    #ceph-deploy new serverc serverd servere
    
    (若無架設 DNS Server,請預先在 /etc/hosts 建立相關主機設定,並複至到其他主機)
    192.168.0.1 serverc serverc.example.com
    192.168.0.2 serverd serverd.example.com
    192.168.0.3 servere servere.example.com
    
    
  4. 建立 ssh key ,並複製到其他主機:
    #ssh-keygen -t rsa
    #ssh-copy-id root@serverd
    #ssh-copy-id root@servere
    
  5. 修改 Ceph 安裝設定檔:
    #cd ~/ceph-deploy
    #vim ceph.conf
    (增加下列設定:)
    osd journal size = 1024
    osd pool default size = 2
    osd pool default min size = 1
    public network = 192.168.0.0/24
    [mon]
    mon osd allow primary affinity = 1
    
  6. 安裝 Ceph 至各主機上:
    #ceph-deploy install serverc serverd servere
    
  7. 在 ServerC 上,安裝 Ceph 監視器,監視各主機運作:
    #ceph-deploy mon create serverc serverd servere
    
  8. 在 ServerC 上,收集 Ceph 監視器金鑰:
    #ceph-deploy gatherkeys serverc
    
  9. 在 ServerC 上,查詢 Ceph Cluster 狀態:
    #ceph -s
    
  10. 在 ServerC 上,查詢 ServerC 的硬碟空間狀態:
    #ceph-deploy disk list serverc
    
  11. 使用各 Server 上的 vdb 的硬碟空間:
    #cd ~/ceph-deploy
    #ceph-deploy osd create serverc:vdb serverd:vdb servere:vdb
    
    (做完後,記得要重開機!)
    
  12. 在 ServerC 上,再次查詢 Ceph Cluster 狀態:
    #ceph -s
    
  13. 在 ServerC 上,查詢 Ceph Cluster 狀態的方式:
    #ceph -w
    #service ceph status mon
    #service ceph status osd
    #ps -ef | grep ceph-osd
    #service ceph stop osd
    #ceph osd tree
    #service ceph start osd
    #ceph osd tree
    
  14. 如果修改了 ceph-deploy 下的 ceph.conf 檔案,可重新再配置 ceph :
    #vim ~/ceph-deploy/ceph.conf
    (加入下列幾行:)
    [mon]
    mon_clock_drift_allowed = 1
    mon_clock_drift_warn_backoff = 30
    
    (開啟重新配置)
    #ceph-deploy --overwrite-conf config push serverc serverd servere
    #service ceph restart mon
    #ssh serverd "service ceph restart mon"
    #ssh servere "service ceph restart mon"
    

RADOS 驗證:
  1. 在 ServerC 上,建立一個小檔案,並上載到 RADOS server:
    #dd if=/dev/zero of=/tmp/test bs=10M count=1
    #rados mkpool data
    #rados -p data put test1 /tmp/test
    #rados df
    
    (再多推一些東西上去:)
    #rados -p data put test2 /tmp/test
    #rados -p data put test3 /tmp/test
    #rados df
    
  2. 刪除 RADOS server 內的資料:
    #rados -p data rm test1
    #rados -p data rm test2
    #rados -p data rm test3
    

CephX 的驗證機制:
  1. 在 ServerC 上,使用 Ceph 的監看模式,查看CephX上的ID與金鑰:
    #ceph --id admin --keyring /etc/ceph/ceph.client.admin/keyring -w
    
  2. 使用 rbd 指令,建立一個影像檔:
    #rbd --id admin --keyring /etc/ceph/ceph.client.admin.keyring create --size 1024 testimg
    
  3. 使用 rbd 指令,移除先前建立一個影像檔:
    #rbd --id admin --keyring /etc/ceph/ceph.client.admin.keyring rm testimg
    
  4. 可以利用 Shell 指令,指定一部份的 rbd 指令:
    #CEPH_ARGS='--id user --keyring /etc/ceph/ceph.client.user.keyring'
    
  5. 增加一個使用者 rhuser 到 Ceph 內:
    ceph auth get-or-create client.rhuser mds 'allow' osd 'allow *' mon 'allow *' -o /etc/ceph/ceph.client.rhuser.keyring
    
  6. 查詢使用者相關資料與權限:
    #ceph auth list
    
  7. 修訂使用者 rhuser 相關資料與權限:
    #ceph --id admin --keyring /etc/ceph/ceph.client.admin.keyring auth caps client.rhuser osd 'allow * pool=data' mon 'allow *'