Membuat statistik domain yang sering di akses dengan mikrotik syslog

Membuat statistik domain yang sering di akses dengan mikrotik syslog

Membuat statistik domain yang sering di akses dengan mikrotik syslog - saat ini akan kami membagikan cara membuat statistik domain yang sering di akses dari jaringan kita.Dengan begitu kita bisa tau pengguna jaringan kita sering mengakses jaringan apa saja.



Requirement

1.Router Mikrotik

2.Centos Server dengan Web server php dan mysql



langkah langkah Membuat statistik domain yang sering di akses dengan mikrotik syslog



1. Install rsyslog-mysql




# yum -y install rsyslog-mysql




2. Import Database

 




# mysql -u root -p < /usr/share/doc/rsyslog-*/mysql-createDB.sql



jika not found bisa coba perintah berikut



# mysql -u root -p < /usr/share/doc/rsyslog-mysql-*/createDB.sql




3. Konfigurasi Rsyslog



Edit file /etc/rsyslog.conf,

Uncomment baris berikut :




$ModLoad imudp

$UDPServerRun 514

$ModLoad imtcp

$InputTCPServerRun 514



Tambahkan beris beriku :



$ModLoad ommysql

*.* :ommysql:localhost,Syslog,root,*****



***** sesuaikan dengan password dabase anda




Agar log server tidak ikut masuk ke database comment baris beikut






# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.*                                                 /dev/console



# Log anything (except mail) of level info or higher.

# Don't log private authentication messages!

#*.info;mail.none;authpriv.none;cron.none                /var/log/messages



# The authpriv file has restricted access.

#authpriv.*                                              /var/log/secure



# Log all the mail messages in one place.

#mail.*                                                  -/var/log/maillog





# Log cron stuff

#cron.*                                                  /var/log/cron



# Everybody gets emergency messages

#*.emerg                                                 *



# Save news errors of level crit and higher in a special file.

#uucp,news.crit                                          /var/log/spooler



# Save boot messages also to boot.log

#local7.*                                                /var/log/boot.log




4.Restart Syslog




systemctl restart rsyslog.service



atau



service rsyslog restart




5.Setting Logging di mikrotik




buka System>Logging



buka tab Actions



tambahkan loggin action baru





Tambahkan pada bagian Rules Logging






 



Selanjutnya script buat counting data pake php




<?php

@date_default_timezone_set('Asia/Jakarta');

$servername = "localhost";

$username = "root";

$password = "pasword db";

$database = "nama db";



// Create connection

$conn = new mysqli($servername, $username, $password, $database);



// Check connection

if ($conn->connect_error) {

  die("Connection failed: " . $conn->connect_error);

}

//Filter Data

$sql = $conn->query("delete FROM SystemEvents where SysLogTag!='done' and Message NOT LIKE '%query: #%'");

$ct="CREATE TABLE IF NOT EXISTS `accesslog_".date('Y_m')."` (

  `id` int(255) NOT NULL AUTO_INCREMENT,

  `domain` varchar(255) NOT NULL,

  `ip` varchar(255) NOT NULL,

  `tanggal` date NOT NULL,

  `jumlah` int(255) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;";

$conn->query($ct);



$data= $conn->query("select * FROM SystemEvents where DATE(DeviceReportedTime)=DATE(NOW())");

     $domain=array();

 while($row = $data->fetch_assoc()) {

      $d=explode(' ',$row['Message']);



             $sql = "SELECT * FROM accesslog_".date('Y_m')." where DATE(tanggal)=DATE(NOW())

        and ip='".$d['4']."' and

        domain='".$d['3']."'

        ";

        $result = $conn->query($sql);

        if ($result->num_rows > 0) {

          // output data of each row

          while($rows = $result->fetch_assoc()) {

            //echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";

            $sql="update accesslog_".date('Y_m')." set  jumlah=jumlah+1,

            tanggal=NOW()

            where id='".$rows["id"]."'

          ";

          }

        } else {

          $sql="insert into accesslog_".date('Y_m')." set tanggal=NOW(),

          ip='".$d['4']."',

          domain='".$d['3']."',

          jumlah='1'

          ";

        }

    

        if ($conn->query($sql) === TRUE) {

          $conn->query("delete FROM SystemEvents where ID='".$row['ID']."'

          ");

        } else {

          echo "Error updating record: " . $conn->error;

        }

              

    //echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";

    

  }

 $conn->close();

?>




Seletah itu tinggal di cron script counting phpnya,terus cek table access log buat lihat hasil countingnya



 



Nah itu Membuat statistik domain yang sering di akses dengan mikrotik syslog,ini masih banyak kurangnya,silahkan di kembangkan sesuai kebutuhannya.semoga bermanfaat


© 2019 Aplikasi Login Wifi Tamu | Captive Portal | hotspot login - All Rights Reserved
By Sasweblabs.com