Cùi cd vào / sys / kernel / gỡ lỗi / theo dõi gây ra thay đổi quyền


10

Tôi đã phải đối mặt với một vấn đề thực sự kỳ lạ ngày hôm nay, và tôi hoàn toàn bất lực về nó.

Một số máy chủ tôi quản lý được theo dõi với Nagios. Gần đây tôi thấy một đầu dò sử dụng đĩa không thành công với lỗi này:

DISK CRITICS - / sys / kernel / debug / trace không truy cập được: Quyền bị từ chối

Tôi muốn điều tra và lần thử đầu tiên của tôi là kiểm tra các quyền của thư mục này và so sánh chúng với các máy chủ khác (chúng hoạt động tốt). Dưới đây là các lệnh tôi đã chạy trên máy chủ hoạt động và bạn sẽ thấy rằng ngay khi tôi cdvào thư mục, các quyền của nó được thay đổi:

# Here we've got 555 for /sys/kernel/debug/tracing
root@vps690079:/home/admin# cd /sys/kernel/debug
root@vps690079:/sys/kernel/debug# ll
total 0
drwx------ 30 root root 0 Jul 19 13:13 ./
drwxr-xr-x 13 root root 0 Jul 19 13:13 ../

dr-xr-xr-x  3 root root 0 Jul 19 13:13 tracing/
drwxr-xr-x  6 root root 0 Jul 19 13:13 usb/
drwxr-xr-x  2 root root 0 Jul 19 13:13 virtio-ports/
-r--r--r--  1 root root 0 Jul 19 13:13 wakeup_sources
drwxr-xr-x  2 root root 0 Jul 19 13:13 x86/
drwxr-xr-x  2 root root 0 Jul 19 13:13 zswap/

# I cd into the folder, and it (./) becomes 700!!
root@vps690079:/sys/kernel/debug# cd tracing/
root@vps690079:/sys/kernel/debug/tracing# ll
total 0
drwx------  8 root root 0 Jul 19 13:13 ./
drwx------ 30 root root 0 Jul 19 13:13 ../
-r--r--r--  1 root root 0 Jul 19 13:13 available_events
-r--r--r--  1 root root 0 Jul 19 13:13 available_filter_functions
-r--r--r--  1 root root 0 Jul 19 13:13 available_tracers


# Next commands are just a dumb test to double-check what I'm seeing
root@vps690079:/sys/kernel/debug/tracing# cd ..
root@vps690079:/sys/kernel/debug# ll
total 0
drwx------ 30 root root 0 Jul 19 13:13 ./
drwxr-xr-x 13 root root 0 Sep 27 10:57 ../

drwx------  8 root root 0 Jul 19 13:13 tracing/
drwxr-xr-x  6 root root 0 Jul 19 13:13 usb/
drwxr-xr-x  2 root root 0 Jul 19 13:13 virtio-ports/
-r--r--r--  1 root root 0 Jul 19 13:13 wakeup_sources
drwxr-xr-x  2 root root 0 Jul 19 13:13 x86/
drwxr-xr-x  2 root root 0 Jul 19 13:13 zswap/

Bạn có biết cái gì có thể gây ra hành vi này không?
Lưu ý bên lề, sử dụng chmod để thiết lập lại quyền dường như không khắc phục được đầu dò.


1
Khi cung cấp các mẫu của đầu vào đầu cuối, hãy xem xét thay thế các bí danh không đạt tiêu chuẩn, chẳng hạn như llbằng các lệnh mà chúng đại diện.
Roman Odaisky

2
@RomanOdaisky Đó là một bí danh mặc định trong Ubuntu, có thể không biết nó không phải là mặc định
GammaGames

Trên hết những gì @tecloM đã nói, đây có vẻ như là một lỗi kernel cho phiên bản kernel của bạn. Ngày 4.19.0-4 hành vi là bình thường.
V13

Câu trả lời:


20

/ sys

/syssysfs, một chế độ xem hoàn toàn ảo vào các cấu trúc kernel trong bộ nhớ phản ánh cấu hình phần cứng và phần cứng hệ thống hiện tại và không tiêu thụ bất kỳ dung lượng đĩa thực nào. Các tập tin và thư mục mới không thể được ghi vào nó theo cách thông thường.

Áp dụng giám sát không gian đĩa cho nó không tạo ra thông tin hữu ích và lãng phí công sức. Nó có thể có các điểm gắn kết cho các hệ thống tệp ảo dựa trên RAM khác bên trong, bao gồm ...

/ sys / kernel / gỡ lỗi

/sys/kernel/debuglà điểm gắn kết tiêu chuẩn cho debugfs, là một hệ thống tệp ảo tùy chọn cho các tính năng gỡ lỗi và theo dõi hạt nhân khác nhau.

Bởi vì nó là để gỡ lỗi các tính năng, nó được cho là không cần thiết cho sử dụng sản xuất (mặc dù bạn có thể chọn sử dụng một số tính năng để thống kê hệ thống nâng cao hoặc tương tự).

Vì việc sử dụng các tính năng được cung cấp theo debugfsý muốn trong hầu hết các trường hợp yêu cầu rootdù sao đi nữa và mục đích chính của nó là một cách dễ dàng cho các nhà phát triển kernel cung cấp thông tin gỡ lỗi, nên có thể hơi "thô ráp xung quanh các cạnh".

Khi kernel đã được tải, thường trình khởi tạo cho hệ thống con theo dõi kernel được đăng ký /sys/kernel/debug/tracinglàm điểm truy cập gỡ lỗi cho chính nó, trì hoãn bất kỳ khởi tạo nào nữa cho đến khi nó thực sự được truy cập lần đầu tiên (giảm thiểu việc sử dụng tài nguyên của hệ thống con theo dõi trong trường hợp nó tắt không cần thiết). Khi bạn cdvào thư mục, việc khởi tạo bị trì hoãn này đã được kích hoạt và hệ thống con theo dõi sẵn sàng sử dụng. Trên thực tế, ban đầu ban đầu chỉ /sys/kernel/debug/tracinglà một ảo ảnh không có chất và nó chỉ trở thành "thực" khi (và bởi vì) bạn truy cập nó bằng cdlệnh của mình .

debugfs hoàn toàn không sử dụng bất kỳ dung lượng đĩa thực nào: tất cả thông tin chứa trong đó sẽ biến mất khi tắt kernel.

/ sys / fs / cgroup

/sys/fs/cgrouplà một tmpfshệ thống tập tin dựa trên RAM, được sử dụng để nhóm các quy trình đang chạy khác nhau thành các nhóm kiểm soát . Nó hoàn toàn không sử dụng không gian đĩa. Nhưng nếu hệ thống tập tin này đã gần đầy vì một số lý do, nó có thể nghiêm trọng hơn là hết dung lượng đĩa: điều đó có nghĩa là

a) bạn sắp hết RAM miễn phí

b) một số quy trình thuộc sở hữu gốc đang ghi rác vào /sys/fs/cgrouphoặc

c) một cái gì đó đang khiến cho một số nhóm kiểm soát thực sự vô lý được tạo ra, có thể theo kiểu "bom ngã ba" cổ điển nhưng với systemdcác dịch vụ dựa trên cơ sở hoặc tương tự.

Dòng dưới cùng

Một đầu dò sử dụng đĩa nên được /sysloại trừ vì không có gì bên dưới /sysđược lưu trữ trên bất kỳ đĩa nào.

Nếu bạn cần theo dõi /sys/fs/cgroup, bạn nên cung cấp một đầu dò chuyên dụng cho nó sẽ cung cấp các cảnh báo có ý nghĩa hơn so với đầu dò không gian đĩa chung.


1
Cảm ơn câu trả lời này với nhiều chi tiết như tôi cần! Tôi sẽ loại trừ /syskhỏi phạm vi giám sát của tôi.
zessx

1
@zessx: Cũng loại trừ /procvà có thể /dev(vì ngay cả khi nó không được hỗ trợ 100% RAM, một mặt, nó chứa một số tệp và thư mục "lạ" theo nhiều cách khác nhau, và mặt khác, nếu bạn thực sự tiêu tốn một tấn không gian đĩa /dev, thiết lập của bạn bị hỏng khủng khiếp và bạn nên thắp sáng toàn bộ mớ hỗn độn trên lửa).
Kevin

" /syssysfs, một hệ thống tệp ảo hoàn toàn dựa trên RAM" - Tôi khá chắc chắn rằng nội dung sysfsđược tổng hợp 100% từ các cấu trúc dữ liệu trong nhân và không sống trong RAM ở đâu đó. Trên thực tế, tôi sẽ lập luận rằng "Hệ thống tệp ảo dựa trên RAM" là một oxymoron: hoặc là dựa trên RAM, tức là có một cửa hàng sao lưu (ngay cả khi đó là một cửa hàng sao lưu rất truyền thống cho một hệ thống tệp), thì đó là không ảo, hoặc nó là ảo, sau đó nó không có cửa hàng sao lưu.
Jörg W Mittag

1
@ JörgWMittag Lưu ý rằng tôi rất cẩn thận tránh nói sysfslà RAMdisk. Cấu trúc dữ liệu trong nhân sẽ sống ở đâu, nếu không có RAM? Tôi đồng ý rằng từ "ảo" có vấn đề ở đây, vì bạn có thể nhận thấy rằng trên tất cả các trình điều khiển hệ thống tệp trong nhân Linux là lớp VFS (Hệ thống tệp ảo), sử dụng "ảo" theo nghĩa khác, như một sự trừu tượng hóa thống nhất cho tất cả các hệ thống tập tin có thể. Nhưng thật khó để mô tả chính xác cách thức procsysfskhác biệt với các hệ thống tập tin thực sự, vì đây chỉ là thông tin cơ bản để làm cho điểm chính.
telcoM

1
@grawity Tôi tinh chỉnh từ ngữ một chút, bây giờ có tốt hơn không?
telcoM
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.