Author: kanakorn.h

  • ELK #01

    ELK = ElasticSearch + LogStash + Kibana

    วิธีการติดตั้ง ElasticSearch บน Ubuntu 16.04

    1. ก่อนอื่น Update
      sudo apt -y update ; sudo apt -y upgrade
    2. ติดตั้ง Java JDK
      sudo apt -y install default-jdk
    3. Download และติดตั้ง
      wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.2.deb
      sudo dpkg -i elasticsearch-5.4.2.deb
      sudo update-rc.d elasticsearch defaults 95 10
    4. แก้ไขไฟล์ /etc/elasticsearch/elasticsearch.yml โดยเพิ่มบรรทัดสุดท้าย
      cluster.name: my-cluster-name
      network.host: [_site_]
      node.name: ${HOSTNAME}
    5. เริ่มทำงาน
      sudo -i service elasticsearch start
    6. ทดสอบการทำงาน โดยใช้คำสั่ง
      curl -XGET “${HOSTNAME}:9200/?pretty”
    7. ดู Log ได้ที่
      sudo tail -f /var/log/elasticsearch/my-cluster-name.log
  • Regular Expression สำหรับเลือก field ที่ต้องการจาก CSV File

    ตัวอย่างเช่น มีข้อมูลแบบ

    a,b,c,d,e

    ต้องการเฉพาะ Column ที่ 3 นั่นคือต้องการ c

    ให้ Find

    ^([^,]*),([^,]*),([^,]*),([^,]*),([^,]*)

    แล้ว Replace ด้วย

    \3

     

  • Regular Expression สำหรับ Email Address Validation

    หา valid email address

    ^(?!\b[a-zA-Z0-9._-]+@ [a-zA-Z0-9_.-]+\.[a-zA-Z0-9]{2,}\b).*$

    หาก invalid email address

    ^(?=\b[a-zA-Z0-9._-]+@ [a-zA-Z0-9_.-]+\.[a-zA-Z0-9]{2,}\b).*$
  • TODO: สำหรับผู้ใช้ Microsoft Windows เพื่อป้องกัน Wana Decrypt0r Ransomware

    สิ่งที่ต้องทำ สำหรับ ผู้ใช้ Microsoft Windows

    และ สำหรับผู้ดูแลระบบของหน่วยงาน

    1. Backup หรือ สำรองข้อมูลสำคัญ ไว้ใน External Harddisk, USB Drive, Cloud Drive
    2. กรณี Windows Vista, Windows XP, Windows 8
      ให้ไปที่ Website นี้ เพื่อ Download ตัว Update ที่ตรงกับ Windows ของตน มาติดตั้ง (MS17-101 หรือ KB4012598)
      http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012598
    3. กรณี Windows 7
      http://www.catalog.update.microsoft.com/search.aspx?q=4012212
    4. กรณี Windows 8.1
      http://catalog.update.microsoft.com/v7/site/search.aspx?q=4012213
    5. กรณี Windows 10
      Start > พิมพ์ Windows Update

    สำหรับคนที่ยังใช้ Windows XP ควรพิจารณา Upgrade มาเป็น Windows 10

    โดยติดตั้ง Microsoft Windows รุ่นล่าสุดของมหาวิทยาลัยสงขลานครินทร์

    (ต้องมี PSU Passport)ได้ที่
    https://licensing.psu.ac.th/windows-10-education-version-1703-updated-march-2017-microsoft-imagine/

     

    ขอให้โชคดี

     

  • มีโปรแกรมไวรัส “เรียกค่าไถ่” ระบาดทั่วโลก (Wana Decrypt0r)

    หากท่านใช้ Windows และ ได้รับ Email ที่มีไฟล์แนบ โปรดระมัดระวังอย่างที่สุด

    สรุปความสั้นๆ:

    1. มีโปรแกรมเรียกค่าไถ่ระบาดทั่วโลก: หากติดไวรัส ไฟล์ในเครื่องเช่น Word, Excel หรือ งานวิจัยของท่านจะถูกเข้ารหัส ทำให้เปิดไม่ได้อีกเลย จนกว่าจะยอมจ่ายเงินค่าไถ่ให้กับ Hacker
    2. กระทบต่อผู้ใช้งาน Microsoft Windows โดยเฉพาะอย่างยิ่ง เครื่องที่ใช้ Windows File Sharing (Drive I อะไรทำนองนั้น) ใช้ Windows เถื่อน โดนแน่ๆ เพราะจะไม่ได้รับการ Update จาก Microsoft ถ้าใช้ Windows ลิขสิทธิ์แต่ไม่เคย Update ก็น่าจะโดนได้ง่ายๆ ใช้ Windows XP น่ะเสี่ยงสุดๆ
    3. หากได้รับ Email และมี ไฟล์แนบ ให้ระมัดระวัง: ไม่ว่าจะมาจากคนที่รู้จักหรือไม่ก็ตาม ก่อนเปิดไฟล์ให้ดูดีๆ หากเปิดมาแล้วมันถามโน่นนี่เป็นภาษาที่ไม่เข้าใจ ให้ปรึกษานักคอมพิวเตอร์ใกล้ตัวท่าน
    4. หากโดนแล้ว ทำใจอย่างเดียว: อยากได้ไฟล์คืน จ่ายเงินสกุล BitCoin ซึ่งตอนนี้ แพงกว่าทองคำ และจ่ายไปแล้ว ก็ไม่รับประกันว่าจะได้ไฟล์คืน ดิ้นรนหาโปรแกรมแก้ ??? ระวังเจอไวรัสแฝง !!!
    5. AntiVirus ไม่ช่วยอะไร: เพราะไฟล์แนบไม่ใช่ Virus แต่ ถ้าเปิดโปรแกรมมา มันจะไป Download Virus จริงๆมาอีกที
    6. ป้องกันได้อย่างเดียวโดยการ Update Windows: ดังนั้น Windows เถื่อน, Windows โบราณ (XP เป็นต้น), Windows ขี้เกียจ (ไม่ยอม Update) เสี่ยงจะติดไวรัสนี้มากที่สุด

    [UPDATE] สิ่งที่ต้องทำสำหรับ Windows แต่ละรุ่น https://sysadmin.psu.ac.th/2017/05/15/todo-update-windows/

     

    รายละเอียดเชิงลึก

    https://www.techtalkthai.com/wana-decrypt0r-2-0-technical-note/

    ที่มาและภาพประกอบ:

    https://www.bleepingcomputer.com/news/security/wana-decryptor-wanacrypt0r-technical-nose-dive/

  • 3 ขั้นตอนง่ายๆ ในการ Block Email ที่ไม่ต้องการใน PSU Webmail

    1. เปิด Email ฉบับที่ไม่ต้องการรับ แล้วคลิกที่ From ในบรรทัด Create Filter
    2. เลือกว่าจะ Block แบบไหน
      2.1 Reject คือโยนทิ้งทันที และแจ้งผู้ส่งด้วย
      2.2 Discard คือโยนทิ้งทันที แบบเงียบๆ
      *** ในช่อง Additional Actions คลิก STOP ด้วย ***
      จากนั้นคลิก Add New Rule
    3. รออะไร คลิก Close สิครับ
  • Kafka #01 Basic Installtion

    Apache Kafka เป็น distributed streaming platform [1] กล่าวคือ สามารถ Publish และ Subscribe ข้อมูลแบบ Streaming ได้ คล้ายๆกับ Message Queue หรือ Enterprise Messaging System ระบบนี้ใช้ได้ทั้งเป็น Real-time Streaming Data Pipeline และ สร้าง Streaming Application ได้ Apache Kafka ออกแบบมาให้สามารถทำงานเป็นแบบ Cluster โดยเก็บข้อมูลเป็น Stream of Record ซึ่งจัดหมวดหมู่ในรูปของ Topics ข้อมูลแต่ละ Record ประกอบด้วบ Key, Value และ timestamp

    เอาเป็นว่า ระบบนี้เอาไว้สำหรับรองรับการส่งข้อมูลแนวๆ Streaming มาเพื่อทำการวิเคราะห์แบบ Real-Time แทนที่จะต้องบริหารเองก็แล้วกัน แถมด้วยความสามารถในการ Subscribe ข้อมูล สามารถย้อนไปดูข้อมูลก่อนหน้าได้ (ตามขอบเขตเวลาที่กำหนด) มาติดตั้งกัน

    บทความนี้ ทดสอบบน Ubuntu 16.04

    1. ไป Download และ ติดตั้ง
      จาก https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.2.0/kafka_2.11-0.10.2.0.tgz
      ด้วยคำสั่ง

      wget http://www-eu.apache.org/dist/kafka/0.10.2.0/kafka_2.11-0.10.2.0.tgz
      tar -zxvf kafka_2.11-0.10.2.0.tgz
      cd kafka_2.11-0.10.2.0
    2. Kafka ทำงานบน Zookeeper ดังนั้นให้เริ่มทำงานด้วยคำสั่ง
      bin/zookeeper-server-start.sh config/zookeeper.properties &

      แล้วจึง สั่ง Start Kafka

      bin/kafka-server-start.sh config/server.properties &
    3. ต่อไป Producer กับ Consumer จะติดต่อกันผ่าน Topic จึงต้องสร้าง topic ด้วยคำสั่งต่อไปนี้
      bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

      ซึ่งในที่นี้ จะได้ Topic ชื่อ test ทำงานบน Zookeeper บน Localhost ที่ Port 2181
      ลองใช้คำสั่งต่อไปนี้เพื่อดู Topic ทั้งหมด

      bin/kafka-topics.sh --list --zookeeper localhost:2181
    4. ทดลองส่งข้อมูลเข้าไปให้ Kafka ซึ่งจะทำงานที่ Localhost ที่ Port 9092
      bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

      แล้วลองพิมพ์ข้อความอะไรลงไปดู เช่น

      Hello World
      This is a book
      Blah Blah
    5. ลองเปิดอีก Terminal ขึ้นมา แล้วใช้คำสั่งต่อไปนี้
      bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

      ก็จะเห็นได้ว่า สามารถเรียกดูสิ่งที่ส่งเข้าไปใน Topic “test” ตั้งแต่เริ่มต้นได้

    ตรงนี้ยังไม่แปลกอะไร และไม่น่าตื่นเต้นอะไร บทความต่อไปจะกล่าวถึงการสร้างเป็น Cluster แล้วก็ทำงานกับ หลายๆ Producer และ หลายๆ Consumer พร้อมๆกัน

     

    Reference

    1. https://kafka.apache.org/intro
  • Spam 2017-04-04

    วันนี้ได้รับแจ้งว่า มี Email หลอกลวงแบบแนบเนียน หน้าตาดังนี้

    แหน่ะ แนะนำว่าอย่าให้ข้อมูล Username/Password กับใครอีกด้วย แต่มี Link ให้ไปกรอกรหัสผ่านซะงั้น

    ฝากกระจายข่าวด้วยครับ

  • Spark #03: Query Apache Access Log with Spark SQL

    ต่อจาก

    บทความนี้ จะกล่าวถึงการนำเข้าไฟล์ Apache Access Log เข้าไปเก็บไว้ใน Hadoop HDFS แล้ว ให้ Apache Spark Cluster เข้าไปค้นหาข้อมูล โดยใช้ภาษา SQL ผ่าน Spark SQL API

    นำ Apache Access Log เข้า HDFS

    1. ให้ Copy Apache Access Log ที่มีอยู่มาเก็บไว้ในเครื่องที่สามารถติดต่อ Hadoop HDFS ได้ (ในที่นี้ ชื่อไฟล์เป็น apache.access.log)
    2. ใช้คำสั่งต่อไป
      (แทน /test/ ด้วย Path ที่สร้างไว้ใน HDFS)

      hdfs dfs -copyFromLocal apache.access.log /test/
    3. เมื่อไปดูผ่าน Web UI ของ Hadoop HDFS ก็จะเห็นไฟล์อยู่ดังนี้

    วิธี Query ข้อมูลจาก Zeppelin ไปยัง Spark Cluster

    1. เปิด Zeppelin Web UI แล้วสร้าง Note ใหม่ โดยคลิกที่ Create new node
      แล้วใส่ชื่อ Note เช่น Query Apache Access Log
      ตั้ง Default Interpreter เป็น Spark
      แล้วคลิก Create Note
    2. ใส่ Code ต่อไปนี้ลงไป
    3. ด้านขวามือบน จะมีรูปเฟือง ให้คลิก แล้วเลือก Insert New
    4. แล้วใส่ข้อความนี้ลงไป
    5. จากนั้นคลิก Run all paragraphs
    6. ผลที่ได้

    ตอนต่อไปจะมาอธิบายวิธีการเขียนคำสั่งครับ