การนำ chatbot AI Abdul ของ Nectec มาประยุกต์ใช้งานกับงานผู้ดูแลระบบ network ( ยากๆ เราไม่ ง่ายๆ เราทำ)
สืบเนื่องจากบทความที่แล้ว เราได้ทำการลองเล่นกับ abdul ไปบ้างแล้ว คราวนี้เราลองเอา Abdul มาประยุกต์ใช้งานครับ ใครยังไม่รู้จัก abdul ลองอ่านได้ที่ https://havespirit.blogspot.com/2017/08/line-chatbot-as-conversation-ai.html
ขอบคุณอาจารย์โคนัน จาก nectec มากๆ ครับ
เนื่องจากงานหลักๆ ในหน้าที่ผมคือดูแลระบบ network และ server จึงพยายามนำมาประยุกต์ใช้กับงานที่ต้องดูแลระบบ network โดยปกติระบบ monitor นี้ ผมกับน้องอีกคนทำขึ้นมาเอง ใช้ python เก็บข้อมูลง mysql แล้วถ้าเกิดมี server down หรือ ห้อง server ร้อน มันก็จะแจ้งเตือนผ่าน ไลน์อยู่แล้ว แต่สมมติว่าถ้าอยากดูข้อมูลแบบ realtime ล่ะ ผมก็เลยเพิ่มช่องทางการตรวจสอบผ่าน line chatbot เลย สะดวกดี จะดูเมื่อไหร่ก็ได้
โดยปัจจุบันนี้ Line chatbot ที่ทำมาจาก abdul สามารถทำได้ดังนี้
1.ตรวจสอบดู bandwidth และจำนวนผู้ใช้งานอินเทอร์เน็ต แบบ realtime
อันนี้เขียนด้วย python ดึงค่าจาก core swtich แล้วส่งไปที่ thingspeak และเก็บลง mysql จากนั้นเขียนด้วย php ดึงค่ามาแสดงรวมทั้งหมด แต่จริงๆ สามารถให้ abdul ดึงจาก thingspeak ตรงๆ ก็ได้ แต่ค่าที่ได้จะแยกกัน ใช้ XTEXT
/////////////////////////////////
อันนี้ใช้ nodemcu + dht22 แล้วยิงข้อมูลขึ้น thingspeak และเก็บใน mysql ครับ จากนั้นเขียนด้วย php ดึงค่าจาก thingspeak มาแสดงครับ ใช้ XTEXT
อ่านเพิ่มเติมได้ที่ https://havespirit.blogspot.com/2017/03/esp8266-dht11-mysql-thingspeak-line.html
///////////////////////////////////////
อันนี้เขียนด้วย python แล้วส่งข้อมูล ip ของ server ที่ down ขึ้น thingspeak แล้ว ให้ abdul เรียกผ่าน thingspeak ตรงๆ เลย ด้วย XTEXT แต่จะเห็น server ที่ down ทั้งหมดแม้จะผ่านมาแล้ว เรียงลำดับลงมา ตามวันเวลา
วิธีการทำอ่านได้ที่ https://havespirit.blogspot.com/2017/08/python-ping-server-mysql.html
อันนี้เขียนโปรแกรมบน php ครับ รับค่า พารามิเตอร์ เป็น IP หรือ name ใช้ xtext
/////////// code php //////
<?php
error_reporting(0);
$server1 = $_REQUEST['ip'];
$server = gethostbyname($server1);
//Page Variables
$online= $server.' is online';
$offline=$server.' is offline';
//Functions
function servercheck($server,$port){
//Check that the port value is not empty
if(empty($port)){
$port=80;
}
//Check that the server value is not empty
if(empty($server)){
$server='localhost';
}
//Connection
$fp=@fsockopen($server, $port, $errno, $errstr, 1);
//Check if connection is present
if($fp){
//Return Alive
return 1;
} else{
//Return Dead
return 0;
}
//Close Connection
fclose($fp);
}
//Ports and Services to check
$services=array(
'HTTP (Port 80)' => array($server => 80)
);
foreach($services as $name => $server){
//echo $name;
//echo $server;
foreach($server as $host => $port){
if(servercheck($host,$port)){ echo $online." "; }else{ echo $offline." "; }
}
}
?>
// อันนี้ check เฉพาะ port 80
ที่มาของ code ครับ https://www.namepros.com/threads/server-status-script.271042/
/////////////////////////////
โดยเอา code php จากข้อ 4 มาประยุกต์ใช้ครับ
/////////////////// code php //////////////
<?php
error_reporting(0);
$server1 = $_REQUEST['ip'];
$server = gethostbyname($server1);
//Page Variables
$online= ' ==> On '.' , ';
$offline=' ==> Off'.' , ';
//Functions
function servercheck($server,$port){
//Check that the port value is not empty
if(empty($port)){
$port=80;
}
//Check that the server value is not empty
if(empty($server)){
$server='localhost';
}
//Connection
$fp=@fsockopen($server, $port, $errno, $errstr, 1);
//Check if connection is present
if($fp){
//Return Alive
return 1;
} else{
//Return Dead
return 0;
}
//Close Connection
fclose($fp);
}
//Ports and Services to check
$services=array(
'HTTP(80)' => array($server => 80),
'HTTPS(443)' => array($server => 443),
'FTP(21)' => array($server => 21),
'SSH(22)' => array($server => 22),
'RDP(3389)' => array($server => 3389)
foreach($services as $name => $server){
//echo $name;
//echo $server;
foreach($server as $host => $port){
if(servercheck($host,$port)){ echo $online." "; }else{ echo $offline." "; }
}
}
?>
///////////////////////////////////////
/////////////////////////////////
6.อันนี้ไว้ใช้หาเบอร์โทร ติดต่อระหว่างหน่วยงานภายในครับ
พอดีมีฐานข้อมูลอยู่แล้ว เขียน php ดึงออกมาเป็น json โดยใช้ function XJSON ครับ
/// เพิ่มเติม 2007/08/24 07:12)
7. scanport เอาไว้ check ว่า server เรา เปิด port อะไรไว้บ้าง
///// code php scanport ////
<?php
error_reporting(~E_ALL);
$from = 1;
$to = 10000;
//TCP ports
$host = $_REQUEST['ip'];
//Create a socket
$socket = socket_create(AF_INET , SOCK_STREAM , SOL_TCP);
echo $host." open port ==> \n\n\n";
for($port = $from; $port <= $to ; $port++)
{
//connect to the host and port
$connection = socket_connect($socket , $host , $port);
if ($connection)
{
echo " $port \n".",";
//Close the socket connection
socket_close($socket);
การตั้งค่า abdul
***************************************
เยี่ยมเลยค่ะ
ตอบลบ