Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan pemantauan keselamatan IoT masa nyata menggunakan PHP dan Kafka

Bagaimana untuk melaksanakan pemantauan keselamatan IoT masa nyata menggunakan PHP dan Kafka

王林
王林asal
2023-06-28 12:22:44894semak imbas

Perkembangan pesat Internet Perkara telah membawa banyak kemudahan kepada kami, tetapi ia juga membawa banyak risiko keselamatan. Dalam sistem Internet of Things, terdapat sejumlah besar peranti, pelbagai jenis peranti, dan sistemnya besar dan kompleks Bagaimana untuk memastikan keselamatan rangkaian telah menjadi perkara yang sangat penting. Artikel ini akan membantu anda melindungi keselamatan sistem IoT dengan lebih baik dengan memperkenalkan cara menggunakan PHP dan Kafka untuk melaksanakan pemantauan keselamatan IoT masa nyata.

1. Apakah itu PHP dan Kafka

PHP ialah bahasa skrip pelbagai guna sumber terbuka, terutamanya digunakan untuk pembangunan web dan juga menyokong pelbagai operasi pangkalan data. PHP mudah dipelajari dan mempunyai halangan kemasukan yang rendah, jadi ia digunakan secara meluas dalam bidang pembangunan web.

Kafka ialah sistem baris gilir mesej yang diedarkan, terutamanya digunakan dalam senario pemprosesan data berskala besar. Kafka boleh merealisasikan fungsi seperti penghantaran mesej, pemprosesan, dan penyimpanan, dan mempunyai ciri-ciri kebolehpercayaan yang tinggi dan prestasi tinggi. Kafka terutamanya ditulis dalam Scala, tetapi terdapat juga pelanggan Kafka untuk bahasa PHP.

2. Penyelesaian pemantauan keselamatan sistem Internet of Things

Untuk mencapai pemantauan keselamatan sistem Internet of Things, aspek berikut perlu dipertimbangkan:

1: mengumpul data yang dihasilkan oleh pelbagai peranti dan penderia dalam Internet sistem Perkara, Termasuk data utama seperti status peranti, kesihatan peranti dan penggunaan trafik.

2 Pemprosesan data: Menghuraikan, menganalisis dan memproses data yang dikumpul, dan mengekstrak maklumat penting, seperti maklumat keabnormalan peranti, maklumat serangan rangkaian, dsb.

3 Penghantaran data: Apabila menghantar maklumat yang diproses ke pusat pemantauan, cara memastikan masa nyata dan ketepatan maklumat adalah pertimbangan penting.

4 Storan data: Simpan data pemantauan dalam pangkalan data untuk analisis dan perlombongan yang lebih baik, serta meningkatkan keberkesanan dan prestasi pemantauan.

5. Amaran tidak normal: Apabila sistem pemantauan mengesan situasi tidak normal, ia mesti mengeluarkan amaran tepat pada masanya supaya pentadbir boleh mengambil langkah tepat pada masanya.

3 Gunakan PHP dan Kafka untuk mencapai pemantauan keselamatan IoT masa nyata

Berikut akan memperkenalkan cara menggunakan PHP dan Kafka untuk mencapai pemantauan masa nyata bagi setiap aspek penyelesaian pemantauan keselamatan sistem IoT:

1 collection

Things Peranti dan penderia dalam sistem rangkaian boleh berkomunikasi dengan pelayan bahagian belakang melalui protokol seperti MQTT dan CoAP serta memuat naik data. Pelayan bahagian belakang boleh menggunakan antara muka API RESTful untuk menerima data dan memuat naiknya. Dalam PHP, anda boleh menggunakan perpustakaan cURL untuk mengendalikan permintaan HTTP. Berikut ialah contoh kod PHP yang mudah:

$url = "http://example.com/api/data"; //API接口地址
$data = array(
  'device_id' => '123',
  'timestamp' => '1621557645',
  'data' => array(
    'temperature' => 25,
    'humidity' => 50,
    'light' => 100
  )
);

$options = array(
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => json_encode($data),
  CURLOPT_HTTPHEADER => array('Content-Type: application/json'),
);

$ch = curl_init($url);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);

echo $response;

2. Pemprosesan data

PHP sendiri adalah bahasa skrip yang boleh memproses data dengan mudah. Pemprosesan data boleh diproses melalui fungsi dan sambungan terbina dalam PHP, atau melalui fungsi tersuai. Berikut ialah contoh kod PHP mudah:

$data = '{"device_id":"123","timestamp":"1621557645","data":{"temperature":25,"humidity":50,"light":100}}';

$json = json_decode($data, true); //将JSON转成PHP数组
$temperature = $json['data']['temperature'];
$humidity = $json['data']['humidity'];
$light = $json['data']['light'];

if ($temperature > 30) {
  echo "Warning: Temperature too high!";
}

if ($humidity > 80) {
  echo "Warning: Humidity too high!";
}

if ($light < 50) {
  echo "Warning: Light too low!";
}

3 Penghantaran data

Kafka ialah sistem baris gilir mesej teragih yang boleh mencapai konkurensi yang tinggi dan kebolehpercayaan penghantaran mesej yang tinggi. Kafka menyediakan pelbagai perpustakaan pelanggan seperti Java, Scala, Python dan PHP untuk memudahkan penghantaran mesej. Berikut ialah contoh kod PHP mudah:

$config = KafkaConsumerConfig::getInstance();
$config->setMetadataRefreshIntervalMs(10000);
$config->setMetadataBrokerList('kafka1.example.com:9092,kafka2.example.com:9092,kafka3.example.com:9092');
$config->setGroupId('mygroup');
$consumer = new KafkaConsumer();
$consumer->setLogger(new KafkaLogEchoLogger());

$topics = array('mytopic');
$consumer->subscribe($topics);
while (true) {
  $message = $consumer->consume();
  if (empty($message)) {
    continue;
  }

  $data = json_decode($message->payload, true); //将消息转成PHP数组
  //处理数据逻辑
}

4 Penyimpanan data

Dalam pemantauan masa nyata, biasanya perlu menyimpan data yang dipantau. MySQL ialah pangkalan data hubungan yang biasa digunakan dengan keupayaan yang baik untuk menyimpan dan mengurus data. Ini boleh dilakukan menggunakan sambungan mysqli atau PDO dalam PHP. Berikut ialah contoh kod PHP mudah:

$host = 'localhost';
$username = 'username';
$password = 'password';
$database = 'mydatabase';

$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO data (device_id, timestamp, temperature, humidity, light) VALUES (?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssiii", $device_id, $timestamp, $temperature, $humidity, $light);

$device_id = '123';
$timestamp = '1621557645';
$temperature = 25;
$humidity = 50;
$light = 100;
$stmt->execute();

$stmt->close();
$conn->close();

5 Amaran tidak normal

Apabila data tidak normal dikesan, pemberitahuan boleh dihantar melalui pelbagai kaedah seperti e-mel, SMS atau APP push. Terdapat pelbagai perpustakaan pihak ketiga dalam PHP yang boleh menghantar e-mel atau mesej teks dengan mudah. Berikut ialah contoh kod PHP mudah:

use PHPMailerPHPMailerPHPMailer;

$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = 'username';
$mail->Password = 'password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('from@example.com', 'MyAPP');
$mail->addAddress('to@example.com', 'User');
$mail->Subject = 'Warning: Temperature too high!';
$mail->Body = 'Temperature has reached to 35.0 °C!';
$mail->send();

IV Ringkasan

Artikel ini memperkenalkan cara menggunakan PHP dan Kafka untuk melaksanakan pemantauan keselamatan IoT masa nyata. Apabila melaksanakan pemantauan sistem IoT, pelbagai aspek perlu dipertimbangkan, seperti pengumpulan data, pemprosesan, penghantaran, penyimpanan dan amaran tidak normal. PHP ialah bahasa skrip yang mudah dipelajari dan boleh mengendalikan pemprosesan data dan menghantar permintaan dengan mudah. Kafka ialah sistem baris gilir mesej yang diedarkan yang boleh mencapai konkurensi yang tinggi dan kebolehpercayaan penghantaran mesej yang tinggi. Dengan menggabungkan PHP dan Kafka, pelbagai masalah dalam pemantauan keselamatan sistem IoT dapat diselesaikan dengan baik dan keberkesanan serta prestasi pemantauan dapat dipertingkatkan.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pemantauan keselamatan IoT masa nyata menggunakan PHP dan Kafka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn