Hari baik untuk semua!
Kali ini saya memutuskan untuk mendeskripsikan situasinya, yang sepertinya tidak dijelaskan secara khusus di Internet, walaupun ada beberapa petunjuk tentang hal itu, tetapi sebagian besar hanya berupa penggalian panjang metodis kode dan wiki Mikrotik itu sendiri.
Sebenarnya tugas: untuk mengimplementasikan menggunakan kontrol SMS dari beberapa perangkat, pada contoh menghidupkan dan mematikan port.
Ada:
- Router Kecil CRS317-1G-16S +
- Titik Akses Mikrotik NETMETAL 5
- Modem LTE R11e-LTE
Pertama-tama, jalur akses Netmetal 5 yang luar biasa memiliki konektor yang disolder untuk kartu SIM dan port untuk memasang modem LTE. Karena itu, untuk titik ini, pada kenyataannya, modem terbaik dibeli dari apa yang tersedia dan didukung oleh sistem operasi dari titik itu sendiri, yaitu R11e-LTE. Intinya dibongkar, semuanya sudah terpasang (walaupun Anda perlu tahu bahwa kartu SIM terletak di bawah modem dan tidak mungkin mendapatkannya tanpa melepas papan utama), jadi periksa kartu SIM untuk beroperasi, jika tidak, Anda harus membongkar titik akses beberapa kali.
Kemudian kami mengebor beberapa lubang di case, memasang 2 kuncir dan memperbaiki ujungnya ke modem. Sayangnya, foto prosesnya tidak tersimpan. Di sisi lain, antena universal dengan basis magnet melekat pada kuncir.
Langkah-langkah konfigurasi utama dijelaskan di Internet dengan cukup baik, kecuali untuk tiang-tiang kecil interaksi. Sebagai contoh, modem berhenti menerima pesan SMS ketika 5 buah berasal dan mereka menggantung di Kotak Masuk, menghapus pesan, memulai ulang modem tidak selalu menyelesaikan masalah. Tetapi dalam versi 6.44.1, penerimaan bekerja lebih stabil. Kotak masuk menampilkan 4 sms terakhir, sisanya dihapus secara otomatis dan kehidupan tidak terganggu.
Tujuan utama percobaan adalah untuk memadamkan dan meningkatkan antarmuka pada dua router dalam satu jaringan fisik. Kesulitan utama adalah bahwa Mikrotik tidak mendukung manajemen melalui SNMP, tetapi hanya memungkinkan nilai pembacaan. Karena itu, saya harus menggali ke arah lain, yaitu API Mikrotik.
Tidak ada dokumentasi yang jelas tentang cara mengelola, jadi saya harus bereksperimen dan instruksi ini dibuat untuk upaya di masa mendatang.
Untuk mengelola beberapa perangkat, Anda memerlukan server WEB yang dapat diakses dan berfungsi di jaringan lokal, perlu untuk mengelolanya menggunakan perintah Mikrotik.
1. Pada Netmetal 5, Anda masing-masing perlu membuat beberapa skrip untuk menghidupkan dan mematikan
system script add dont-require-permissions=no name=disableiface owner=admin policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ "/tool fetch http://WEB_SERVER_IP/di.php " add dont-require-permissions=no name=enableiface owner=admin policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ "/tool fetch http://WEB_SERVER_IP/en.php "
2. Buat 2 skrip di server web (tentu saja, php harus diinstal pada sistem dalam kasus ini):
<?php
<?php
3. Unduh dari forum Mikrotik routeros_api.class.php dan letakkan di direktori yang dapat diakses di server.
alih-alih sfp-sfpplus16 Anda perlu menentukan nama antarmuka yang terputus / disertakan.
Sekarang ketika mengirim pesan ke nomor dalam formulir
:cmd script enableiface :cmd script disableiface
NETMETAL akan menjalankan skrip yang sesuai, dan pada gilirannya akan menjalankan perintah pada server WEB.
Kecepatan operasi ketika menerima fraksi SMS per detik. Ini bekerja dengan stabil.
Selain itu, ada fungsi mengirim SMS ke telepon oleh sistem pemantauan Zabbix dan pembukaan koneksi Internet cadangan saat optiknya jatuh. Mungkin ini di luar ruang lingkup artikel ini, tetapi saya akan segera mengatakan bahwa ketika mengirim SMS panjangnya harus sesuai dengan ukuran standar satu pesan, karena Mikrotik tidak membaginya menjadi beberapa bagian, dan ketika sebuah pesan panjang tiba, itu tidak akan mengirimnya, selain itu, Anda perlu memfilter karakter yang dikirim ke pesan, jika tidak SMS tidak akan dikirim.
PS Saya sekarang melengkapi tentang tiang tembok pada versi RouterOS sebelumnya yang dan bagaimana menghadapinya.
1. Panjang maksimum pesan dan karakter yang digunakan dalam pesan terbatas, jadi saya harus bertarung di tingkat Zabbix, yaitu, untuk memperbaiki templat pengiriman pesan, sehingga secara singkat, jelas tentang pesan itu.
Pengaturan - Tindakan - Laporkan ke sms - Operasi - Subjek: Masalah: {HOST.NAME} {TRIGGER.NAME}
Dan saat pemulihan Laporkan ke sms - Operasi pemulihan Subjek: Diselesaikan: {HOST.NAME} {TRIGGER.NAME}
2. Selain itu, skrip itu sendiri, yang mengirim data ke modem, juga memotong panjang maksimum pesan yang dikirim, karena jika terlalu panjang, maka pesan tidak akan dikirim.
Script php mengirim data
<?php require('/usr/lib/zabbix/alertscripts/routeros_api.class.php'); $API = new RouterosAPI(); $API->debug=true; if ($API->connect('IP ', ' ', ' ')) { $API->comm("/tool/sms/send", array( "port"=>"lte1", "phone-number"=>$argv[1], "message"=>$argv[2],)); } $API->disconnect(); echo $argv[1]; echo $argv[2]; ?>
3. Membersihkan Kotak Masuk untuk RouterOS <6.44
Penjadwal sistem
/system scheduler
add disabled=yes interval=1m name=removeSMS on-event="/system script run 7" \
policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
start-date=nov/01/2018 start-time=19:32:00
Jika skrip di bawah ini Anda akan memiliki nomor seri yang berbeda, maka dalam penjadwal, Anda harus mengubah run 7 ke nomor yang sesuai
Skrip sistem
/system script
add dont-require-permissions=no name=removeSMS owner=admin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\
tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n"
Script dengan nomor seri 7
4. Pada versi di bawah 6.38, ini membantu reboot modem juga dengan skrip bawaan dan penjadwal
/system script
add dont-require-permissions=no name=rebootLTE owner=admin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\
interface lte disable 0\r\
\ndelay 10\r\
\n/interface lte enable 0\r\
\n/tool sms set receive-enabled=false\r\
\ndelay 10\r\
\n/tool sms set receive-enabled=true\r\
\n"
5. Dan sedikit tentang penambahan tim. Untuk mengirim SMS, diperbolehkan mengatakan pada host dengan Zabbix untuk membuat file RSC, dan kemudian mengirimnya ke ftp di Mikrotik dengan skrip, lalu di modem itu sendiri, dengan skrip di penjadwal, jalankan file yang diperlukan, perintah dijalankan, tetapi bagi saya lebih nyaman menggunakan mekanisme di atas.
Dalam hal pengiriman seperti itu, kode yang dihasilkan cukup sederhana.
/tool sms send lte1 +7926xxxxxxx message "Problem: High ICMP ping response time Problem started at 17:08:04 on 2018.07.10 Problem name: High ICMP ping response time Host: Netgear7212 Severity: Warning Original problem ID: 5403803"
Dalam contoh ini, karakter tambahan sudah dihapus, dan panjangnya tidak terbatas. Script yang memproses peluncuran sesuai dengan metode ini setelah bekerja harus menyalin file RSC kosong di dalam file Mikrotik yang ada.
Saya tidak suka metode ini, karena pada prinsipnya tidak ada perlindungan terhadap gangguan dan pesan yang tidak terkirim yang tidak mungkin adalah mungkin.
Dalam versi RouterOS 6.44.1, masalah limpahan yang masuk telah dihilangkan, sehingga Anda tidak dapat menggunakan metode pembersihan pertanian kolektif