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

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

mikrotik logging

Tambahkan pada bagian Rules Logging

mikrotik 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




jasa pembuatan website dan toko online