Breaking News
Loading...
16/05/2014

Tập trung event log về 1 chỗ và tạo Alert trong SQL Server

SQL Server cung cấp cho chúng ta một feature mạnh mẽ cho biết nó đang làm những gì, nhưng các DBA thường bỏ lỡ chúng, đó là Event Log, chúng cung cấp các thông tin hữu ích để quản trị database, nhưng chúng ta phải biết cách khai thác chúng, nhiều phần mềm thương mại hỗ trợ các DBA cho phép xem các thông tin này dễ dàng và dễ hiểu, nhưng chúng rất đắt tiền và không phải các DBA nào cũng có điều kiện sử dụng chúng.

Trong thủ thuật này tác giả hướng dẫn tập trung Event Log của SQL Server từ nhiều Server về 1 chỗ, cụ  thể là 1 database trong một Server dùng để quản trị, và các Event Log ta quan tâm là Application log, và Event Type là 1 và 2, tức là các Error và Warning.

Cái hay của thủ thuật này là sau đó ta tạo Alert chung theo các thông tin ta quan tâm bằng cách setup một trigger, thay vì set up từng Alert cho từng SQL Agent Job trong từng Server mất nhiều thời gian hơn, tưởng tượng.bạn có khoảng 10 hay hàng chục SQL Server Instance cần phải quản lý

Cách tác giả set up thủ thuật này như sau:

  1. Trên mỗi Server ta cần monitor, làm các bước sau
  2. Tạo một database, đặt tên là DBA
  3. Tạo một table tên là EventLogStaging, đây là nơi lưu trữ Event Log cho nhiều SQL Server Instance
  4. Tạo 1 vbscript như link ở dưới, và đặt ở 1 thư mục nào đó, thực thi chúng
  5. Tạo 1 SQL Agent Job cho nó thực thi file VBScript ở trên, cho nó chạy mỗi phút 1 lần và cấu hình cho nó di chuyển Event Log từ table EventLogStaging tới 1 server tập trung nào đó.
Chúng ta có thể dùng thủ thuật này để nhận các Alert cho nhiều sự kiện lỗi được lưu trong Event Log như:
  1. Failed login
  2. Failed SQL Server Agent Job
  3. Long Running SQL Server Agent jobs
  4. Down SQL Agent
  5. Low disk space warning...
  6. Tại sao SQL Server bị khởi động lại
Một vài lưu ý khác

  1. Lượng bộ nhớ tiêu thụ khi chạy VBScript luôn ít hơn 5 MB
  2. Thủ thuật này chỉ nên áp dụng nếu DBA có quá nhiều SQL Server instance cần quản lý, vì khi gửi tất cả Event Log từ nhiều Server về một Server, sẽ tốn băng thông mạng, nếu Server lưu trữ các Event Log bị down, ta sẽ không có các thông tin kịp thời để quản trị hệ thống.


Cách tập trung Event Log về 1 chỗ
http://www.sqlservercentral.com/articles/Monitoring/71390/
Cách setup Alert cho Event Log ở trên
http://www.sqlservercentral.com/articles/Monitoring/89715/

0 comments:

Post a Comment

 
Toggle Footer