Friday, May 27, 2016

Tutorial Arduino send log to Graylog or Rsyslog Server

Posted by Unknown

halo all. mau sedikit dokumentasikan oprekan pribadi nih. jadi ceritanya begini ane lagi ada request dari dev IoT supaya bisa ngirim LOG dari arduino ke syslog server. sebetulnya yang ane dapet dibawah ini bukan log dari arduino itu sendiri. tapi seolah olah data yang dikirimkan itu parameternya sesuai dengan standar log pada umumnya. jadi ini berguna apabila teman - teman ingin membutuhkan solusi untuk monitoring log yang ingin dikirim dari arduino ke syslog server. berhubung saya sangat familiar dengan graylog (support untuk protokol syslog, maka sebagai syslog servernya saya gunakan ini . untuk instalasi ada di archive blog ini ya).

oke kita mulai...

untuk perangkat pada arduino agar dapat mengiriman log over udp saya menggunakan modul ethernet lalu arduino uno R3.

- arduino uno
- module ethernet wiz5100


*code dibawah sedikit modifikasi dari saya pribadi. 

 /*  
 * Sent log to rsyslog sketch  
 * Ryan Adams  
 * 2/4/2012 
 */  
 #include   
 #include   
 #include   
 #define localUdpPort 8888  
 #define syslogPort 1514  
 EthernetServer server(80);  
 String kota[] = {  
  "Bandung", "Jakarta", "Semarang", "Aceh", "Surabaya", "Kerawang"  
 };   
 byte mac[] = {   
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  
 IPAddress ip(192, 168, 100, 247);  
 IPAddress syslogServer(192, 168, 100, 246);   
 // An EthernetUDP instance to let us send and receive packets over UDP  
 EthernetUDP Udp;  
 void setup()  
 {  
  Ethernet.begin(mac,ip);  
  Udp.begin(localUdpPort);  
  sendSyslogMessage(6, "Syslog logging started");  
  server.begin();  
   sendSyslogMessage(6, "HTTP server started");   
  sendSyslogMessage(6, "Boot complete");  
 }  
 void loop()  
 {  
   for (int i=0; i <= 5; i++){  
    delay(1000);  
   }  
 }  
 void sendSyslogMessage(int severity, String message)  
 {  
  /*  
 0 Emergency: system is unusable   
   1 Alert: action must be taken immediately   
   2 Critical: critical conditions   
   3 Error: error conditions   
   4 Warning: warning conditions   
   5 Notice: normal but significant condition   
   6 Informational: informational messages   
   Only severity levels 0, 1, and 2 will trigger an email message  
   */  
  int pri = (32 + severity);  
  String priString = String(pri, DEC);  
  String buffer = "<" + priString + ">" + "Arduino Uno " + message;  
  int bufferLength = buffer.length();  
  char char1[bufferLength+1];  
  for(int i=0; i

untuk graylog server disini saya menggunakan protokol UDP lalu open port di 1514 ...
apabila berhasil berikut hasilnya



dari sini kita bisa memanfaatkan protokol API dari graylog untuk memilah log dari arduino untuk dapat membuat aplikasi lagi sebagai monitoring ..

selesaii


terima kasih :)

0 comments:

Post a Comment