การสร้าง Custom View ของ Windows Event Viewer และตัวอย่าง View Logon Failure

การตรวจสอบเครื่อง Windows Server ว่ามันทำงานปกติหรือไม่นั้น จะใช้เครื่องมือ Windows Event Viewer ในครั้งนี้เราจะศึกษาการสร้าง Custom Views หรือการสร้างคำสั่ง Query เพื่อดึงเฉพาะ Event ที่เราสนใจเก็บไว้ใช้งาน และช่วยให้ดูง่ายๆ เช่น การหา Logon Failure เป็นต้น (Windows ไม่มี filter GUI ให้ เวลาจะดู logon failure ต้องสร้างเองตามตัวอย่างด้านล่าง)  ตั้งแต่ Windows Server 2008 มันได้ถูกแบ่งเป็น 2 กลุ่มคือ Windows Logs และ Applications and Services Log (ตามภาพด้านล่าง) โดย

– Windows Logs คือ Event log ส่วนกลางของ Windows เช่น Application, Security, System ส่วนนี้จะถูกใช้งานบ่อย โดย System Admin จะคอยดูว่ามี Error อะไรที่เป็นสัญญาณของปัญหา

– Applications and Service Logs คือ กลุ่มใหม่ของ Event log ที่บันทึกจาก Application บน Windows โดยเวลาจะดูต้องเลือกชื่อ Application ที่ต้องการด้วย

image

Applications and Service Logs

การบันทึก Event Log ลงในกลุ่มนี้ ผู้เขียน Application จะต้องไปสร้าง Source ขึ้นมา ในภาพด้านล่าง Source ชื่อ TaskScheduler มี 4 Category  ที่เปิดให้ดูเป็น Operational (Log Name=Microsoft-Windows-TaskScheduler/Operational)  แนะนำให้ System Admin แจ้ง Developer บันทึก Log ลงตรงนี้ เพราะการ Monitor ทำได้ง่าย การสร้าง Log อาจใช้ภาษา .Net เช่น C#, VB,C++ เป็นต้น

image

วิธีสร้าง Custom Views เก็บไว้ดู Event Log ส่วนตัว

การสร้าง Custom Views คือการสร้าง View ที่ใช้ดู Event log ขึ้นมาใหม่ ด้วยรูปแบบ XML  มีประโยชน์ดังนี้

  1. ดึง Log ที่น่าสนใจมาบันทึกเป็น view ส่วนตัว เพื่อเรียกดูใหม่ได้อีก
  2. ดึง Log มาจากหลาย Source ได้ ซึ่งการดูผ่าน GUI ทำไม่ได้
  3. สามารถสร้างเงื่อนไขที่เจาะจงและซับซ้อนได้ เช่น Secuity Log มี  Login Fail และ Application Log ที่ Error ของระยะเวลา 7 วันที่ผ่านมา

ขั้นตอนการสร้างมีดังต่อไปนี้

1. เปิด Event Viewer และ Click ขวาที่ Custom Views เลือก Create Custom View…

image

2.  หน้า Create Custom View เลือก XML

image

3. สร้างคำสั่งด้วยรูปแบบ XML เช่น การสร้าง View ดูการ Login จาก network มาที่ Server  แล้ว Failure จะใช้คำสั่ง

ตัวอย่างที่ 1 หาค่า logon fail ที่ Log ผ่าน network เข้ามา

<QueryList>
<Query ID=0 Path=”Security”>
<Select Path=”Security”>
              *[System[(band(Keywords,4503599627370496)]]
and
*[EventData[Data[@Name=’LogonType’]=’3’]]
         </Select>
</Query>
</QueryList>

คำสั่งเป็น XML ส่วนชื่อข้อมูลก็ลองไปกดดู Event Log ที่สนใจแล้ว click ที่ Details (ภาพด้านล่าง) ในภาพเป็น Event ของ Security  มี section System เราสนใจ Keyword ซึ่งหมายถึง Logon Fail หรือ Success การเก็บเป็นตัวเลขฐาน 2 แต่การเขียน query ต้องแปลงเป็นฐาน 10 โดยให้ตัด 0x8 ออกไป ก็จะได้ค่าเท่ากับ 4503599627370496 อีกเรื่องที่ต้องรู้คือการใช้ XML Filter XPath 1.0 มีคำสั่ง band มีรูปแบบ Boolean band(bitfield, bitfield)  เราเทียบค่าเพื่อหา Keyword กับค่าที่เราต้องการคือ Logon Failure

ในคำสั่งต่อมา Section EventData มาจะหา Logon ที่มาจาก network ซึ่งมีค่าเป็น 3 ก็พิมพ็ไปตามตัวอย่าง

image

ตัวอย่างที่ 2 เป็นการดู Logon Failure ในระยะ 7 วันที่ผ่านมา และ Application Log ในหน้าเดียวกัน

<QueryList>
<Query Id=”0″ Path=”Security”>
    <Select Path=”Security“>
*[System[ (band(Keywords,4503599627370496))]]
and
*[System[TimeCreated[timediff(@SystemTime) &lt; = 604800000]]]
and
*[EventData[Data[@Name=’LogonType’]!=’3′]    ]
</Select>

       <Select Path=”Application“>           *[System[(Level=1  or Level=2 or Level=3)]]      </Select>
</Query>

</QueryList>

อธิบายเฉพาะส่วนเพิ่ม คือ

– timediff() เป็น Function ของ XPath 1.0 อ่านเพิ่มเติมจาก Rerenence 2 ใช้เทียบเวลา &lt; หมายถึง มากกว่า 60480000 วินาที  (มาจาก 7วัน * 24 ชม * 60 นาที * 60 วินาที)

– Logon  ไม่เท่ากับ 3 คือ ไม่ได้มาจาก network

– ใส่ Application ผมเข้าไปด้วย (สีฟ้า)

 

สรุป

การสร้าง Custom Views ของ Event Log ช่วยให้สร้าง query เรากรองเอา Log ที่ต้องการมา save เป็น view เพื่อให้เรียกใช้งานได้ง่ายๆ

Reference

  1. Event Logs (http://technet.microsoft.com/en-us/library/cc722404.aspx)
  2. 2.2.15.2 Filter XPath 1.0 Extensions (http://msdn.microsoft.com/en-us/library/cc231313.aspx)
Advertisements

Hyper-V Replica with SharePoint, Yes or No?

Hyper-V Replica is a powerful feature for replicating virtual machine from primary Hyper-V host to secondary host. The host can locate on same or different location. It was released the first time in Windows Server 2012 (Hyper-V gen 3) where the replication is made every 5 minutes. Later, in Windows Server 2012 R2 (Hyper-V gen 4). The frequency is adjustable in 3 options, in every 30 seconds, every 5 minutes, and every 15 minutes.

SharePoint, Timer Job is the scheduler that running variety jobs i.e. excute tasks in web applications, e-mail alert and etc.  Schedule job in SharePoint rely on Timer. Timer job is a service that presents on Windows Service called ‘SharePoint Timer Service’. From picture at the bottom, there are 2 web-front-end and 2 application server in my farm. The job is distributed among 4 SharePoint server in the farm.

image

image

For Hyper-V administrator, the Hyper-V Replica may adopt for Disaster Recovery solution. As mentioned in below, Timer Job is running in an unpredict time. The use of Hyper-V replica will lead to inconsistency SharePoint state between Production and DR site. It can conclue the reason of unable to use Replica with SharePoint in below.

  1. SharePoint has timer job. The Replica from many SharePoint from production may not replicate at the same time. This will cause VM inconsistent with over VM.
  2. If store VM on SAN, the SAN replication will also cause same problem as #1

So, the main reason why we cannot use Hyper-V replica? Because, Timer Job is running in more frequency than Hyper-V Replica. It will cause Replica VM at DR site inconsistency  state e.g. rerun the job that already executed at production.

Reference:

  1. Sharepoint 2010 and Hyper-V 2012 VM replication as DR solution ( MS Forum)
  2. Hyper-V Replica Overview
  3. Timer job reference (SharePoint 2013)

Agnostic ใน IT มีความหมายว่าอะไร (ครับ)

พอดีว่าช่วงนี้ได้ยินคำว่า Agnostic บ่อย เลยหาคำแปลแบบ IT มาฝากกัน มันมาจากคำว่า Gnostic ในภาษากรีกแปลว่า ความรู้ (knowledge) แล้วใช้ A นำหน้า โดย A มีความหมายว่า ปราศจาก หรือ ไม่ รวมกันก็คือ ไม่มีความรู้ ผมปรับนิดเรียกว่า ไม่จำเป็นต้องมีความรู้ในเรื่องนั้น เพื่อให้เข้าใจแบบไทยง่ายขึ้น 

ดังนั้น Agnostic เมื่อนำมาใช้ใน IT จึงเป็นอะไรสักอย่างที่ทำงานได้โดยไม่จำเป็นต้องรู้  ตัวอย่างคำว่า hardware agnostic ในกรณีของการสร้าง virtual machine (VM) บน Hyper-V นั้น เครื่อง VM มันไม่จำเป็นต้องรู้หรอกว่า เครื่อง host มี hardware เป็นอย่างไร

อีกตัวอย่างคือ platform agnoatic ถ้ามีไฟล์สักอันหนึ่งเปิดที่ Windows, Mac หรือ Tablet ฟังดูเทพไหม มันคือ Acrobat reader ไง ที่เรามี .pdf ไปเปิดที่ไหนก็ได้ โดยมันไม่สนใจว่า hardware, OS อะไร มี reader อย่างเดียวจบ จบไหม? Smile

สรุปสั้นๆ เจอคำนี้ ไปผูกกับคำว่าอะไรก็ตาม นึกไว้ได้เลยว่า อ๊อ มันทำงานได้โดยไม่ต้องรู้เรื่องนั้นๆ ครับ

Can virtual machine unlock from version of Windows?

For Windows server administrator, we have to keep Windows server to have latest hotfix, service pack and OS version. Windows version changes every 2 years. In the past, the age of Windows is longer. We can tide version with server hardware. It can take a chance to upgrade hardware and Windows in one IT change request.

In Cloud generation, virtual machine is running on virtual hardware. It cannot combine Windows version update with hardware. From functional viewpoint, many type of application does not get benefit of Windows version. Why do need to keep every pieces update?

I hope to see the tiny version of Windows for running application and make it like appliance box. We would see a new application sell bundle with virtual machine. 

This is a dream!!!

Pareto Principle: เคยได้ยินกฏ 80/20 ไหม?

Pareto principle หรือกฏ 80/20 มีความหมายว่า เรื่องราวต่างๆ ที่เกิดขึ้นนั้น 80% มีผลมาจากสิ่งที่กระทำลงไปเพียง 20% ฟังแล้วงงไปใหญ่ ขอยกเป็นตัวอย่าง เช่นการขายสินค้า เทียบว่า 80% ของยอดขาย เกิดจากคำสั่งซื้อของลูกค้าเพียง 20% เป็นต้น แสดงถ้าเราพบลูกค้า 20% ที่ว่านั้นแล้ว ดูแลเขาให้ดี เท่ากับรักษายอดขายไว้ได้ถึง 80%  

ขอประยุกต์เรื่องนี้กับลำดับความสำคัญของงาน (Priority) คือ เมื่อเรามีงานต่างๆ มากมาย เราต้องหา 20% นี้ให้ได้ ซึ่งมันคืองานที่เจ้านายหรือลูกค้าคนสำคัญรออยู่ รีบทำมันให้เสร็จ เพราะเมื่อสำเร็จมันคือ 80% ของเรา

หากสนในเรื่องของ Pareto ลองหาจาก Search Engine พิมพ์คำว่า Pareto Principle

 

Hyper-V Snapshot error: 0x80070522

I try to create snapshot a VM on host running Windows Server 2012 and it results in error saying “A required privilege is not heold by the client. (0x80070522).

 

I am a member of local administrators group and Hyper-V administrator. The .avhd file was created in snapshot folder but it is stopped at the end before putting the snapshot name.

 

The resolution is to logon to VM and restart Windows on guest machine.

The root cause is unclear but  the problem does not happen again after reboot VM.

 

image

Hyper-V Genernation 2 boot VM จาก Network และ SCSI ได้แล้ว

Hyper-V ใน Windows Server 2012 R2 เพิ่ม feature ใหม่ ให้ boot จาก Network และ SCSI ได้ โดยเครื่องต้องเป็น Generation 2  เรื่องของ Virtual Machine บน CPU Intel/AMD มีมานับ 10 ปี แล้ว ในปี 2013 Microsoft ได้ประกาศว่ามี Hyper-V Generation 2 ซึ่งขั้นตอนการสร้าง VM ด้วย New Virtual Machine Wizard จะต้องเลือกว่าเป็น Generation ไหน ตามภาพด้านล่าง

VMGen2

ความแตกต่างและการตัดสินใจเลือก Generation มีเหตุผลเพื่อตัดสินใจดังนี้

Generation 1
  • เกิดมาในช่วยปลายปี คศ 1990 บน harcware x86 การสร้าง virtual machine พยายามทำให้ OS เข้าใจว่าเป็น hardware จริง เพื่อให้ software ทำงานได้
  • Hypervisor ต้องสร้าง emulator ต่างๆ ที่จำลองว่าตัวเองเป็น hardware ที่ย้อนไป support อะไรเยอะแยะไปหมด บางทีถึงขั้นบอกว่าเป็น Network card 10 Mbps, Card ISA หรือเป็น CPU Pentium เป็นต้น ที่เราเรียกว่าเป็น Legacy
  • OS รุ่นเก่ายังไม่รองรับ Virtualization ยังต้องสร้างเป็น Gen 1
Generation 2
  • เครื่อง Virtual Machine ที่ใช้ Hyper-V เริ่มมาตั้งแต่ปี 2008 ได้ใช้เทคโนโลยีทีดีขึ้น เช่น VMBus ต่อ network card ทำให้การเรียกใช้ hardware มีประสิทธิภาพดีขั้น เพราะไม่ต้องเสียเวลาไปทำตัวเป็น emulator
  • Windows รุ่นใหม่ๆ ถูกออกแบบให้รู้จัก virtualization อยู่แล้ว
  • การสร้าง Gen 2 นั้นระบบ Virtual Machine จะไม่มี emulator แล้วก็หันไปใช้ UEFI device มันช่วยให้ Virtual Network สามารถ boot จาก virtual network adaptor หรือ SCSI controller ก็ได้ ไม่ต้องพึ่ง IDE controller ที่เป็น legacy ตัว UEFI มีระบบ secure boot
  • Support guest ที่เป็น Windows 8 64bit, Windows Server 2012 และ version ใหม่ๆ ที่ออกตามมา (version เก่า ใช้ไม่ได้)
  • จำง่ายๆ ว่าสิ่งที่ support ใน Gen 2 คือ

การสร้าง Gen 2 ให้ boot จาก network หรือ SCSI ได้ สำหรับ Hyper-V นับว่าเป็นข่าวดี ที่มาพร้อมกับ Windows Server 2012 เราลองมาทำความเข้าใจกับ UEFI ว่ามันคืออะไร และ Windows ใช้มัน boot เครื่องได้อย่างไร

Unified Extensible Firmware Interface (UEFI)

UEFI คือ การกำหนด software interface ของ OS กับ firmware ที่อยู่บน hardware โดย UEFI จะแทนที่ BIOS  โดย Intel เป็นผู้สร้าง UEFI ขึ้นมา  เริ่มแรกมันเป็น EFI มาก่อนในช่วงปี 1990 ใน Intel-HP Itanium เนื่องจากปัญหาเรื่องข้อจำกัดของ BIOS เช่น การเป็น 16 bit หรือความสามารถเรียกใช้ Memory ที่ 1 Megabyte เป็นต้น ต่อมาก็พัฒนามาเรื่อย ได้เปลี่ยนชื่อเป็น UEFI   ความสามารถของ UEFI ที่เหนือกว่า BIOS ได้แก่ การ Boot, ความเป็นอิสระเรื่อง CPU architecture, CPU Driver เป็นต้น

การ Boot เครื่องด้วย UEFI

ปกติเราจะคุ้นเคยกับการ boot ด้วย harddisk, usb และ CD ใน mainboard รุ่นใหม่ ถ้าเข้าไปดูใน BIOS เรื่อง Boot มันจะมี UEFI ให้เลือกได้ ซึ่งไม่ขอลงรายละเอียดส่วนของ BIOS แต่มันทำให้เราพอเห็นภาพได้ว่า UEFI ใช้ boot เครื่องได้

image

การ Config ให้เครื่อง Computer Boot จาก UEFI

ขอใช้ Youtube video ของ Windows 7 เพื่อทำความเข้าใจการ set BIOS และ Windows ให้ boot ด้วย UEFI

  1. ติดตั้ง Hard disk และมองเห็นผ่าน BIOS ตามปกติ
  2. กำหนด Boot Mode ใน BIOS ให้เครื่อง Boot ด้วย UEFI
  3. ตอน boot เลือก CD Windows เพื่่อลง OS
  4. การลง Windows ให้ลงใน hard disk ตามปกติ
  5. เมื่อ boot เครื่องอีกครั้ง BIOS จะส่งต่อการ boot ให้ UEFI ทำงาน

ลองดูตัวอย่างจาก Video ด้านล่าง เป็น Windows 7 เพื่อให้เข้าใจการใช้งาน UEFI

Booting และ Secure Boot

UEFI ได้กำหนด boot manager ที่ดูแลเรื่องการ boot และ load driver ต่างๆ ใน UEFI version 2.2 มีการใช้ certificate มาช่วย secure เรื่องการ boot

สรุป

Windows Server 2012R2 Hyper-V สร้าง VM Generation 2 บนพื้นฐานว่า Windows รุ่นใหม่รู้จักระบบ Virtualization อยู่แล้ว จึงตัดพวก Lagacy virtual hardware ออกไป การนำ UEFI มาใช้ทำให้เครื่อง Virtual Machine สามารถ boot จาก network และ SCSI ได้ ประโยชน์คือ ความสะดวกในการใช้งาน

Reference

1.Unified Extensible Firmware Interface

2.BIOS Learning 1: History & Intro of UEFI

3. Youtube Video – UEFI Installation of Windows 7

4. Youtube Video – Practical UEFI Secure Boot (Part 1 of 3)

Windows Server 2012 R2 และ System Center 2012 R2 เปิดให้ Download วันที่ 18 ตุลาคม 2556

Brad Anderson, VP ของ Microsoft ได้ประกาศบน blog เมื่อวันที่ 14 สิงหาคม เรื่องแผน Release Windows Desktop และ Server ข่าวนี้สำหรับ Windows Server มันยังไม่ชัดเจนมาก แต่ก็มีประโยชน์ เพราะเราคงไม่ได้ลง version ใหม่ทันที มันจะช่วยเรื่องการวางแผนซื้อ license มากกว่า  สำหรับวันที่มีตามนี้

Date

Activity

18 ตุลาคม 2556
  • Windows 8.1 จะวางขายทั้ง Retail และ Business ทั่วโลก
Windows Server 2012R2 และ System Center 2012 R2 จะมีให้ download ทาง TechNet Evaluation Centerข่าวส่วนนี้ยังไม่ชัดเจนว่าเป็น Evaluation หรือจะมี RTM ให้ลูกค้า Enterprise download ผ่าน VLSC ได้เลย ถ้ามีข่าวจะมา update ให้ทราบ
1 พฤศจิกายน 2556 Windows Server 2012R2 และ System Center 2012 R2
ประกาศราคาใน Price List และออกวางจำหน่าย

Reference:

Windows Server 2012 R2 Available October 18th

Windows 8.1 จะออก RTM เดือนสิงหาคม 2556

Microsoft ได้ประกาศแล้วว่า Windows 8.1 หรือ codename “Blue” จะ RTM ในปลายเดือน สิงหาคม 2556 นี้ ส่วนเครื่องออกใหม่ที่ติดตั้ง 8.1 จะออกประมาณกันยายน-ตุลาคม  ลูกค้าที่ใช้ Windows 8 และ Windows RT จะได้ upgrade ฟรี โดยมีการเล่าว่า 8.1 มี Bug เยอะแต่ก็คงออกมาตามนี้ และปล่อย fix ตามมาอีกทีครับ

 

Reference

1. http://www.zdnet.com/microsoft-confirms-windows-8-1-to-rtm-by-august-7000017769/