Logging Report PHP pada Web Server Apache ke Telegram

Sistem atau aplikasi yang baik adalah yang memiliki tingkat error yang minim, bahkan jika memungkinkan tidak terdapat error sekecil apapun. Namun seperti yang dikatakan banyak orang, tidak ada sistem yang sempurna, yang ada hanya bagaimana meminimalisir error tersebut.

Log membantu developer untuk melakukan identifikasi jika ada hal yang tidak sesuai antara design dengan output, sehingga proses perbaikan dapat dilakukan dengan cepat.

Sistem log sangat penting, baik pada development stage maupun di production. Saat masih berada pada development stage kita umumnya mengembangkan dan memantau log pada saat yang bersamaan. Hal yang berbeda terjadi pada production stage, dimana kita tidak memantau lagi log yang dihasilkan. Salah satu opsi yang bisa dimanfaatkan untuk monitoring log di server adalah dengan menggunakan Telegram.

Kita biasanya lebih peka terhadap notifikasi yang masuk pada aplikasi chat seperti telegram.

Apache Log Telegram Notif

Apache Log Telegram Notif

Untuk mewujudkan alur diatas setidaknya ada beberapa tools dan script yang perlu dikonfigurasi.

Simple Event Correlator

Jika menggunakan basis sistem operasi Ubuntu, kita bisa langsung install Simple Event Correlator (SEC) dari repository Ubuntu.

sudo apt install sec

Konfigurasi Script

Berikutnya kita perlu membuat konfigurasi untuk sec dan simpan dalam direktori yang diinginkan

type=Single
ptype=RegExp
pattern=\[php7\:
desc=$0
action=shellcmd /path/to/dir/tg-send.sh "$0"
view raw php7err.conf hosted with ❤ by GitHub

Selanjutnya kita perlu membuat script untuk mengirim pesan ke Telegram menggunakan Telegram API, tapi sebelumnya kita perlu melakukan integrasi melalui BotFather yang telah disediakan telegram untuk mendapatkan Chat ID dan Token

#!/bin/bash
CHAT_ID={{channel-id}}
TOKEN={{telegram-token}}
curl -s "https://api.telegram.org/bot$TOKEN/sendMessage?chat_id=$CHAT_ID" --data-urlencode "text=[domain.com] $1"
view raw tg-send.sh hosted with ❤ by GitHub

Agar script dapat dieksekusi kita perlu merubah permission -nya

chmod +x tg-send.sh

Untuk memastikan semua sudah terkonfigurasi dengan baik, kita bisa coba kirim notif ke Telegram dengan perintah berikut

./tg-send.sh "tes pesan notif"

Jika notif pesan berhasil masuk ke Telegram, selanjutnya kita bisa menjalankan sec dengan menentukan config dan path ke apache log di web server. Untuk memudahkan eksekusi kita bisa membuat script agar mudah untuk dijalankan.

#!/bin/bash
sec -conf=/path/to/dir/php7err.conf -input=/path/to/apache2/error.log -detach
view raw run.sh hosted with ❤ by GitHub

Kita perlu merubah permission -nya lagi agar dapat dijalankan

chmod +x run.sh

Terakhir tinggal menjalankan script -nya

./run.sh