搜尋此網誌

2017年1月31日 星期二

使用 haproxy 來分流2


依照訪問的PORT號  分配訪問候端伺服器


frontend  http
bind 47.90.90.112:5222
bind 47.90.90.112:5333


設定規則
    acl d1 dst_port 5222
    use_backend JabberD1 if d1

依照規則分流
backend JabberD1
    tcp-check connect
    tcp-check send PING\r\n
    tcp-check expect string +PONG
    server Server1ZoneD 10.60.30.209:80  check

backend JabberE1
    tcp-check connect
    tcp-check send PING\r\n
    tcp-check expect string +PONG
    server Server1ZoneE 10.60.47.4:80    check


參考 http://serverfault.com/questions/577103/how-to-configure-haproxy-to-route-by-port-without-using-multiple-frontend-or-lis/589148

使用 haproxy 來分流1

先安裝 haproxy
yum install -y haproxy

先備份之後編輯 haproxy.cfg
vi /etc/haproxy/haproxy.cfg

當user訪問 47.90.90.112:5000 時,導向 47.90.33.129:8080
當user訪問 47.90.90.112:5001 時,導向 123.51.165.168:18080
並且設置 47.90.90.112:8088 監控儀表板觀察

...
frontend  http
bind 47.90.90.112:5000
bind 47.90.90.112:5001

acl rule1 dst_port 5000
acl rule2 dst_port 5001

use_backend   tpe   if   rule1
use_backend   hk    if   rule2


# HAProxy 監控儀表板
listen stats :8088
    mode http
    stats enable
    stats hide-version
    stats realm Haproxy\ Statistics
    stats uri /
    # 帳號密碼
    stats auth your_username:your_password
    stats refresh 10s


backend hk
    balance     roundrobin
    cookie SERVERID insert indirect nocache
    server  hk1 47.90.33.129:8080

backend tpe
    balance     roundrobin
    cookie SERVERID insert indirect nocache
    server  tpe1 123.51.165.168:18080



2017年1月24日 星期二

LINUX 命令控制台底下 取得 Public IP

curl ipinfo.io/ip

YUM fastmirror

yum makecache fast
yum install -y yum-plugin-fastestmirror

完成 fastestmirror 的安裝後,要確定已被啟用。
編輯 /etc/yum/pluginconf.d/fastestmirror.conf 並確認擁有下面幾行:

[main]
verbose = 0
socket_timeout = 3
enabled = 1
hostfilepath = /var/cache/yum/timedhosts.txt
maxhostfileage = 1


另外,
大陸區可以先去阿里雲抓取 Mirror 定義檔

cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/Centos-7.repo
mv CentOS-Base.repo CentOS-Base.repo.bak
cp Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo 

yum clern all
yum makecache fast

驗證一下,看看是否能順利安裝
yum -y install htop iftop multitail

接下來,EPEL 方面
mkdir /root/epel
cd /root/epel
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
yum -y localinstall epel-release-7-9.noarch.rpm

或者是

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm


- The End -

 參考 https://wiki.centos.org/zh-tw/PackageManagement/Yum/FastestMirror

2017年1月22日 星期日

將 USB 當成 VMFS Datastore

參考 USB Devices as VMFS Datastore in vSphere ESXi 6.5

http://www.virten.net/2016/11/usb-devices-as-vmfs-datastore-in-vsphere-esxi-6-5/


參考 USB Devices as VMFS Datastore in vSphere ESXi 6.0

http://www.virten.net/2015/10/usb-devices-as-vmfs-datastore-in-vsphere-esxi-6-0/


先 SSH 登入 ESXI,停止 USB 服務
/etc/init.d/usbarbitrator stop

查現有的儲存媒體清單
ls /dev/disks/

假設USB裝置名稱是 t10.Generic_STORAGE_DEVICE__
而USB裝置的第一個 partition 是 t10.Generic_STORAGE_DEVICE__:1

如果直接對第一個 partition 格式化,指令:
vmkfstools -C vmfs5 -S USB-Datastore /dev/disks/t10.Generic_STORAGE_DEVICE__:1

成功會出現:
Successfully created new volume: 58854a69-906db2a6-d2df-3497f6831c8b



設置儲存裝置的磁碟分割格式為gtp 指令:
partedUtil mklabel /dev/disks/t10.Generic_STORAGE_DEVICE__ gpt

刪除一個 partition 指令:
partedUtil delete /dev/disks/t10.Generic_STORAGE_DEVICE__ 1

創建一個 partition 指令:
partedUtil setptbl /dev/disks/t10.Generic_STORAGE_DEVICE__ gpt "1 2048 60629309 AA31E02A400F11DB9590000C2911D1B8 0"

對第一個 partition 格式化指令:
vmkfstools -C vmfs5 -S USB-Datastore /dev/disks/t10.Generic_STORAGE_DEVICE__:1

格式化完成之後,就會出現 USB-Datastore 的磁碟
vmkfstools -C vmfs5 -S USB-Datastore /dev/disks/t10.Generic_STORAGE_DEVICE__:1



註:AA31E02A400F11DB9590000C2911D1B8 是 VMFS 代號



如何在 Synology 上設定 NFS 讓 ESXI 連結使用(傳輸速度超快)

先下載準備好 Synology NFS VAAI Plug-in

1. 將 esx-nfsplugin.vib 上傳至 ESXI 的 datastore1 根目錄下。
SSH 連線至您的 ESXi 主機,然後執行下列指令。請確認
esxcli software vib install -v /vmfs/volumes/datastore1/esx-nfsplugin.vib --no-sig-check
然後 ESXI需重新開機

2. ESXI重新開機後,SSH 登入 esxi
輸入下列指令來確認是否已成功安裝 Synology NFS VAAI VIB
esxcli software vib list | grep nfs

可以看到安裝成功的提示。


3. 至 Synology NAS 啟用 NFS 服務
控制台>文件服務>啟動NFS 服務及啟用NFSV4>確定

4. 至共享文件,編輯共享文件夾的NFS規則
IP 欄位填入 ESXI 主機的IP > 確定
底下會看到裝載路徑的提示,例如:
/volume3/images

5. 至ESXI 控制台裡面去新增新的 datastore
選掛接 NFS 資料存放區
NFS Server IP 填入 NAS 的IP
NFS 共用填入 /volume3/images
NFS 版本必須選 NFS3

參考 How to setup NFS on Synology


在 windows 下查看 NFS 分享清單
showmount -e 192.168.1.200

連線網路磁碟
mount \\192.168.1.200\volume3\images z:

- The End -

2017年1月20日 星期五

修復centos 7 開機grub失敗

用 Clonezilla 再生龍 製作 centos7 映像檔出來後,還原回去之後卻
出現 symbol grub_xputs not found 這字樣  就停在 grub>

解決方式:

1.先用 centos 開機救援光碟開機進入 linux rescue 救援模式
2.進行以下指令步驟
#chroot /mnt/sysimage (將/mnt/sysimage 設為 root (/))
#sudo su
[root#]grub2-mkconfig -o /boot/grub2/grub.cfg
[root#]grub2-install /dev/sda
exit
exit
reboot


開機之後,可能發現網卡編號已經被 GRUB 修改了,
安裝 NetworkManager-tui 解決網卡設置問題

yum install -y NetworkManager-tui

執行
nmtui


另外有網友還分享了這個也很棒 Super Grub2 Disk

參考原文1
參考原文2
GRUB 設置參考




強制每次VM 開機都先進入BIOS設定畫面

vmx 檔案加入一行
bios.forceSetupOnce = "TRUE"


強制以 CDROM 開機則加入這一行
bios.bootOrder = "CDROM"


2017年1月18日 星期三

透過 Backup & Restore 加速 elasticsearch

直接將一台已經建立好索引的 ES,透過 FTP 方式將 NODE 資料,整個複製到一台新ES上,然後立刻讓新的 ES 能夠工作,一種人工手動複製的方法,適合實驗環境:

1. 先將 新ES 的服務停止:

2. 找出 源頭ES 的 NODE 資料,一般是指這個資料匣: /var/lib/elasticsearch/elasticsearch

然後將 elasticsearch 資料匣複製到 新ES上的
/var/lib/elasticsearch/

3. 啟動 新ES 的服務,並觀察 elasticsearch.log 內容

這樣就結束。


另外,以下是處理索引倉庫的部分, 僅參考用
在已經安裝好ES 的新機上
1. 備份 /var2/es_backup
2. 刪除 /var2/es_backup
3. 創建 /var2/es_backup
4. 改變 owner
chown -R elasticsearch:elasticsearch /var2/es_backup

5. 改變屬性
chmod -R 777 /var2/es_backup
chmod +t /var2/es_backup

6. 將資料FTP過來
7. 檢查
curl -XGET "localhost:9200/_snapshot/es_backup/_all"

8. 準備復原資料

curl -XPOST "localhost:9200/_all/_close"

curl -XPUT localhost:9200/_cluster/settings -d '{
"persistent" : {
"cluster.routing.allocation.node_concurrent_recoveries" : "5"
}
}'

curl -XPUT localhost:9200/_cluster/settings -d '{
"persistent" : {
"indices.recovery.max_bytes_per_sec": "200mb",
"indices.recovery.concurrent_streams": 5
}
}'

curl -XPOST "localhost:9200/_snapshot/es_backup/20170101/_restore?wait_for_completion=true"


- The End -

解決在巢狀虛擬機環境下 Geust VM 網路無法連外的問題

參考很重要的一篇文章

解決 Geust VM 在 Nested ESXi 網路無法連外的問題

在 ESXi 裡面的 vSwitch/Port group 安全性設定找到:
Promiscuous mode: 預設是 Reject (off)
MAC Address Changes 預設是 Accept (on)
Forged Transmits 預設是 Accept (on)

必須將這三個設定值都設成 Accept 才行。

- The End -

在Linux 查出Process ID 並作處置

作業系統重新開機後,所安排自動執行的 process id 每次都不同
所以透過以下指令,可以查出來並安排後續處理,
例如,找出 hgtask 這個 process 的 id:

ps ax | grep hgtask | awk '{print $1}' | head -1 > /tmp/hgtask_id
ID=`cut -c 1-6 /tmp/hgtask_id`
echo "HGTASK Process ID:"$ID

就會得到一個數字,後續處理上
例如,對該數字查出總共產生了多少個執行緒數量:

cat /proc/$ID/status | grep Threads > /tmp/hgtask_threads
Num=`cut -c 9-18 /tmp/hgtask_threads`
echo "HGTASK TotaL Threads:"$Num

就會得到一個數字,後續就看怎麼安排處理。

參考

- The End -




2017年1月9日 星期一

升級 xampp 的 phpmyadmin

因為 phpmyadmin 被發現了嚴重的 phpmyadmin CVE-2016-6617
(參考 RedHat 公司的建議
https://bugzilla.redhat.com/show_bug.cgi?id=1399197

1. 升級 phpMyadmin 之前,先備份phpMyadmin裡面的config.inc.php 之後,在將檔案複製到新版本的 phpMyadmin 裡面

2.到官網來最新版 phpMyadmin

Done


查看 elasticsearch 記憶體的設置是否生效

su elasticsearch --shell /bin/bash --command "ulimit -a"

安裝好 elasticsearch 要記得去調整記憶體限制
nano /etc/security/limits.conf

加入以下
# allow user 'elasticsearch' mlockall
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited


2017年1月5日 星期四

MongoDB 3.x 啟用連線認證

先參考
https://scalegrid.io/blog/configuring-mongodb-cr-authentication-as-default-on-mongodb-3-x/

以及這篇 另外 Bugj問題這篇(MongoDB - admin user not authorized)


先新增管理員

切換到admin資料庫
use admin

新增使用者
db.createUser(
   {
     user: "superuser",
     pwd: "xxxxxxxxxx",
     roles: [ { role: "root", db: "admin" } ]
   }
)

新增唯獨權限的使用者 將來管理方便
use admin
db.createUser(
   {
     user: "reader",
     pwd: "reader1234567",
     roles: [ { role: "readAnyDatabase", db: "admin" } ]
   }
)

啟用 MongoDB 的帳密連線
vi /etc/mongod.conf

security:
  authorization: enabled

然後重啟
systemctl restart mongod 


還沒結束!!!
因為Mongodb 啟用連線認證之後,所以備份的資料結構都改變了,
如果另一台MongoDB不調整認證方式,會導致資料恢復失敗,所以:

連線進去
mongo --authenticationDatabase=admin -u superuser -p xxxxxxxxxx 

執行以下指令:
db.adminCommand({authSchemaUpgrade: 1});

確認出現 OK 的提示之後,日後進行 Data Restore 才不會出現以下
the users and roles collections in the dump have an incompatible auth version with target server: cannot restore users of auth version 5 to a server of auth version 3

官方文件參考

- The End -

搜尋此網誌