Friday, November 7, 2014

Cài đặt hệ thống tự động gửi SMS cảnh báo khi website bị down

Có nhiều dịch vụ giúp giám sát tình trạng hoạt động của website nhưng hầu hết những dịch vụ này đều có thu phí. Dựa trên thuật toán thông minh của Google Docs và khả năng nhắn tin SMS của Google Calendar. Bạn có thể thiết lập việc gửi tin nhắn SMS cảnh báo một cách miễn phí phòng khi trang web của bạn bị sập.

Cách làm này là cứ mỗi 5 phút, hệ thống sẽ cố gắng để kết nối với một hoặc nhiều trang web bạn chỉ định. Nếu không thể kết nối, bạn sẽ nhận được một thông báo bằng email và tin nhắn văn bản đến điện thoại để bạn có thể giải quyết vấn đề ngay lập tức. Đây là cách giám sát miễn phí và đơn giản nhất dựa trên dịch vụ của Google.
● Liên kết Số điện thoại của bạn với Google Calendar

Trước tiên, bạn đăng nhập tài khoản Google rồi sau đó mở Google Calendar. Trong trang dịch vụ hiện ra, bạn bấm chọn nút hình bánh răng (thường nằm ở góc trên, bên phải) và chọn Settings (Cài đặt). Trong trang cài đặt xuất hiện, bạn chọn mục Mobile Setup (Cài đặt điện thoại di động).



Cài đặt hệ thống tự động gửi SMS cảnh báo khi website bị sập

Trong trang này, bạn lần lượt chọn quốc gia (Việt Nam), nhập số điện thoại di động của bạn (để hệ thống sẽ gửi SMS đến số điện thoại đó khi website bị sập). Tiếp theo, bạn bấm nút Send Verification Code (Gửi mã xác minh), nhận được mã xác minh qua điện thoại di động và nhập vào mục Verification Code (Mã xác minh) rồi bấm nút Finish setup (Hoàn thành cài đặt). Lưu ý: việc gửi mã xác minh có thể phụ thuộc vào nhà mạng điện thoại bạn sử dụng (Viettel, Vinaphone…); nếu số điện thoại bạn nhập không được chấp nhận, bạn hãy thử nhập số điện thoại của một nhà mạng khác mà bạn có.

Sau khi cung cấp thành công thông tin số điện thoại, bạn đã có thể sử dụng tính năng nhắc nhở trong Google Calendar để nhận được SMS nhắc nhở cho các sự kiện theo lịch.
● Cài đặt giám sát website

Đầu tiên, bạn truy cập vào đây và chọn chấp nhận để tạo ra một bản sao của tài liệu bảng tính Website Monitor vào tài khoản Google Docs của bạn. (Mã nguồn của trang này có thể xem tại đây).

Tiếp theo, bạn nhấn menu Monitor Website trên thanh công cụ Google Docs (bên phải các menu khác) và chọn Initialize. Bạn có thể sẽ nhận được một thông báo nhắc nhở về việc tài liệu sẽ truy cập vào các dữ liệu khác của bạn, nhấn OK và chấp nhận để tiếp tục.



Cài đặt hệ thống tự động gửi SMS cảnh báo khi website bị sập

Khi bạn chấp nhận xong, một đoạn script sẽ được khởi tạo. Bạn quay lại bảng tính lúc nãy, nhập vào địa chỉ trang web bạn muốn giám sát vào hộp Website URL và nhập địa chỉ email của bạn vào ô được chỉ thị Email Address. Bạn có thể nhập nhiều địa chỉ website bằng cách đặt một dấu phẩy và dấu cách ở giữa các địa chỉ.



Cài đặt hệ thống tự động gửi SMS cảnh báo khi website bị sập

Khi bạn đã thiết lập xong, bạn bấm vào menu Monitor Website lúc nãy và chọn Start Monitoring.



Cài đặt hệ thống tự động gửi SMS cảnh báo khi website bị sập

Sau đó, Google Apps sẽ chạy script giám sát website bạn chỉ định một cách liên tục, ngay cả khi bạn không còn mở bảng tính đó nữa. Script sẽ giúp kiểm tra trang web của bạn mỗi 5 phút. Nếu website chỉ định bị sập, hệ thống sẽ một gửi email và một tin nhắn văn bản cho bạn (bằng cách tạo ra một sự kiện vào lịch với cùng với lời nhắc nhở trên Google Calendar).

vmstat

Vmstat là một tool tập hợp và report data về tài nguyên sử dụng memory, swap, và processor trong thời gian thực. Vmstat có thể được sử dụng để xác định các về đề về hiệu năng liên quan đến memory sử dụng.

1. Cú pháp lệnh
Sử dụng: vmstat -h

[root@mail ~]# vmstat -h
usage: vmstat [-V] [-n] [delay [count]]
-V prints version.
-n causes the headers not to be reprinted regularly.
-a print inactive/active page stats.
-d prints disk statistics
-D prints disk table
-p prints disk partition statistics
-s prints vm table
-m prints slabinfo
-t add timestamp to output
-S unit size
delay is the delay between updates in seconds.
unit size k:1000 K:1024 m:1000000 M:1048576 (default is K)
count is the number of updates.

Ví dụ:

[root@mail ~]# vmstat 1 100
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 139040 110084 165852 307224 0 0 1 6 4 5 0 0 100 0 0
0 0 139040 110084 165852 307224 0 0 0 20 63 82 0 0 100 0 0
0 0 139040 110084 165852 307224 0 0 0 0 40 75 0 0 100 0 0
0 0 139040 110084 165852 307224 0 0 0 0 38 72 0 0 100 0 0
0 0 139040 110084 165852 307224 0 0 0 0 39 77 0 0 100 0 0
0 0 139040 110084 165852 307224 0 0 0 0 37 72 0 0 100 0 0
0 0 139040 110084 165852 307224 0 0 0 0 42 79 0 0 100 0 0
0 0 139040 110084 165852 307224 0 0 0 0 41 81 0 0 100 0
Theo ví dụ trên, chúng ta lấy report 1s/ lần, và số lần lấy report là 100 lần. (Mỗi dòng là 1 lần)

Mặc định, vmstat hiển thị thống kê memory theo kilobytes, để hiển thị theo megabyte ta thêm ‘-S m’


2. Phân tích output

Vmstat mô tả trạng thái hiện tại của một hệ thống Linux. Thông tin về trạng thái hoạt động của một hệ thống rất hữu ích khi xử lý các vấn đề liên quan đến hiệu năng.

Output của lệnh vmstat được hiển thị trong một số trường: Dòng đầu tiên của output là trung bình các thông số khi hệ thống được restart. Chúng ta có thể bỏ qua dòng này vì nó ko hiển thị trạng thái hiên tại của hê thống.

a. Procs

Dữ liệu procs báo cáo số processing jobs chờ để run và cho phép bạn xác định xem có các process làm cho hệ thống của bạn bị chậm lại hay ko?

+Cột r hiển thị tổng số processing jobs chờ để truy cập vào processor. Nếu quan sát nhiều lần và thấy giá trị này vào khoảng = 2 lần CPU => có hiện tượng thắt cổ chai

+Cột b hiển thị tổng số processes trong trạng thái ‘sleep’

Nếu các giá trị của các cột r và b thường xuyên cao (=2*CPU), điều đó có nghĩa hệ thống không có đủ cpu hoặc memory hoặc i/o bandwidth.

b. Memory

Thông tin được hiển thị trong phần memory cung cấp dữ liệu về memory sử dụng như lệnh: free –m

+Cột swapd hay swapped báo cáo có bao nhiêu memory được trao đổi sang swap file hoặc swap partition.

+Cột free báo cáo số memory không được cấp phát.

Nếu bạn thấy giá trị trong cột free thường xuyên = 0, thât tồi tệ, bạn đã hết RAM rồi đó.

+Cột buff or buffers báo cáo số lượng memory được cấp phép sử dụng. Buff là phần memory được sử dụng giống như ” Virtual Disk”, nếu kernel đọc dữ liệu từ ổ cứng, nó sẽ thử giữ lại trong memory để đọc lại khi cần.

+Cột cache báo cáo số lượng memory được cấp phép mà có thể được swap tới disk hoặc không được cấp phép nếu tài nguyên được cần cho một task khác.

Nếu giá trị swapd là quá cao và tiếp tục thay đổi, có nghĩa là hệ thống đang chạy với bộ nhớ kém.

c. Swap

Swap báo cáo tỷ lệ mà memory đã gửi hoặc đã lấy từ hệ thống swap. vmstat cho phép bạn xác định có bao nhiêu disk hoạt động ddwwocj liên quan tới hệ thống swap.

+Cột si báo cáo số memory mà được chuyển từ swap tới memory thực trên giây.

+Cột so báo cáo số memory được chuyển tới swap từ memory thực trên giây.

Nếu bạn thấy các giá trị trong cột si và so thay đổi liên tục, nghĩa là hệ thống của bạn liên tục phân trang bộ nhớ vào ổ cứng => điều đó có nghĩa là bạn ko có đủ RAM hoặc bạn cần ít chương trình chạy vào thời điểm đó hơn.

Bạn có thể tìm chính xác chương trình nào đang ăn RAM nhiều bằng lệnh: ps -eo pmem,pcpu,args | sort -k 1 -r | less

d. I/O

Io báo cáo số lượng input và output hoạt động trên giây trong các hệ số của các block được đọc và được ghi

+Cột bi báo cáo số block được nhận (block in) từ một đĩa / giây

+Cột bo báo cáo số block được gửi (block out) tới một đĩa / giây

Nếu chúng ta nhìn thấy một vài số lớn trong cột b của proc và i/o cao, vấn đề nằm ở i/o

e. System

System báo cáo số lượng các toán tử hệ thống / giây

+Cột in báo cáo số hệ thống ngắt trên / giây, bao gồm các ngắt từ hệ thống đồng hộ.

+Cột cs báo cáo số lượng các thiết bị chuyển mạch ngữ cảnh mà hệ thống làm theo thứ tự để xử lý tất cả nhiệm vụ.

f. CPU

CPU section báo cáo sử dụng tài nguyên CPU của hệ thống. Hiển thị theo phần trăm.

+Cột us báo cáo số lượng thời gian mà processor cần trên các nhiệm vụ không thuộc kernel.

+Cột sy báo cáo lương thời gian mà processor tiêu tốn trên các nhiệm vụ liên quan đến kernel.

+Cột id báo cáo lương time mà processor dành trên idle. (Thời gian máy tính ko làm gì)

+Cột wa báo cáo lương time mà processor dành cho các hoạt động IO để hoàn thành trước khi tiếp tục xử lý các nhiệm vụ khác.

Nếu trong khi chạy vmstat, bạn thấy giá trị idle gần bằng 0, bạn có thể có vấn đề (CPU không rỗi), thông thường nó có nghĩa là chương trình ăn quá nhiều RAM và CPU phải phân trang từ memory tới swap và phân trang ngược lại