September 15th, 2014 by icez | Posted in Linux | No Comments »
ต่อจากการติดตั้ง bacula ใน entry ที่แล้ว นะครับ งานนี้เริ่มเข้ากระบวนการตั้งค่า bacula director ที่เป็นตัวควบคุมทุกอย่างกัน
การติดตั้ง bacula ผ่าน repository ดังกล่าวจะจัดไฟล์ config ทั้งหมดไว้ที่ /etc/bacula/ ครับ สำหรับ director จะอยู่ในไฟล์ /etc/bacula/bacula-dir.conf
*** ไฟล์มันมีข้อมูลอยู่แล้ว แนะนำให้เปลี่ยนชื่อเป็นอย่างอื่นแล้วสร้างไฟล์ใหม่เปล่าๆ ขึ้นมาดีกว่าครับ หรือไม่ก็ลองอ่านดูก็ได้ว่าข้างในมีอะไรบ้าง
โครงสร้างของไฟล์ backup จะแบ่งเป็น section คล้ายๆ condition ของการเขียนโปรแกรมครับ ประมาณนี้
Director {
Name = bacula-dir # director instance name
DIRport = 9101
QueryFile = "/etc/bacula/query.sql"
WorkingDirectory = "/var/spool/bacula"
PidDirectory = "/var/run"
Maximum Concurrent Jobs = 8
Password = "bacula" # Console password
Messages = Daemon # messages name
}
ส่วนแรกสุดที่ต้อง config ครับ คือ Director เป็นการประกาศตัวเองว่าชื่ออะไรยังไง จุดที่สำคัญอยู่ตรง Name ครับ ตั้งอะไรไว้ก็ mark ให้ดีๆ เพราะต้องเอาไปใส่ config ของ Storage และ Client อีก
Password อันนี้สำหรับให้ console เข้ามาเชื่อมต่อครับ แล้วสำหรับ Messages จะระบุถึงการเก็บ log + แจ้งเตือนต่างๆ ครับ ซึ่งจะมีประกาศในส่วนต่อไป ดังนี้
Messages {
Name = Daemon
mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
mail = youremail@example.com = all, !skipped
console = all, !skipped, !saved
append = "/var/log/bacula/bacula.log" = all, !skipped
}
อันนี้ก็จะตั้งค่าว่ากรณี daemon ทำงานแล้วมีข้อความอะไรออกมาก็ตามให้ทำอะไรบ้าง ซึ่งในรายการก็จะมี ส่งอีเมล ไปหาเมล youremail@example.com (แก้เป็นเมลที่จะใช้รับการแจ้งเตือนได้เลย) ซึ่งจะส่งเวลาเจอปัญหา รันงานไม่ผ่านอะไรพวกนี้ และยังมีเขียน log ลงไฟล์กับแจ้งเตือนผ่าน console ด้วยครับ
Messages {
Name = Standard
mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
operatorcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"
mail = youremail@example.com = all, !skipped
operator = youremail@example.com = mount
console = all, !skipped, !saved
append = "/var/log/bacula/bacula.log" = all, !skipped
catalog = all
}
ส่วน Message Name = Standard อันนี้จะเอาไว้รับ log ที่มาจาก storage หรือ client ครับ ตั้งค่าคล้ายๆ กัน แก้อีเมลตามสะดวกครับ
เชื่อมต่อฐานข้อมูล
Catalog {
Name = MyCatalog
dbname = "bacula"; dbaddress = "localhost"; dbuser = "bacula"; dbpassword = "databasepassword"
}
อันนี้ก็ตรงไปตรงมาครับ แก้ไขค่าต่างๆ ให้ตรงกับที่ไปสร้างฐานข้อมูลไว้ตาม entry ที่แล้ว แล้วเดี๋ยว bacula จะไปอ่านเขียนข้อมูลเอาเอง
เชื่อมต่อ Bacula Storage
Storage {
Name = bacula-sd # storage name
Address = "192.0.2.1" # N.B. Use a fully qualified name here
SDPort = 9103
Password = "bacula-dir-sd" # storage password
Device = FileStorage # storage device
Media Type = File
Maximum Concurrent Jobs = 8
}
จุดสำคัญของส่วนนี้มีอยู่สามอันครับ คือ Name , Password และ Device ซึ่งจะต้องตั้งค่าให้ตรงกับที่จะไปตั้งค่า Storage (เดี๋ยวจะเขียนอธิบายแยกเรื่องการตั้งค่า Bacula storage อีก entry นึงครับ)
ส่วนหลักๆ ของ director มีเท่านี้ครับ ซึ่งมันไม่ใช่ส่วนสำคัญเลย (ฮา) เพราะที่วุ่นวายคือการประกาศการ backup ครับ ที่ต้องไปคุยกับ client ว่าจะให้ backup อะไรยังไงบ้างนี่แหละ วุ่นเอาเรื่อง
ตั้งค่า Bacula Console เชื่อมกับ Director
แถมนิดเดียว ตอนนี้แนะนำให้เปิดไฟล์ /etc/bacula/bconsole.conf ขึ้นมาครับ มันคือไฟล์ตั้งค่าของคำสั่ง bconsole ที่จะไว้ดูสถานะ + สั่ง bacula ให้ทำโน่นนี่นั่น
Director {
Name = bacula-dir # director
DIRport = 9101
address = localhost
Password = "bacula"
}
หลักๆ ก็แค่ตั้ง Name กับ Password ให้ตรงกับ section Director ด้านบนครับ แล้วก็ชี้ address ให้ถูกเครื่องด้วย แค่นี้แหละครับ จบแล้ว
ตั้งค่าเสร็จสั่ง service bacula-dir start แล้วทดสอบด้วยคำสั่ง bconsole มันควรจะขึ้นสถานะประมาณนี้ครับ
Connecting to Director localhost:9101
1000 OK: bacula-dir Version: 5.2.13 (19 February 2013)
Enter a period to cancel a command.
*
ถึงจุดนี้ลองพิมพ์ status director ดู มันควรจะบอกว่า director เริ่มทำงานมาตั้งแต่เมื่อไหร่ยังไง ถ้าขึ้นมาก็เสร็จแล้วครับ
ข้ามไปยัง
Tags: bacula, configuration