Cách thiết lập giám sát máy chủ đơn giản thông qua PowerShell
Khả năng hiển thị cơ sở hạ tầng của bạn là vô cùng cần thiết, cả khi tối ưu hóa hiệu suất và ngăn chặn các vấn đề phát sinh. Giám sát theo thời gian thực và thậm chí định kỳ là những biện pháp hiệu quả. Đương nhiên, có rất nhiều cách để làm điều đó. Ngoài ra còn có vô số công cụ.
Trong khi cái chết do lựa chọn có vẻ như là vấn đề ban đầu, thách thức thực sự là khả năng tùy biến. Mỗi đội có sở thích khác nhau. Kiến trúc và cấu hình máy chủ khác nhau rất nhiều. Thật không may, đối với một số trường hợp sử dụng, ngay cả những công cụ tốt nhất cũng phải đưa ra các giả định — tốt hơn hay xấu hơn. Những cách tiếp cận cứng nhắc như vậy thực sự có thể góp phần làm tăng thời gian ngừng hoạt động, làm suy yếu hiệu suất và giảm tính bảo mật.
Các công ty chạy máy chủ chạy trên Windows có sẵn một lựa chọn tuyệt vời: PowerShell. Ngôn ngữ kịch bản mạnh mẽ có tính linh hoạt cao. Vì PowerShell dựa vào mã hóa thân thiện với con người nên việc bắt đầu tương đối dễ dàng. Phần tốt nhất của việc viết mã của riêng bạn là gì? Bạn có thể thiết kế các giải pháp xung quanh bất kỳ thông số nào bạn chọn. Điều đó không có nghĩa là kịch bản PowerShell không có đường cong học tập. Tuy nhiên, tiềm năng tiết kiệm chi phí đáng kể là rất cao. Bạn cũng sẽ không bị bắt làm con tin bởi sự sẵn có hỗ trợ của bên thứ ba, nếu có vấn đề phát sinh (như mọi khi).
Việc thiết lập giám sát phụ thuộc vào việc biết các ưu tiên của một người - và các cơ chế cơ bản đằng sau việc giám sát. Đầu tiên chúng ta sẽ đi sâu vào những vấn đề đó.
Giám sát và những điều cần thiết về PowerShell
Đầu tiên và quan trọng nhất, bạn cần phải tìm ra những gì bạn muốn theo dõi trước khi bắt đầu. Nhiều công ty đã đặt xe trước ngựa; các giải pháp giám sát kết quả đã trở thành tiêu chuẩn phụ. Nhiều yếu tố có thể đang tranh giành sự chú ý của bạn:
- Hiệu suất
- Sử dụng quy trình
- Sử dụng bộ nhớ và CPU
- Hoạt động của mạng và người dùng
- Thời gian phản hồi của máy chủ
- Sử dụng lốp
- Băng thông và thông lượng
Danh sách này không đầy đủ nhưng sẽ là điểm khởi đầu hợp lý. Đạt được sự đồng thuận về các lĩnh vực trọng tâm là điều cần thiết — ngay cả khi tạo các màn hình đơn giản. Tuy nhiên, giả sử chúng ta muốn thoát khỏi những số liệu nặng nề. Dữ liệu đo từ xa rất hữu ích nhưng nó có thể quá chi tiết cho mục đích của bạn.
Giữ mọi thứ đơn giản
Ví dụ: chúng tôi biết một máy chủ ở mức cơ bản nhất có thể đang hoạt động hoặc không hoạt động. Thực hiện kiểm tra trạng thái đó là điều cơ bản để duy trì hệ sinh thái của bạn. Vì yêu cầu máy chủ được thực hiện qua internet nên sẽ có phản hồi HTTP từ một số nguồn nhất định. Việc điều tra có thể cần thiết nếu một cổng ngoại tuyến.
Bạn cũng phải tạo ra một chuỗi leo thang cơ bản: vấn đề nào, ở mức độ nghiêm trọng nào sẽ thu hút sự chú ý của ai? Các tập lệnh PowerShell kích hoạt một hành động được xác định trước, dẫn đến kết quả mong muốn. Điều này thường được gọi là trạng thái. Nếu phát hiện thấy trạng thái xấu—chẳng hạn như phản hồi không chính xác—phải thông báo cho ai đó.
Đây có thể là ai đó ở bên CNTT, bên DevOps hoặc thậm chí là cấp cao hơn về kỹ thuật. Một người có thể đủ để giảm thiểu vấn đề. Nhiều nhân viên có thể phải dập tắt đám cháy. Cảnh báo kịp thời qua PowerShell có thể giúp giải quyết trục trặc nhanh hơn.
Viết màn hình PowerShell của bạn
Màn hình của bạn sẽ được chứa trong tập lệnh PowerShell—một tệp bao gồm nhiều chức năng được viết. Bạn sẽ xác định hành động, trạng thái tốt, trạng thái xấu và kết quả đầu ra trong các hàm đã nói.
Bạn cũng sẽ bao gồm tần suất kích hoạt mong muốn của mình. Các tập lệnh PowerShell chỉ chạy một lần theo mặc định. Chúng tôi khắc phục trở ngại nhỏ này bằng cách tạo một tác vụ có thể gọi tập lệnh bất cứ khi nào người dùng muốn. Điều này có thể thực hiện được thông qua chức năng lặp của PowerShell. Cú pháp có tổ chức, dựa trên biến của ngôn ngữ mang lại cho chúng ta sự linh hoạt để định nghĩa một cách tự do.
Mọi tệp tập lệnh bạn tạo cho PowerShell sẽ được lưu với phần mở rộng tệp mã nguồn. Điều này có thể xuất hiện như
C:\ServerMonitors.pslKhu nhà
Tiếp theo, bạn sẽ muốn biết cách diễn đạt của mình. Dịch vụ quản lý có thể đưa một loạt chức năng vào phương trình. Tuy nhiên, chúng tôi sẽ muốn tập trung vào một số lệnh ghép ngắn chính:
- Lấy
- Bài kiểm tra
Mỗi lệnh ghép ngắn cũng bao gồm một công cụ sửa đổi, cung cấp ngữ cảnh cho yêu cầu. Điều này được kết nối với lệnh ghép ngắn bằng dấu gạch ngang, ví dụ: Nhận dịch vụ -Tên máy tính. Nếu bạn muốn kiểm tra chức năng của máy chủ, bạn có thể chọn mã hóa thứ gì đó như Test-HTTP. Các lệnh ghép ngắn này được đặt trước bởi ký hiệu hàm, do đó dòng đầu tiên có thể trông như thế này:
function Test-HTTP {
Các hàm cũng bao gồm tham số. Nếu bạn không xác định tham số cho máy chủ của mình thì tập lệnh PowerShell sẽ không phân biệt được giữa các đầu ra khác nhau. Các hàm chung này sẽ trả về kết quả chung. Việc xác định chính xác các tham số (như tên máy tính, phản hồi tốt hoặc phản hồi xấu) sẽ đảm bảo kết quả giám sát của bạn mang lại thông tin theo ngữ cảnh.
Nếu bạn muốn xác định phản hồi tích cực, chẳng hạn như mã trạng thái HTTP, bạn sẽ phải biểu thị mã này dưới dạng số nguyên ([int]). Các mã như vậy có thể là 200 (thành công, phản hồi OK), 202 (được chấp nhận nhưng đang chờ) hoặc bất kỳ mã nào khác liên quan đến chức năng máy chủ. Vì cuối cùng các máy chủ đều phản hồi các yêu cầu API nên việc thiết kế chức năng giám sát để xác nhận các phản hồi lành mạnh sẽ rất hữu ích. Bạn cũng cần bao gồm các chuỗi ([string]) để biểu thị các đối tượng hoặc loại dữ liệu giám sát chính.
Chức năng kiểm tra phản hồi HTTP cơ bản trông như thế nào. Được phép của Adam Máy tự động.
Bạn cũng sẽ muốn xác thực và đưa các câu lệnh điều kiện vào các hàm PowerShell của mình. Điều này sẽ hướng dẫn máy chủ của bạn tạo ra một số kết quả đầu ra nhất định—nếu trạng thái là true hoặc false. PowerShell sẽ làm theo các hướng dẫn này một cách phù hợp và trả lại kết quả có giá trị cho bạn hoặc nhóm của bạn.
Bắt đầu giám sát PowerShell của bạn
Xây dựng chức năng giám sát của bạn là bước một. Tuy nhiên, bạn cũng sẽ phải viết cơ chế kích hoạt các tập lệnh giám sát này. Tập lệnh “gọi” kích hoạt các chức năng được tạo sẵn có liên quan của bạn, đồng thời xác định bất kỳ nhiệm vụ bổ sung nào được chốt để hoàn thành. Sơ đồ đặt tên này tuân theo sơ đồ giám sát trước đây của chúng tôi:
C:\CallServerMonitors.pslCấu trúc là vô cùng quan trọng ở đây. Bạn sẽ sắp xếp các màn hình khác nhau của mình thành các bảng băm, hoạt động như các cấu trúc dữ liệu nhỏ gọn, có tổ chức. Chúng chứa các cặp khóa và giá trị. Bạn có thể xác định tên máy chủ và tên màn hình của mình. Tập lệnh gọi này cũng có thể kích hoạt cảnh báo dựa trên kết quả phụ trợ. Bằng cách này, bạn cũng có thể áp dụng các quy tắc cụ thể như mong muốn.
Tần suất và cân nhắc cuối cùng
Các tác vụ bên ngoài của bạn sẽ kích hoạt các tập lệnh cốt lõi này thường xuyên như bạn muốn. Mặc dù việc giám sát một số thông số máy chủ thường xuyên hơn rất hữu ích nhưng những thông số khác lại ít quan trọng hơn. Microsoft coi các tập lệnh giám sát này là thành ngữ, vì chúng phụ thuộc nhiều vào lệnh ghép ngắn và chức năng.
Chạy đồng thời số lượng lớn tập lệnh giám sát PowerShell có thể phải chịu chi phí tài nguyên; vì họ không tận dụng trực tiếp .NET nên họ sử dụng quy trình. Tốt nhất nên sắp xếp xen kẽ các tập lệnh CẦN chạy thường xuyên và những tập lệnh không quan trọng. Rất may, tính chất nhẹ nhàng vốn có của các chức năng của bạn sẽ giúp giảm thiểu những lo ngại đó.
Những ví dụ này không đầy đủ. Có nhiều cách giám sát khác—bạn có thể tin cậy vào PowerShell để hỗ trợ bạn khi nói đến khả năng hiển thị của máy chủ.
PRTG và ScriptRunner - Giám sát và tự động hóa tốt nhất
Tìm hiểu cách PRTG Network Monitor và ScriptRunner phối hợp chặt chẽ với nhau để đáp ứng mọi nhu cầu giám sát cơ sở hạ tầng CNTT của bạn!
Xem hội thảo trực tuyến miễn phí >


