INC

Windows Server

10 ขั้นตอนตรวจสอบสุขภาพ Active Directory Domain Services (AD DS) ด้วยตัวเอง

Active Directory Domain Services (AD DS) เปรียบเสมือน backbone ของ application แทบทุกชนิดในองค์กร หากทำงานบกพร่องอาจนำมาซึ่งปัญหาที่ร้ายแรงเกินการควบคุม วันนี้เรามาดู 10 ขั้นตอนง่ายๆ แบบ mini health check ควรทำอย่างน้อยสัปดาห์ละครั้ง เพื่อตรวจสอบสุขภาพของ AD DS กันครับ

1. Active Directory replication status

รัน repadmin /replsummary

เกือบจะ 100% ของ AD replication เป็นการ pull หรือดูดข้อมูลที่มีการเปลี่ยนแปลงจาก Source DSA (DC) เป็นหลัก หาก fails column ของ DC ทุกเครื่องภายใต้ Destination DSA (DC) มีค่าเท่ากับ 0 แสดงว่าไม่มี error จากการ pull บ่งบอกว่า AD replication ของเรามีแน้วโน้มปกติดี ไม่มีปัญหาอะไรครับ

 fails column ภายใต้ Destination DSA ต้องเท่ากับ 0 ทั้งหมด

fails column ภายใต้ Destination DSA ต้องเท่ากับ 0 ทั้งหมด

2. SYSVOL replication status

ใช้ DFS Management tool

หากผลลัพธ์ TESTS INCOMPLETE และ TESTS WITH ERROR มีค่าเท่ากับ 0 ทั้งคู่แสดงว่า SYSVOL replication มีแน้วโน้มปกติดี ไม่มีปัญหาอะไรครับ

 ใช้ DFS Management snap-in สร้าง diagnostic report

ใช้ DFS Management snap-in สร้าง diagnostic report

 ทำ Propagation test ก่อน

ทำ Propagation test ก่อน

 generate Propagation report มาดูผลของ Propagation test

generate Propagation report มาดูผลของ Propagation test

 TESTS INCOMPLETE และ TESTS WITH ERROR ต้องเท่ากับ 0

TESTS INCOMPLETE และ TESTS WITH ERROR ต้องเท่ากับ 0

หมายเหตุ: หาก SYSVOL ยังไม่ได้ upgrade มาเป็น DFSR SYSVOL แสดงว่าเรายังใช้ FRS SYSVOL อยู่
ในกรณีนี้ให้ใช้ SONAR ตรวจสอบ FRS SYSVOL replication ซึ่ง DC ทุกเครื่องควรจะมีค่า FRSState=ACTIVE, SCMState=Running, และ SYSVOLS=Ok

 FRS SYSVOL ใช้ SONAR

FRS SYSVOL ใช้ SONAR

Q. แล้วเราใช้ FRS หรือ DFSR อยู่?… หาก DC objects ทั้งมดอยู่ภายใต้ CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=,DC= แสดงว่าเราใช้ DFSR SYSVOL แล้วครับ

 ในตัวอย่างนี้คือ DFSR SYSVOL

ในตัวอย่างนี้คือ DFSR SYSVOL

3. การ register DNS records ของ DC

รัน dcdiag /test:dns /test:dnsrecordregistration หรือเติม /e ต่อท้ายเพื่อตรวจสอบ DC พร้อมๆ กันทุกเครื่อง

Clients และ applications ค้นหาบริการต่างๆ ของ AD DS ผ่าน DNS records ของ DC ดังนั้นหากผลลัพธ์เป็น passed test DNS แสดงว่า DNS records ของ DC ทุกเครื่องถูก register ลงบน DNS server ครบถ้วน ไม่ตกหล่นครับ

 ผลลัพธ์ควรเป็น passed test DNS

ผลลัพธ์ควรเป็น passed test DNS

4. DC health

รัน dcdiag หรือเติม /e ต่อท้ายเพื่อตรวจสอบ DC พร้อมๆ กันทุกเครื่อง หรือเติม /q ต่อท้ายเพื่อให้แสดงผลเฉพาะส่วนที่ error

ผลลัพธ์ที่ออกมาควรจะ passed test แทบทั้งหมด หากพบ failed test ของ FrsEvent, DFSREvent, KccEvent, หรือ SystemLog ก็พอจะอนุโลมได้ถ้า AD และ SYSVOL replication รวมถึงการทำงานทั่วไปเช่น authentication หรือ LDAP query ยังปกติดีอยู่ครับ

 ผลลัพธ์ควรจะเป็น passed test ทั้งหมด (failed test ในบางหัวข้ออนุโลมได้)

ผลลัพธ์ควรจะเป็น passed test ทั้งหมด (failed test ในบางหัวข้ออนุโลมได้)

5. FSMO role holders

รัน netdom query fsmo เพื่อหาว่า DC เครื่องใดเป็น FSMO role holders แล้วย้อนไปดูผลลัพธ์ dcdiag จากข้อ 4 ครับ

 DC1 คือ DC เครื่องแรกที่ติดตั้งจึงถือ 5 roles โดย default

DC1 คือ DC เครื่องแรกที่ติดตั้งจึงถือ 5 roles โดย default

6. Time synchronization

รัน w32tm /monitor /domain:domainname.com

เวลาของ DC ทุกเครื่องควรจะเท่ากัน หากแตกต่างกันอาจทำให้ clients และ server applications ได้รับเวลาแตกต่างกันตามไปด้วย เวลาที่ต่างกันเกินกว่า 5 นาที มีผลทำให้ Kerberos Authentication fail ในที่สุดครับ

 เวลาของ DC แต่ละเครื่องต่างจาก DC1 ซึ่งเป็น PDCE ไม่เกิน 1 วินาที

เวลาของ DC แต่ละเครื่องต่างจาก DC1 ซึ่งเป็น PDCE ไม่เกิน 1 วินาที

7. Performance

Processor utilization ไม่ควรเกิน 80%, available memory ไม่ควรเหลือต่ำกว่า 100 MB (ถ้าเหลือมากกว่า 100 MB แต่น้อยกว่า 10% ของ RAM ควรตรวจสอบเบื้องต้นว่าผิดปกติหรือไม่?), network utilization ไม่ควรเกิน 70%, และ disk latency ไม่ควรเกิน 25 ms

การวัด performance เพื่อวิเคราะห์ปัญหา ณ เวลาใดเวลาหนึ่งควรใช้ sample interval สั้นๆ หากไม่พบ samples ที่เกิน threshold ติดต่อกันนานเกินกว่า 60 วินาที แสดงว่าไม่มีปัญหาอะไรครับ (ในตัวอย่าง เราวัดทั้ง 4 resources ทุกๆ 10 วินาที เป็นเวลา 5 นาทีติดต่อกัน)

Get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 10 -MaxSamples 30 -ComputerName dc1,dc2,dc3,dc4

Get-counter -Counter "\Memory\Available MBytes" -SampleInterval 10 -MaxSamples 30 -ComputerName dc1,dc2,dc3,dc4

Get-counter -Counter "\Network Interface(*)\Bytes Total/sec" -SampleInterval 10 -MaxSamples 30 -ComputerName dc1,dc2,dc3,dc4

สำหรับ LogicalDisk ให้ระบุ drive ที่เก็บ NTDS.DIT, log files, และ SYSVOL (โดย default คือ C drive)

Get-counter -Counter "\LogicalDisk(c:)\avg. disk sec/read","\LogicalDisk(c:)\avg. disk sec/write" -SampleInterval 10 -MaxSamples 30 -ComputerName dc1,dc2,dc3,dc4

 ตัวอย่างผลลัพธ์ processor utilization ทั้ง 4 เครื่องอยู่ที่ประมาณ 0% (แทบไม่ได้ใช้งาน)

ตัวอย่างผลลัพธ์ processor utilization ทั้ง 4 เครื่องอยู่ที่ประมาณ 0% (แทบไม่ได้ใช้งาน)

8. Backup

ตรวจสอบวันเวลาล่าสุดที่เรา backup AD DS ด้วย repadmin /showbackup เราควรทำ full server backup (รวม System State) อย่างน้อย 2 DCs ในแต่ละ domain สัปดาห์ละครั้ง หรืออย่างน้อยเดือนละครั้ง

 ควร backup AD DS อย่างน้อยเดือนละครั้ง (ผลลัพธ์ตัวอย่าง backup ล่าสุด 24 ส.ค. 2016)

ควร backup AD DS อย่างน้อยเดือนละครั้ง (ผลลัพธ์ตัวอย่าง backup ล่าสุด 24 ส.ค. 2016)

9. [Monthly] Vulnerabilities

ตรวจสอบ WSUS/SCCM report หรือรัน MBSA เพื่อหา critical และ important security updates ที่ขาดบน DC ทุกเครื่อง หากติดตั้ง security updates ที่ require restart ควรจะ restart เครื่องเพื่อให้มีผลทันที

10. [Monthly] antivirus exclusion

ตรวจสอบรายชื่อ files & folders ที่ต้อง exclude เพื่อไม่ให้ antivirus เข้าไป scan ได้จากหัวข้อ "Running antivirus software on domain controllers" ตาม Virus scanning recommendations for Enterprise computers that are running currently supported versions of Windows ครับ

..........
AD DS คือ core service ของ applications แทบทั้งหมดในองค์กร มีเสถียรภาพสูง และมี redundancy ในตัว หมั่นตรวจ check อย่างน้อยสัปดาห์ละครั้ง อย่าปล่อยให้ AD DS มีปัญหาโดยที่เราไม่ทราบนะครับ…

By INC

INCComment