หน้า 1 จากทั้งหมด 1

เทคนิคการแบ็คอัพ FreePBX/Elastix โดยวิธีอัพโหลดผ่านทาง SSH

โพสต์โพสต์แล้ว: 02 ก.พ. 2016 20:25
โดย nuiz
บทความนี้ผมจะแนะนำเทคนิควิธีการแบ็คอัพคอนฟิก FreePBX/Elastix โดยใช้วิธีการอัพโหลดผ่านทาง Secure Shell โดยให้ FreePBX/Elastix เครื่องหลักอัพโหลดข้อมูลไปแบ็คอัพไว้ยังเครื่องสำรอง หากเครื่องหลักเกิดปัญหาไม่สามารถปฏิบัติหน้าที่ได้ (ภาษานางงาม) เราก็จัดการเปลี่ยนไอพีเครื่องสำรองให้เป็นไอพีเครื่องหลัก ระบบก็จะกลับมาทำงานได้เหมือนเดิม ระบบจะดาวน์ไปนานแค่ไหนอยู่ที่ว่าท่านเปลี่ยนไอพีได้เร็วแค่ไหน

ถ้าท่านใช้ Elastix ท่านจะต้องเข้าหน้าเว็บนี้นะครับ http://x.x.x.x/admin จึงจะเห็นเมนูอย่างในบทความนี้

บทความนี้ผมกำหนดให้ว่า เครื่องหลักชื่อ elastix-a ไอพี 192.168.100.211 เครื่องสำรองชื่อ elastix-b ไอพี 192.168.100.212

1. คอนฟิกให้ล๊อกอินด้วย ssh ไม่ต้องใช้พาสเวอร์ด
คอนฟิก elastix-a และ elastix-b ให้ elastix-a สามารถล๊อกอินเข้าเครื่องได้โดยไม่ต้องใช้พาสเวอร์ด วิธีการเป็นตามบทความนี้ครับ เทคนิคการ SSH ระหว่าง CentOS สองเครื่องโดยไม่ใช้พาสเวอร์ด คอนฟิกแล้วอย่าลืมทดสอบให้ชัวร์นะครับว่ารีโมทจาก elastix-a ไป elastix-b ได้โดยไม่ต้องใช้พาสเวอร์ด

2. ก๊อบไฟล์ id_rsa
ขั้นตอนนี้ต้องทำนะครับ ไม่ทำไม่ได้
โค้ด: เลือกทั้งหมด
cp /root/.ssh/id_rsa /var/lib/asterisk/.ssh/id_rsa
chown asterisk:asterisk /var/lib/asterisk/.ssh/id_rsa


3. สร้าง SSH Server ที่จะอัพโหลดไฟล์เข้าไป
ล๊อกอินเข้าหน้าเว็บคอนฟิก FreePBX บนเครื่อง elastix-a
คลิ๊กเมนู Admin -> Backup & Restore
ด้านขวามือ คลิ๊ก Server
รูปภาพ
คลิ๊ก New SSH Server
รูปภาพ
ป้อนข้อมูล
Server Name ตั้งชื่ออะไรก็ได้ แต่ให้สื่อความหมายว่านี่คือเครื่อง elastix-b
Description ใส่รายละเอียด ไม่ต้องใส่ก็ได้
Hostname ใส่ไอพีของเครื่อง elastix-b หรือใส่เป็นชื่อ elastix-b ก็ได้ (เพราะในไฟล์ /etc/hosts เราได้แม็บชื่อ elastix-b กับไอพีของมันไว้แล้ว)
Port เป็นพอร์ต SSH ของ elastix-b ปกติคือ 22 (ถ้ายังไม่ได้เปลี่ยน)
User Name ใส่ root
Key ชื่อไฟล์และโฟลเดอร์ที่เก็บ Private Key ของ elastix-a ซึ่งเราได้ย้ายมาไว้ใน /var/lib/asterisk/.ssh แล้ว
Path ที่เก็บไฟล์แบ็คอัพบนเครื่อง elastix-b ปกติจะใส่ / ครับ ซึ่งหมายถึงโฟลเดอร์รากของเครื่อง elastix-b หรืออาจจะเปลี่ยนเป็น /var/www/backup ก็ได้ ซึ่งจะเก็บไว้ในโฟลเดอร์ /var/www/backup บนเครื่อง elastix-b แต่จะมีโฟลเดอร์ย่อยอีกชั้นหนึ่งครับ ไว้จะพูดถึงในหัวข้อต่อไป
ตรง Path นี้นะครับ อาจจะใส่เป็น __ASTSPOOLDIR__/backup ก็ได้ ซึ่งไฟล์แบ็คอัพจะอยู่ที่โฟลเดอร์ /var/spool/asterisk/backup แทน แบบหลังนี้ก็ง่ายดีนะครับเพราะเราไม่ต้องไปสร้างอะไรเพิ่มเลยบนเครื่อง elastix-b

รูปภาพ
หรือ
รูปภาพ

3. กำหนดว่าจะแบ็คอัพอะไรบ้าง
บอก elastix-a ว่าเราต้องการให้มันแบ็คอัพอะไรบ้าง
คลิ๊กที่ Backup
รูปภาพ
คลิ๊ก New Backup
รูปภาพ

เลือกแบ็คอัพ ใช้จาก Templates หรือเพิ่มเองก็ได้ ดังตัวอย่าง ใช้ Template ชื่อ Full Backup ลากจากด้านขวามือมาไว้ด้านซ้ายมือ
รูปภาพ

รูปภาพ

รูปภาพ

แล้วกด Save ครับ

5. รันทดสอบ
เลื่อนลงมาด้านล่าง จะเห็น "and Run" เพิ่มขึ้นมา ให้กดเพื่อทดสอบการทำงานครับ
รูปภาพ

รูปภาพ

ไม่มีปัญหาอะไร กดกากะบาทปิดหน้าจอนี้ได้เลยครับ ถ้าจะมีปัญหาก็ตรงที่ล๊อกอินเข้า elastix-b ไม่ได้นี่แหล่ะครับ

ุ6. ตรวจสอบบนเครื่อง elastix-b
ไปดูบนเครื่อง elastix-b เข้าไปในโฟลเดอร์ /var/www/backup จะเห็นมีโฟลเดอร์ย่อยชื่อ Backup_to_Elastix_B อยู่ ข้างในมีไฟล์ *.tgz อยู่ เป็นไฟล์ที่อัพโหลดมาจาก elastix-a ครับ
โค้ด: เลือกทั้งหมด
[root@elastix-b Backup_to_Elastix_B]# ls -la
total 436
drwxr-xr-x 2 root     root       4096 Feb  2 22:35 .
drwxr-xr-x 4 asterisk asterisk   4096 Feb  2 22:35 ..
-rw-r--r-- 1 root     root     429868 Feb  2 22:35 20160202-223543-1454427343-613595503.tgz

หรือถ้าตอนสร้าง SSH Server เราใส่ข้อมูลในช่อง Path แบบนี้ _ASTSPOOLDIR_/backup เราต้องไปหาในโฟลเดอร์ /var/spool/asterisk/backup แทนนะครับ

ุ7. วิธีการ Restore ไฟล์แบ็คอัพบน elastix-b
** ตัวอย่างต่อไปนี้ผมสมมติว่าผมให้ไฟล์แบ็คอัพอยู่ที่โฟลเดอร์ /var/spool/asterisk/backup นะครับ ผมขี้เกียจสร้าง Server ใหม่ **

เข้าหน้าเว็บ FreePBX บนเครื่อง elastix-b
คลิ๊กเมนู Admin -> Backup/Restore
ด้านขวามือคลิ๊ก Restore
รูปภาพ

ด้านขวามือคลิ๊ก Local Storage (local)
รูปภาพ

คลิ๊กที่ชื่อไฟล์ที่ต้องการ Restore แล้วคลิ๊ก Go!
รูปภาพ

เลือกว่าจะ Restore อะไรบ้าง ก็เลือกทั้งหมดแหล่ะครับ แล้วกด Restore
รูปภาพ

รอจน Done! ครับ แล้วกดกากะบาทปิดได้เลย
รูปภาพ

ก็เป็นอันว่าการ ฺBackup/Restore ระหว่าง FreePBX/Elastix สองเครื่องก็เรียบร้อยไปด้วยดีครับ หลังจาก Restore แล้วเครื่อง elastix-b ก็พร้อมใช้งานทันทีเลยครับ จะมีที่เราต้องทำเพิ่มคือเปลี่ยนไอพีของ elastix-b ให้เหมือนกับของ elastix-a (ถอดสายแลนหรือปิดเครื่อง elastix-a ก่อนนะครับ เดี๋ยวไอพีจะชนกัน)

หมายเหตุ
1. ถ้าอยากแบ็คอัพเพิ่มเติมก็ทำเพิ่มเองตามใจชอบได้เลยนะครับ แล้วทดสอบดูว่าตอน Restore ได้ข้อมูลมาครบถ้วนหรือไม่ ซึ่ง FreePBX ให้เราเลือกได้ยืดหยุ่นมาก ทั้งไฟล์ ทั้งโฟลเดอร์ ทั้งดาต้าเบส ยืดหยุ่นกว่า Backup/Restore ใน Elastix เยอะครับ
2. FreePBX ไม่ได้แบ็คอัพทั้งดาต้าเบสให้นะครับ มันจะแบ็คอัพให้เฉพาะดาต้าเบส asteriskcdrdb และ asterisk เท่านั้น ถ้าต้องการแบ็คอัพ a2billing, vtiger, หรือดาต้าเบสอื่น ต้องสร้าง Server เพิ่มเติมครับ โดยเลือก Serves -> New Mysql Server ดังตัวอย่าง
รูปภาพ
จากนั้นก็เพิ่มเข้าไปใน Backup
รูปภาพ
3. แบ็คอัพไฟล์บันทึกเสียง
รูปภาพ

บทความที่เกี่ยวข้อง
เปิดบริการ อบรม Elastix ด้วยคอร์สพิเศษ ให้ติดตั้ง คอนฟิกคล่อง ใช้งานคล่อง ได้ใน 3 วัน
เทคนิคการ SSH ระหว่าง CentOS สองเครื่องโดยไม่ใช้พาสเวอร์ด
ดาวน์โหลด FreePBX
เทคนิคการตั้งชื่อ hostname ของเครื่อง FreePBX
เทคนิคการใช้งาน Announcement แจ้งลูกค้าที่โทรมาหลังเวลางาน
เทคนิคการรีเซ็ตพาสเวอร์ดเข้าหน้าเว็บ FreePBX
ติดตั้ง FreePBX 14 แบบ Manual บน CentOS 7
เทคนิคการติดตั้ง FreePBX
ตรวจสอบว่า Asterisk กำลังใช้ Codecs อะไรอยู่และการปรับแต่ง
เทคนิคการตรวจสอบว่า Asterisk กำลังใช้ Codec อะไร และการปรับแต่ง Codecs
การแก้ไขรูปแบบการแสดงวันที่และเวลาใน Reports > CDR Reports