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 ของเรามีแน้วโน้มปกติดี ไม่มีปัญหาอะไรครับ

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

2. ตรวจสอบ DFSR SYSVOL replication status ด้วย Propagation test/report ใน DFS Management snap-in

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

sysvol1
ใช้ DFS Management snap-in สร้าง diagnostic report
sysvol2
ทำ Propagation test ก่อน
sysvol3
generate Propagation report มาดูผลของ Propagation test
sysvol
TESTS INCOMPLETE และ TESTS WITH ERROR ต้องเท่ากับ 0

หมายเหตุ: หาก SYSVOL ยังไม่ได้ upgrade มาเป็น DFSR SYSVOL แสดงว่าเรายังใช้ FRS SYSVOL อยู่

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

sonar
FRS SYSVOL ใช้ SONAR

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

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

3. ตรวจสอบว่า DNS record ของ DC ถูก register ลงบน DNS server อย่างครบถ้วนด้วย dcdiag /test:dns /dnsrecordregistration /e

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

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

4. ตรวจสอบสุขภาพโดยรวมของ DC ทุกเครื่องด้วย dcdiag /e

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

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

5. ตรวจสอบว่า DC ที่ถือ FSMO roles ทำงานปกติ

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

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

6. ตรวจสอบว่าเวลาบน DC ทุกเครื่องเท่ากันด้วย w32tm /monitor /domain:domainname

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

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

7. ตรวจสอบ CPU, RAM, disk, และ network 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
cpu
ตัวอย่างผลลัพธ์ processor utilization ทั้ง 4 เครื่องอยู่ที่ประมาณ 0% (แทบไม่ได้ใช้งาน)

8. [Monthly] ตรวจสอบว่า AD ถูก backup ด้วย repadmin /showbackup

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

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

9. [Monthly] ตรวจหา security updates ที่ขาด (ช่องโหว่ที่มี)

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

10. [Monthly] ตรวจสอบว่า antivirus exclusion ถูก configure ไว้เรียบร้อยแล้ว

ตรวจสอบรายชื่อ files & folders ที่ต้อง exclude เพื่อไม่ให้ antivirus เข้าไป scan ได้ที่ “configure files & folders exclusion ตาม 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

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s