1. ไฟล์ logger_logfiles_custom.conf
คอนฟิกบอก Asterisk ให้ส่ง Logs ไปยัง Syslog Server ด้วย
- โค้ด: เลือกทั้งหมด
now=$(date +'%F-%H-%M-%S')
cp /etc/asterisk/logger_logfiles_custom.conf /etc/asterisk/logger_logfiles_custom.conf.$now
cat >> /etc/asterisk/logger_logfiles_custom.conf << EOF
syslog.local0 => debug,error,notice,verbose(3),warning
EOF
2. รีสตาร์ท Asterisk
ถ้าเป็น Asterisk 13 รันคำสั่งนี้ก็ได้ครับ เร็วดี
- โค้ด: เลือกทั้งหมด
asterisk -rx "logger reload"
หรือถ้าเป็น Asterisk เวอร์ชั่นก่อนหน้าที่ไม่มีคำสั่ง logger reload ให้รีสตาร์ท Asterisk แทนครับ รันคำสั่งนี้
- โค้ด: เลือกทั้งหมด
systemctl restart asterisk
3. ตรวจสอบ
เห็น syslog.local0 ก็อุ่นใจแล้วครับ ส่ง Logs ไป Syslog Server แน่นอน
- โค้ด: เลือกทั้งหมด
[root@pbx ~]# asterisk -rx "logger show channels"
Channel Type Status Configuration
------- ---- ------ -------------
syslog.local0 Syslog Enabled - DEBUG NOTICE WARNING ERROR VERBOSE
/var/log/asterisk/messages File Enabled - NOTICE WARNING ERROR SECURITY
Console Enabled - DEBUG NOTICE WARNING ERROR VERBOSE
/var/log/asterisk/full File Enabled - DEBUG NOTICE WARNING ERROR VERBOSE
4. ติดตั้ง Rsyslog
จริงๆบน Issabel รวมทั้ง CentOS 7 ก็ติดตั้ง Syslog Server ชื่อว่า Rsyslog ไว้ให้เรียบร้อยแล้วครับ แต่ยังไม่ได้คอนฟิกอะไรมากมาย
- โค้ด: เลือกทั้งหมด
yum -y install rsyslog
systemctl enable rsyslog
5. คอนฟิก Rsyslog ให้ส่ง Logs ไปยัง Syslog Server 192.168.100.53
ตามจริง Rsyslog ทำงานได้ทั้งเป็น Syslog Server และ Syslog Clients ครับ และในบทความนี้ผมจะให้ Rsyslog เป็น Client ส่ง Logs ไปยัง Syslog Server ไอพี 192.168.100.53 ครับ พอร์ต TCP 514 (ไม่ได้ใช้ UDP)
- โค้ด: เลือกทั้งหมด
now=$(date +'%F-%H-%M-%S')
cp /etc/rsyslog.conf /etc/rsyslog.conf.$now
echo "*.* @@192.168.100.53:514" >> /etc/rsyslog.conf
ถ้าจะให้ Rsyslog ส่งไป Syslog Server ด้วยโปรโตคอล UDP ให้ใส่ @ อันเดียวครับแบบนี้
- โค้ด: เลือกทั้งหมด
now=$(date +'%F-%H-%M-%S')
cp /etc/rsyslog.conf /etc/rsyslog.conf.$now
echo "*.* @192.168.100.53:514" >> /etc/rsyslog.conf
6. รีสตาร์ท Rsyslog
- โค้ด: เลือกทั้งหมด
systemctl restart rsyslog
7. ข้อความบน Rsyslog Sever (ไฟล์ /var/log/messages)
บนเครื่อง Syslog Sever ไอพี 192.168.100.53 เปิดไฟล์ /var/log/messages ก็จะเห็น Logs ที่ Asterisk ส่งไปครับ สังเกตุว่าไม่มี IP Address นะครับ มีแต่ Hostname ชื่อ pbx ครับ เราจึงดูได้ว่าส่งมาจากเครื่องไหน แต่บาง Log ก็มี IP ส่งมาด้วยเช่นตอน Register ไม่สำเร็จครับ ดังตัวอย่างด้านล่างนี้
- โค้ด: เลือกทั้งหมด
Oct 17 13:49:39 pbx asterisk[2678]: NOTICE[2698]: chan_sip.c:23892 in handle_response_peerpoke: Peer '101' is now Reachable. (20ms / 2000ms)
Oct 17 13:52:15 pbx asterisk[2678]: NOTICE[2698]: chan_sip.c:28485 in handle_request_register: Registration from '<sip:101@192.168.100.54>' failed for '192.168.100.118:55602' - Wrong password
Oct 17 13:56:08 pbx asterisk[2986]: NOTICE[3006]: chan_sip.c:23892 in handle_response_peerpoke: Peer 'IBEL-53-In' is now Reachable. (1ms / 60000ms)
Oct 17 13:56:08 pbx asterisk[2986]: NOTICE[3006]: chan_sip.c:23892 in handle_response_peerpoke: Peer 'CAT-Out' is now Reachable. (26ms / 60000ms)
แค่ดูจาก Syslog Server เราก็จะรู้แล้วว่ามีใครพยายามเข้ามาใช้งาน Asterisk ของเรา โดยไม่ต้องรีโมทไปดูบนเครื่องนั้น
เทคนิคการใช้งาน Issabel
เทคนิคการใช้งาน Elastix
เทคนิคการใช้งาน Asterisk
เทคนิคการใช้งาน FreePBX
เทคนิคการคอนฟิก Elastix/Issabel ให้ทำงานเป็น Time Server