Wi-Fi CCTV

ช่วงเดือนที่ผ่านมาเพิ่งติด CCTV หลังจากมองซ้ายมองขวาสักพักก็ตัดสินใจใช้ Wi-Fi เพราะน่าจะง่ายสุด เนื่องจากบ้านเก่าไม่ได้เดิน LAN ไว้แต่แรก (อีกทางเลือกคือ Ethernet over Power Line แต่ตัดไป ไม่เคยใช้)

เลือก HIKVISION DS-2CD2121G1-IDW1 เพราะราคากับคิดว่าแบรนด์มาตรฐานน่าจะโอเค โดยเฉพาะเตรียมจะต่อ ONVIF เข้า NAS อยู่แล้ว ปรากฎว่าลืมดูว่าไม่รับ Wi-Fi 5GHz ทำให้เรื่องยาวกว่าที่คิดเพราะพอติดหลังบ้านแล้ว connection แย่มาก 2.4GHz นี่ noise น่าจะสูงอยู่แล้วแม้จะเป็นหมู่บ้าน ไม่ใช่คอนโดก็ตามที

ยังตัดสินใจไม่ติดสาย แต่เลือกใช้ repeater มากระจายสัญญาณไปหลังบ้าน เงื่อนไขคือราคาถูกๆ กับรองรับ Wi-Fi 5GHz เพื่อทำเป็น back haul มาเข้า router กลางบ้าน เลือกไปได้ TP-Link RE200 เข้าข่ายครบ แปะไว้ในห้องด้านหลังๆ หน่อยก็น่าจะเชื่อมไป CCTV ได้

ปรากฎว่าพอคอนฟิกกล้องให้ต่อ repeater แล้วกล้องร่วงไปเลย เช็คไปเช็คมา ปรากฎว่า RE200 มันจะเปลี่ยน MAC สามชุดแรกให้กลายเป็น vendor ID ของ TP-Link เองแล้วเหลือ 3 ชุดหลังให้เหมือนของอุปกรณ์จริงอันนี้เป็นเรื่องแปลกๆ ที่เพิ่ง่เคยเจอ เลยทำให้ static DHCP ไม่ทำงาน (อันนี้พลาด คือไม่ตรวจก่อนว่ามี MAC แปลกๆ โผล่มาในเน็ตเวิร์ค)

อุปกรณ์ทุกตัว รวมถึงตัว repeater (ที่มีหมายเลขไอพีของตัวเองด้วย) ถูกบังไว้หลัง MicroTik แล้วบล็อคออกเน็ตทั้งหมด ยอมให้ NAS ออกได้อย่างเดียว ปกติแล้วกล้อง CCTV จำเป็นต้องออกเน็ตสองเรื่องคืออัพเดตเฟิร์มแวร์ก็อาศัยการอัพเดตจากเดสก์ทอปได้ กับการตั้งเวลาผ่าน time server กรณีนี้ ONVIF มันรองรับอยู่แล้ว ก็ให้ซิงก์เวลาจาก NAS ที่ทำหน้าที่ DVR ไป

 

PFG = PostgreSQL + Fluent-bit + Grafana

ปีที่ผ่านมาความรับผิดชอบหนึ่งของผมใน MFEC คือการดู centralized log ทั้งบริษัท โดยทั่วไปการใช้ ELK (Elasticsearch + Logstash + Kibana) ก็เป็นแนวทางมาตรฐาน แม้จะทำงานได้ดีแต่ก็มีส่วนที่ไม่ชอบหลายอย่าง เช่น

  • ผมไม่เคยอัพเกรด Elasticsearch สำเร็จเลย หลังๆ เลยยอมลง cluster ใหม่แล้วชี้ Logstash ออกไปที่ใหม่ชัวร์กว่ามาก
  • ภาษา query ค่อนข้างเฉพาะตัว คนไม่เคยใช้งงแน่นอน
  • ทั้ง Stack เป็น Java กินแรมเริ่มต้นค่อนข้างสูง
  • จากปัญหากินแรม ใน edge จริงๆ ฝั่ง ELK เลยมักใช้ filebeat ไปกวาดข้อมูลขึ้น logstash แต่จะเจอว่า filebeat มันจำกัดมาก process อะไรกับ log แทบไม่ได้เลย

ผมเองเห็น fluentd มาพักใหญ่ๆ แล้วได้ลองมาพักหนึ่งแต่ไม่เคยเอาขึ้น production จริงจัง พอดีมีโปรเจคใหม่กำลังขึ้นเลยจะขอลอง พออ่านไปอ่านมาก็เจอว่า fluentbit มันเล็กกว่า แม้จะมีฟีเจอร์น้อยกว่า fluentd มาก แต่รวมๆ ก็ถือว่าเยอะกว่า filebeat อยู่ดี (มี stream processor ด้วยซ้ำไป)

จุดสำคัญคือ PostgreSQL นั้นมีคนเข้าใจมันเยอะกว่า Elasticsearch มาก งาน operation ทั่วๆ ไป การ query ข้อมูล, backup, restore, upgrade นั้นมักมีคนได้เป็นเรื่องปกติ ส่วนจุดขายของ ELK จะเป็นการทำงานกับข้อมูลแบบไม่มี schema ที่เหมาะกับ log มากกว่า แต่ PostgreSQL เองก็รองรับข้อมูลแบบ JSON/JSONB มาตั้งแต่เวอร์ชั่น 9.4

fluentbit รองรับ postgesql ในตัว โดยตารางที่เขียนข้อมูลมีแค่ 3 column คือ time, tag, data แล้วใส่ตัว data ไว้เป็น JSONB

พอลองเล่นแล้วพบว่าเวิร์คกว่าที่คิด จุดประหลาดที่สุดคงเป็น Grafana ที่คุมให้กราฟมันออกอย่างที่อยากได้ยากกว่า ELK แม้ ELK จะ alien กว่าตอนเริ่มต้น แต่พอทำงานจริงๆ แล้วจะพบว่ามันคิดอะไรให้เยอะแล้ว พวกกด drill down ข้อมูล ELK ทำได้ดีกว่ามากกดเงื่อนไขเพิ่มจากในกราฟได้เลย นับเป็นข้อได้เปรียบของการใช้ UI ที่ผูกกับ data source เดียว

ในแง่ประสิทธิภาพผมยังไม่ได้ทดสอบเองแต่เจอว่า Postgres เสียเปรียบเรื่องการกินพื้นที่ดิสก์มาก แต่ประสิทธิภาพการคิวรีดีกว่า InfluxDB ไว้มีเวลาแล้วค่อยเอา data ชุดเดียวกันมาเทียบอีกที (ยังหา benchmark เทียบกับ elasticsearch ไม่เจอ)

 

The Net

The Net หนังที่ได้ดูตั้งแต่สมัยเด็กๆ และจำได้ว่ามันเท่มาก พอกลับมาบน Netflix เลยนั่งดูดีๆ อีกรอบ ทำให้เห็นว่าเนื้อเรื่องหลักของมันคือซอฟต์แวร์รักษาความปลอดภัยที่ชื่อว่า Gatekeeper ตอนเด็กๆ ดูแล้วไม่เข้าใจอะไร แค่รู้สึกว่ามันพิมพ์ๆ เจาะๆ แล้วเท่

ตัว Gatekeeper เองถ้ามองสมัยนี้มันคงเป็น WAF (Web Application Firewall) ที่ช่วยดูแลไม่ให้เว็บโตนเจาะ แต่ตัวมันดันวาง backdoor ให้คนรู้รหัสพิเศษเข้าไปได้

ในโลกยุคกูเกิล (และ shodan) การวางลิงก์พิเศษไว้มุมจอดูไร้สาระ แต่ข้อจำกัดของหนัง จะให้บอกว่าต้องเข้าผ่าน curl -X POST https://host/gatekeeper_backdoor/ แบบนั้นคงยากเกินไป (ยกเว้นหนังที่ใช้ฉากแฮกประกอบสั้นๆ เช่น The Matrix)

จุดที่ไม่สมจริงมากๆ คืออยู่ๆ คนทั่วไปก็เชื่อในบริษัทซอฟต์แวร์รักษาความปลอดภัยบริษัทหนึ่งขึ้นมาพร้อมกันไปทั้งหมด ทนายตอนคุยกับนางเอกยังเชื่อว่าระบบโดนแฮกไม่ได้เพราะลงซอฟต์แวร์ตัวนี้ โลกความเป็นจริงคนทั่วไปแทบไม่สนใจหรอกว่าใช้ซอฟต์แวร์ตัวไหนยังไง มีแต่ CIO/CISO ที่นั่งคิดนั่งดูกันเอง

โลกความเป็นจริงการวางซอฟต์แวร์ Security ก็ไม่ได้สมบูรณ์ หลายครั้งไฟร์วอลล์เองก้มีช่องโหว่จนแฮกเกอร์ใช้เป็นจุดรันโค้ดโจมตีในองค์กรเรื่อยๆ

ชีวิตนี้ไป MOSCONE CENTER มาแล้ว กลับไปดูในหนังอีกทีแล้วรู้สึกเจ๋งมาก ที่เราสมัยเด็กๆ ได้แต่มองงานคอนเฟอร์เรนซ์ระดับโลกแค่ไหนหนัง แล้วถึงเวลามีโอกาสได้ไป

 

iPhone SE

อ่านเรื่อง Tim Cook ว่าเป็นคนจัดการ Supply Chain ของแอปเปิลจนสร้างกำไรกดหัวคู่แข่งแทบหายใจไม่ออก เพราะสามารถกดต้นทุนไปพร้อมกับการสร้างแบรนด์ที่ขายได้แพงกว่าชาวบ้าน ถึงเวลาอยากลดราคาแบบ iPhone SE ก็ลดได้ตามกลยุทธ์ตัวเอง

พอสั่งมาเล่นด้วยตัวเอง เห็นวันที่ผลิต 21 พค. แล้วก็เชื่อว่าของจริง ระบบ supply chain ของแอปเปิลมันล้ำหน้าบริษัทอื่นไปไกล ของออกจากโรงงานสิบวันถึงมือ consumer ได้

iPhone SE ยังเป็นเวทีแสดงความสามารถในการกดต้นทุนของ Tim Cook ได้จนคิดว่าน่าจะสูงสุดแล้ว ชิ้นส่วนใช้ซ้ำรุ่นเดิมๆ ที่ผลิตมาหลายล้านเครื่อง หรือไม่ก็ปรับแต่งเพียงเล็กน้อยซึ่งน่าจะกดค่าผลิตโรงงานได้จนแทบไม่เหลืออะไร (โรงงานแทบไม่ต้องปรับแต่งสายการผลิต แต่มีออเดอร์ก้อนใหญ่รอตรงหน้า) ชิ้นส่วนที่ต้องทำใหม่อย่าง logic board ก็ใช้ชิ้นส่วนอื่นๆ ร่วมกับรุ่นใหญ่

แน่นอนผมไม่ใช่ผู้ถือหุ้นของแอปเปิลที่ต้องดีใจว่าแอปเปิลขายได้กำไรดีไหม แต่มีเครื่องขายสเปคดี ราคาดี ซัพพอร์ตยาวก็ถือเป็นชัยชนะผู้บริโภค

อันนี้เป็นข้อเสียของแบรนด์อื่นๆ ที่ไม่แน่ใจว่ามีข้อจำกัดอะไร ถึงได้ไม่สามารถทำซ้ำสูตรสำเร็จของแอปเปิลได้ การใช้ชิ้นส่วนร่วมกันไปมาระหว่างรุ่น ทั้งใน gen เดียวกันแต่ข้ามรุ่นเล็กใหญ่ และโมเดลข้ามปีแต่ปรับให้ชิ้นส่วนรุ่นสูงกลายเป็นชิ้นส่วนสำหรับรุ่นล่าง ภายใต้จำนวนรุ่นที่น้อยกว่ายี่ห้อคู่แข่ง แต่จำนวนชิ้นส่วนที่แอปเปิลสต็อกจริงๆ น่าจะน้อยลงไปอีกหลายเท่าตัว