Runtime VPN trên RAM không nói gì về nhật ký
Một runtime tmpfs và tuyên bố không có nhật ký là hai tuyên bố khác nhau. Theo từng nguồn ghi đến đích của nó và kiểm tra swap cùng việc chuyển tiếp nhật ký trước khi tin.
Một máy chủ VPN khởi động từ ảnh chỉ đọc và giữ trạng thái chạy trên tmpfs là một thiết kế thực tế và hữu ích. Cũng dễ mô tả nó là không có nhật ký, điều mà thiết kế không chứng minh. Vị trí lưu trữ quyết định bản sao sống ở đâu; việc thu thập và lưu giữ quyết định liệu có tồn tại bản ghi hay không, và việc khởi động lại chỉ ảnh hưởng đến điều đầu tiên. Tách hai điều này ra chính là toàn bộ việc đánh giá.
Hãy bắt đầu bằng việc liệt kê mọi tiến trình có thể ghi trạng thái: daemon, dịch vụ xác thực, nhật ký, bất kỳ tác nhân giám sát nào và các công cụ quản lý.
Lưu trữ và thu thập là hai câu hỏi khác nhau
Mỗi nguồn ghi có đích và chính sách riêng. Daemon VPN ghi tệp trạng thái, phần phụ trợ xác thực ghi sự kiện tài khoản, nhật ký thu thập đầu ra của dịch vụ, và tác nhân giám sát gửi số liệu đến một nơi hoàn toàn khác. Một thiết kế khiến một trong số đó biến mất khi khởi động lại không nói gì về ba cái còn lại. Theo từng nguồn ghi đến đích của nó và ghi lại xem đích đó có nằm trên máy hay không.
Các tệp dành riêng cho ứng dụng, chẩn đoán được tải lên và dịch vụ bên ngoài cần cách xử lý tương tự. Việc không có nhật ký cục bộ quen thuộc không chứng minh rằng không có bản ghi kết nối hay tài khoản ở đâu cả; nó chứng minh rằng bạn chưa tìm ra chúng đi đâu.
tmpfs không phải là bảo đảm
Linux tmpfs không phải đĩa RAM vật lý. Tài liệu hạt nhân nói rõ rằng các trang có thể được ghi vào swap khi việc gắn kết cho phép, nên một tệp tmpfs có thể đến được đĩa mà ứng dụng chưa bao giờ sao chép nó tới đó. mount cho thấy tmpfs dựa trên swap có đang được dùng hay không, và các hệ thống tệp bộ nhớ khác lại hành xử khác nữa. Hãy đọc các tùy chọn gắn kết thực tế thay vì cho rằng một đường dẫn dưới /run nghĩa là tính dễ biến mất.
Sau đó kiểm kê những thứ sống sót qua khởi động lại theo những cách người ta quên: lớp trên cùng bền vững, lưu trữ gắn kèm, ảnh ngủ đông, kết xuất sự cố và ảnh chụp hạ tầng của toàn bộ VM. Mỗi thứ là một đích khả dĩ cho trạng thái mà bạn tưởng là tạm thời. Danh sách đó là thứ cần kiểm tra, không phải tuyên bố rằng mọi máy chủ đều có tất cả.
Journald có hai đích và một bộ chuyển tiếp
Journald minh họa sự phân tách một cách gọn gàng. Lưu trữ tạm giữ các mục dưới /run/log/journal, lưu trữ bền vững dưới /var/log/journal, và chế độ tự động chọn giữa hai loại; chế độ có hiệu lực đến từ hệ thống đang chạy chứ không phải từ mô tả của ảnh. Chuyển sang tạm không xóa những gì đã được ghi bền vững. Chuyển tiếp cũng là một kênh riêng: ngay cả một thiết lập lưu trữ không giữ gì cục bộ cũng có thể chuyển thông điệp đến một đích khác.
Đọc chế độ có hiệu lực từ chính nhật ký hoặc tệp cấu hình của nó, sau đó kiểm tra riêng các đích chuyển tiếp, vì một thiết lập không điều khiển cái kia.
Điều gì phải sống sót qua khởi động lại
Một runtime không trạng thái hỗ trợ việc thay thế lặp lại, và nó cần những nguồn có chủ đích cho cấu hình, cấp quyền và vật liệu phục hồi mà dịch vụ không thể tự nghĩ ra. Mất trạng thái đăng ký hoặc thu hồi duy nhất còn hoạt động để các ghi cục bộ biến mất là một cuộc trao đổi tồi, và phổ biến. Hãy quyết định điều gì phải sống sót một cách có chủ đích, rồi xác minh rằng nó sống sót.
Lập luận tương tự áp dụng cho hồ sơ vận hành. Hãy quyết định những sự kiện nào mà bảo mật và quản lý dịch vụ thực sự cần, với phạm vi và thời gian lưu giữ hợp lý, và giảm thiểu phần còn lại. Giảm thiểu không giống với việc tắt mọi chẩn đoán.
So sánh cấu hình lưu trữ và chuyển tiếp có hiệu lực với vài sự kiện vô hại, sau đó khởi động lại hoặc thay máy và kiểm tra lại xem còn gì và dịch vụ đã phục hồi trạng thái từ đâu.