Công cụ giám sát cho phép người dùng xem trạng thái của máy tại một thời điểm cụ thể. Trạng thái có thể bao gồm nhưng không giới hạn ở mức sử dụng CPU, độ trễ mạng, mức sử dụng bộ nhớ và mức sử dụng ổ đĩa
Lấy số liệu thống kê
Để làm được điều này, chúng ta có thể sử dụng một thư viện để lấy thông tin từ máy. psutil [tiện ích hệ thống và quy trình], một thư viện để truy xuất thông tin về các quy trình đang chạy và sử dụng hệ thống [CPU, bộ nhớ, đĩa, mạng] trong python có thể là một thư viện hoàn hảo cho việc này. Tuy nhiên, vì chúng tôi muốn xây dựng tác nhân từ đầu, chúng tôi sẽ tạo thư viện của riêng mình để đạt được điều này
Tải CPU và hệ thống
Đầu tiên, chúng tôi sẽ kiểm tra số lượng CPU vật lý và logic, sau đó kiểm tra Tải hệ thống. Đối với điều này, chúng tôi sẽ sử dụng mô-đun python os, vì nó cung cấp các phương thức để truy cập cả số lượng CPU và tải hệ thống như hình bên dưới
Sử dụng bộ nhớ [RAM]
Đối với việc sử dụng bộ nhớ, chúng tôi sẽ bắt đầu bằng cách hiển thị tổng bộ nhớ, tiếp theo là bộ nhớ đã sử dụng. Đối với điều này, chúng tôi sẽ sử dụng các lệnh của hệ điều hành sysctl
và vm_stat
để lấy thông tin về RAM. Sau đó, chúng tôi phân tích các kết quả này và thêm chúng vào từ điển thống kê của chúng tôi, như được hiển thị bên dưới
Sử dụng đĩa
Tại đây, chúng tôi sẽ lấy tổng kích thước ổ đĩa, kiểm tra dung lượng ổ đĩa đã sử dụng và cuối cùng kiểm tra ổ đĩa trống và thêm tất cả những thứ này vào từ điển thống kê
Độ trễ mạng
Độ trễ mạng là một biểu thức về thời gian cần thiết để gói dữ liệu đi từ điểm được chỉ định này đến điểm khác. Sử dụng lệnh Linux ping
, thời gian khứ hồi được coi là độ trễ của mạng. Chúng tôi sẽ sử dụng lệnh ping để xác định độ trễ mạng của máy
Tất cả những điều trên đã được kết hợp thành một tệp có tên monitor.py
Đầu ra từ máy của tôi
Điều hành đại lý
Để có thể thu thập số liệu thống kê từ trên, chúng tôi cần một cách để đảm bảo rằng tập lệnh thu thập số liệu thống kê được thực thi cứ sau 5 phút [hoặc số phút tùy chỉnh]. Đối với điều này, chúng tôi sẽ sử dụng crontab của Linux để chạy tập lệnh monitoring
*/2 * * * * location_to_python3/python3 ~/monitor.py > /tmp/monitor.log 2>&1
Hãy nhớ di chuyển tập lệnh giám sát vào thư mục home
Và đó là nó. Cảm ơn bạn đã đọc
Tập lệnh trên chỉ được thử nghiệm trên Mac OS và có thể cần một vài sửa đổi nhỏ để tập lệnh hoạt động trên Linux và Windows
Trong bài viết này, chúng ta sẽ xem cách giám sát kết nối mạng và lưu tệp nhật ký trong Python.
Tư tưởng cơ bản của tập lệnh này là cung cấp thông tin theo thời gian thực về việc hệ thống mà tập lệnh đang chạy có được kết nối với kết nối internet hay không và đồng thời lưu thông tin đó vào tệp nhật ký, lưu giữ hồ sơ khi hệ thống được kết nối
Tập lệnh này được tạo bằng thư viện ổ cắm trong Python, trong chương trình này được sử dụng để gửi hoặc nhận các gói trên mạng
tệp nhật ký
Bắt đầu đơn giản bằng cách tạo một tệp nhật ký trong thư mục làm việc hiện tại để lưu trữ trạng thái kết nối internet
con trăn
FILE
=
os.path.join[os.getcwd[],
vm_stat
0vm_stat
1
ping[]
Sử dụng chức năng này, tập lệnh sẽ thử kết nối với máy chủ đã xác định, để kiểm tra xem hệ thống có kết nối internet trực tiếp hay không. Nhiệm vụ này sẽ được thực hiện bằng cách sử dụng xử lý ngoại lệ trong python [thử, ngoại trừ, khác].
- Hệ thống sẽ thử ping một máy chủ cụ thể [PORT tại một IP]
- Nếu máy không kết nối được, câu lệnh EXCEPT sẽ được thực thi
- Nếu không, kết nối sẽ bị đóng sau khi hệ thống được kết nối thành công với máy chủ
Mã số
con trăn
vm_stat
2 vm_stat
3
vm_stat
4
vm_stat
5FILE
0
vm_stat
5FILE
2
vm_stat
5FILE
4
vm_stat
5FILE
6
vm_stat
5FILE
8
vm_stat
5=
0
vm_stat
5=
2=
3
=
4=
5____86vm_stat
1
=
4=
9
=
4os.path.join[os.getcwd[],
1
=
4____93____8 os.path.join[os.getcwd[],
5
=
4
=
4____98=
vm_stat
00
=
4vm_stat
02____8 vm_stat
04
=
4vm_stat
06______8 vm_stat
08
=
4
=
4vm_stat
11
=
4vm_stat
13
vm_stat
5vm_stat
15 vm_stat
16
vm_stat
17
=
4vm_stat
19
=
4vm_stat
21
=
4vm_stat
23 vm_stat
24
vm_stat
5vm_stat
26____83
vm_stat
17
=
4vm_stat
30
=
4vm_stat
32
=
4vm_stat
34
=
4vm_stat
23 vm_stat
37
Các hàm Sử dụng trong chương trình trên
- ổ cắm. setdefaulttimeout[]. Nó là một chức năng thư viện ổ cắm sẵn có trong python. bằng cách đặt thời gian chờ mặc định là 3 giây, chúng tôi chỉ định nếu chúng tôi không nhận được bất kỳ phản hồi nào từ máy chủ trong hơn 3 giây, kết nối sẽ không được thực hiện
- ổ cắm. ổ cắm [ổ cắm. AF_INET, ổ cắm. SOCK_STREAM]. ổ cắm. socket[] được sử dụng để xác định các tham số để kết nối hai nút trong mạng, i. e. hệ thống của bạn tới một PORT cụ thể tại một IP cụ thể để chúng có thể giao tiếp với nhau
- AF_INET là một họ địa chỉ được sử dụng để chấp nhận IP của loại địa chỉ v4 làm tham số mà ổ cắm đã xác định sẽ giao tiếp
- SOCK_STREAM là một giao thức dựa trên kết nối, trong chương trình này sử dụng TCP [giao thức điều khiển truyền dẫn] được sử dụng để chấp nhận một cổng không. như một tham số
tính_thời gian[]
Thời gian không khả dụng là khoảng thời gian không có kết nối internet. được tính bằng cách sử dụng thời gian chết [dừng] khi mất kết nối internet và thời gian hoạt động [bắt đầu] khi kết nối internet được khôi phục
con trăn
vm_stat
2 vm_stat
39
vm_stat
4
vm_stat
5____142
vm_stat
5vm_stat
44=
vm_stat
46vm_stat
47 vm_stat
48
vm_stat
5vm_stat
50=
vm_stat
52vm_stat
53vm_stat
54vm_stat
55
vm_stat
5vm_stat
23 vm_stat
54vm_stat
59=
FILE
01FILE
02FILE
03FILE
04FILE
05
first_check[]
Chức năng này sẽ chỉ được thực hiện một lần, tôi. e. ở phần đầu của tập lệnh để kiểm tra xem hệ thống đã được kết nối với kết nối internet hay chưa và ghi nó vào tệp nhật ký. hàm ping[] được gọi
- Nếu ping trả về true [máy được kết nối với internet], tập lệnh sẽ in “CÓ THỂ KẾT NỐI” và ghi nội dung tương tự vào tệp nhật ký
- Nếu ping trả về false [hệ thống không được kết nối với internet], tập lệnh sẽ in “CONNECTION NOT ACQUIRED” và ghi tương tự vào tệp nhật ký
con trăn
vm_stat
2 FILE
07
vm_stat
5FILE
09
vm_stat
5FILE
11
vm_stat
5FILE
13 vm_stat
3
=
4FILE
16______8 FILE
18
_______84____720____721
=
4FILE
23____8 FILE
25
=
4FILE
27=
FILE
29 FILE
30 FILE
31
FILE
32vm_stat
54FILE
34FILE
02FILE
03FILE
04FILE
05
_______84____720____741
=
4FILE
43
=
4FILE
45FILE
46vm_stat
53FILE
FILE
49FILE
50FILE
51FILE
52=
3
FILE
32FILE
52FILE
56
FILE
32FILE
52FILE
59
=
4vm_stat
23 vm_stat
37
vm_stat
5FILE
64
vm_stat
5vm_stat
26____83
=
4FILE
69=
FILE
71
=
4FILE
20FILE
74
=
4FILE
43
=
4FILE
45FILE
46vm_stat
53FILE
FILE
49FILE
50FILE
51FILE
52=
3
FILE
32FILE
52FILE
89
=
4vm_stat
23 vm_stat
24
chính[]
Chức năng chính, nơi tất cả các chương trình do người dùng xác định sẽ được thực thi và trạng thái internet trực tiếp sẽ được ghi vào một tệp nhật ký
con trăn
vm_stat
2 FILE
94
vm_stat
5FILE
96
vm_stat
5FILE
98=
FILE
25
vm_stat
5
vm_stat
5=
03
vm_stat
5____805
vm_stat
5=
07=
=
09 FILE
30 FILE
31
=
4vm_stat
54____814FILE
02FILE
03FILE
04FILE
05
vm_stat
5FILE
13 FILE
07
=
4=
23
=
4FILE
20____826
=
4
=
4=
29
=
4=
31
vm_stat
5vm_stat
26____83
=
4=
36
=
4=
38 vm_stat
37____83
=
41
FILE
32=
43
FILE
32=
45
FILE
32FILE
13 =
48 vm_stat
3
=
50
=
51=
52
=
51=
54=
55vm_stat
1
FILE
32vm_stat
26=
3
=
50
=
51=
62
=
51=
64
=
51FILE
20=
26
=
51=
69
FILE
32FILE
45FILE
46vm_stat
53FILE
FILE
49FILE
50FILE
51FILE
52=
3