Bộ công cụ & Thói quen cho Quản trị hệ thống và mạng Linux [đã đóng]


20

Tôi được giao nhiệm vụ quản trị một mạng văn phòng nhỏ cũng như một số máy trạm chạy chủ yếu là Debian và Ubuntu. Có hai máy chủ: một cơ sở dữ liệu & máy chủ in và một máy chủ sao lưu và tệp.

Là người tương đối mới ở khía cạnh này, biết đủ để giúp bản thân ở một mức độ nào đó về Linux, tôi muốn biết những công cụ và nhiệm vụ / thói quen phần mềm nào tôi có thể sử dụng / tiếp thu để học lĩnh vực này và có hiệu quả trong khi làm như vậy.

Tôi không cần biết cái gì là tốt nhất, chỉ những gì một người mới quản trị hệ thống có thể sử dụng như một gói khởi đầu để tìm hiểu và sử dụng làm cơ sở để phát triển thành quản trị hệ thống phù hợp.

Những gì tôi cần là một vài công cụ cơ bản để bắt đầu, và những thứ tôi cần làm thường xuyên, ví dụ: bản ghi nào cần kiểm tra, khi nào và cái gì cần giám sát, loại 'đúng' để bắt đầu và tôi có thể bắt đầu quảng cáo khi tôi cần


Chủ đề chủ quan, trong cùng cực. Câu trả lời "đúng" sẽ như thế nào?
Bill Weiss

Câu trả lời:


16

1

giám sát các quy trình quan trọng trong kinh doanh [ví dụ - là cơ sở dữ liệu đang chạy và trả lời các truy vấn đơn giản], các tham số cơ bản của hệ điều hành [dung lượng đĩa trống, tải trung bình]. bạn có thể sử dụng nagios hoặc zabbix chẳng hạn.

2

thu thập số liệu thống kê để thiết lập một số đường cơ sở. trong tương lai điều này sẽ hữu ích cho việc lập kế hoạch năng lực. bạn có thể sử dụng munin , zabbix, xương rồng , v.v.

3

chạy sao lưu tự động theo lịch trình, lưu trữ một số trong số họ ngoại tuyến, ngoại vi. giám sát nếu họ thành công, thỉnh thoảng kiểm tra thủ công nếu bạn có thể khôi phục dữ liệu quan trọng. bạn có thể muốn sử dụng backupninja để sắp xếp chúng hoặc Zmanda , nhưng có nhiều công cụ hữu ích hơn nhiều ..

4

tài liệu. vì lợi ích của riêng bạn đừng nghĩ rằng thiếu tài liệu làm tăng bảo mật công việc của bạn. Người đầu tiên sẽ đau khổ vì thiếu nó là bạn, có lẽ bạn sẽ quên mọi thứ khá nhanh.

5

từ những điều ngẫu nhiên khác:

học một số ngôn ngữ kịch bản - có thể bạn biết một ngôn ngữ chưa? perl / python / php có thể được sử dụng để tự động hóa các tác vụ và trong nhiều trường hợp phù hợp hơn bash cho các tác vụ phức tạp hơn

tìm hiểu các công cụ của bạn - đó là danh sách vô tận ... ssh có thể xuất hiện trong đầu bạn. kiểm tra nàyrằng .


"đó là danh sách vô tận ..." - thực sự; Tôi đã googled cho nó trước khi tôi hỏi câu hỏi này, nhưng đã bị choáng ngợp. Tôi tin vào KISS, và muốn bắt đầu từ một cơ sở đơn giản, dễ dàng và cố gắng học hỏi mọi thứ ngay.
slashmais

1
Tôi muốn thêm rằng điểm 1 và 4 là quan trọng nhất. Tôi khuyên bạn nên sử dụng một hệ thống quản lý cấu hình như Puppet. ít nhất, bạn nên sử dụng kiểm soát phiên bản (git / svn), nhưng Puppet sẽ cho phép bạn thực hiện một lần và sau đó có thể lặp lại nếu bạn cần thêm hoặc xây dựng lại dịch vụ. Tôi cũng tin vào kỹ thuật quá mức. nếu bạn xây dựng cơ sở hạ tầng như bạn cần 100 máy, việc quản lý 10 máy của bạn sẽ dễ dàng hơn và mở rộng quy mô nếu cần.
neoice

4
Tôi đoán đó là vấn đề quan điểm, nhưng tôi đặt điểm 3 là quan trọng nhất. Vâng, nó rất tệ khi cơ sở dữ liệu kế toán ngừng hoạt động trong nửa ngày, nhưng nó thực sự tệ khi tất cả tài chính đã hết vì không có / sao lưu kém. YMMV.
Joe Internet

@pQd - Tôi cũng sẽ thêm giám sát (nagios, opennms, v.v.) và hệ thống bán vé. Không phải là bất cứ điều gì tuyệt vời: chỉ cần một số nơi để giữ các mục "việc cần làm" của bạn. Cuối cùng, nó có thể được mở rộng thành những người gửi ca họ cần, hoặc phát triển hàng đợi cho các đội khác.
warren

đọc Quản lý thời gian cho quản trị viên hệ thống của Thomas Limoncelli. Nên đọc yêu cầu cho tất cả những người làm việc qua email.
warren

10

Thực hành Quản trị Hệ thống và Mạng , bởi Limoncelli, et al, là nơi bạn nên bắt đầu. Các công nghệ sẽ đến và đi (và có thể dễ dàng Googled theo yêu cầu), nhưng thông tin trong cuốn sách đó là vô tận (và vô giá).


2
Quản trị hệ thống thiết yếu của Frisch.
Jason Antman

10

Một vài công cụ cơ bản để bắt đầu

Google. Không nghiêm túc. Google là giấc mơ của quản trị viên hệ thống trở thành sự thật. Không có cách nào tốt hơn để khai thác lượng thông tin khổng lồ trên internet. Và đừng giới hạn bản thân mình chỉ tìm kiếm "linux cho người mới bắt đầu"; nếu bạn có một nhiệm vụ cụ thể mà bạn đang cố gắng thực hiện, Google cho điều cụ thể đó. Bạn sẽ thường tìm thấy nhiều thông tin hơn bạn cần, và khi mới bắt đầu, rất nhiều ngôn ngữ sẽ giống như một ngôn ngữ khác, nhưng học thông qua việc làm là một cách tốt để tiếp thu mọi thứ nhanh chóng.

Hoàn thành tab. Dòng lệnh Linux cho phép hoàn thành tab của tất cả các lệnh, cây thư mục, tên thư mục và tên tệp.

Trang nam. Mỗi lệnh và nhiều tệp cấu hình hệ thống (/ etc / fstab, / etc decv.conf, v.v.) đều có trang Man. Chỉ cần nhập "man command_name" hoặc "man file_name" để xem những gì bạn đang tìm kiếm có một cái không. Oh và "q" thoát khỏi một trang người đàn ông.

SSH. Một trong những cách tốt nhất để truy cập hệ thống Linux. Có lẽ cách tốt nhất nếu bạn không có quyền truy cập vật lý vào hệ thống.

Màn. Màn hình là một ứng dụng nhỏ tuyệt vời cho phép bạn biến một thiết bị đầu cuối thành nhiều thiết bị, cho phép bạn đưa mọi thứ ra khỏi đường đi / vào nền và cho phép bạn để mọi thứ chạy để bạn có thể quay lại với chúng sau này.

Nano. Bạn đã đề cập ở trên rằng bạn đã sử dụng cái này, nhưng tôi chỉ nghĩ rằng tôi đã ném hai xu của mình và nói rằng tôi đồng ý. Vi và Vim và tất cả những thứ đó đều ổn, nhưng đó là sự đơn giản của Nano mà tôi yêu thích. Nó giống như Notepad của thế giới Linux.

Tìm và Grep. Tìm là rất tốt cho việc tìm kiếm cho các tập tin, Grep là rất tốt cho việc tìm kiếm trong tập tin. Cả hai đều có thể được sử dụng theo những cách rất đơn giản và cả hai đều có thể được sử dụng theo những cách rất phức tạp, nhưng cả hai đều khá hữu ích.

Sudo. Cho phép bạn hành động như root, mà không phải là root. Rất hữu dụng.

Cộng với một vài công cụ khác mà tôi sẽ đề cập đến trong bối cảnh của phần tiếp theo ...

Những việc bạn cần làm thường xuyên

Giám sát hệ thống của bạn. Giám sát việc sử dụng đĩa của bạn (df là một lệnh hữu ích và cũng như đối với các thư mục cụ thể), giám sát các quy trình và tác vụ đang chạy của bạn (thông qua lệnh ps và các lệnh trên cùng), giám sát người dùng đã đăng nhập vào hệ thống của bạn (người dùng và ai sẽ ra lệnh nói với bạn điều này) và theo dõi việc sử dụng mạng của bạn (các ứng dụng như xương rồng rất tốt cho việc đó). Nếu bạn tình cờ có quyền truy cập vào môi trường X Windows, tôi luôn thấy GKrellM là một công cụ giám sát hệ thống tất cả trong một rất hữu ích.

Sao lưu. Đối với tình yêu của Thục, sao lưu. Sao lưu tập tin cấu hình, sao lưu thư mục nhà, sao lưu dữ liệu ứng dụng. Sao lưu. Ngay cả khi tất cả những gì bạn đang làm là sao chép dữ liệu từ máy chủ sang chia sẻ CIFS / NFS trên một hộp khác và ổ cứng ngoài. Và có, bạn nên giữ hai bản sao của mỗi bản sao lưu và không bao giờ trên cùng một phương tiện / hệ thống. Hãy nghĩ về nó như bản sao lưu của bản sao lưu của bạn.

Kiểm tra bản sao lưu của bạn. Thường xuyên kiểm tra để đảm bảo bạn có thể khôi phục dữ liệu từ bản sao lưu vào hệ thống của mình. Sao lưu trống / hỏng / không đầy đủ là vô ích như ngày dài.

Sử dụng tệp nhật ký của bạn. Dmesg, / var / log / message, và thực sự khá nhiều thứ trong khoảng thời gian / var / log. Nếu một cái gì đó không hoạt động đúng và bạn không biết tại sao, nhật ký có thể không có câu trả lời nhưng họ chắc chắn có thể giúp bạn tìm thấy nó. Và các nhật ký và thư mục trong / var / log được đặt tên hợp lý vì vậy việc tìm đúng nhật ký không nên khó khăn. Bạn sẽ không cần phải liên tục theo dõi mọi tệp nhật ký, nhưng để mắt đến chúng sẽ giúp bạn giữ cho hệ thống của bạn khỏe mạnh và an toàn.

Giữ cho hệ thống của bạn được cập nhật. Đừng để phần mềm của bạn hoạt động trong nhiều tháng và nhiều tháng mà không được cập nhật, vì nó có thể dẫn đến nhiều vấn đề đau đầu và phá vỡ mọi thứ khi cú pháp tệp cấu hình hoặc phụ thuộc thay đổi. Các bản phân phối khác nhau có các chương trình cập nhật khác nhau (apt-get, yum, v.v.) nhưng cho dù bạn sử dụng loại nào, hãy tìm hiểu và sử dụng nó thường xuyên.

Giữ cho hệ thống của bạn an toàn. Sử dụng những thứ như iptables, PAM, hosts.allow / hosts.deny và tương tự để ngăn chặn việc truy cập và sử dụng hệ thống của bạn không mong muốn.

Không ngừng học hỏi. Để tiếp tục với một cái gì đó tôi đã nói trước đó (học qua làm), một cái gì đó bạn nên xem xét là máy ảo. Tải xuống VirtualBox (hoặc nếu bạn có giấy phép VMWare thậm chí còn tốt hơn) và biến mình thành một máy ảo Linux. Bạn có thể chọn bất kỳ bản phân phối nào bạn muốn thực sự nhưng rõ ràng nó có thể có ý nghĩa nhất với thiết bị bạn đang sử dụng trong môi trường của mình. Chơi xung quanh trong VM .. sử dụng nó như một hộp cát. Thiết lập công cụ, phá vỡ mọi thứ, điều tra, học hỏi. Cái hay của VM sandbox là nó không quan trọng chuyện gì xảy ra với nó. Nếu bạn hoàn toàn vòi nó, chỉ cần làm một cái mới. Hoặc giữ một bản sao lưu của bản gốc sau khi bạn thiết lập xong và sử dụng lại bất cứ khi nào bạn cần.

Như một số bài viết khác trong chủ đề này đã đề cập và ám chỉ, những danh sách này thực sự có thể gần như vô tận, nhưng hy vọng điều này sẽ giúp bạn có một khởi đầu tốt.


Nó loại bỏ cú pháp ra khỏi các lệnh "man" ví dụ của tôi, vì vậy tôi điều chỉnh chúng một chút. Bạn chỉ cần thay thế "Command_name" và "file_name" bằng lệnh hoặc tệp thích hợp.
kingfish

Đôi khi trong Notepad và tôi thấy mình gõ ESC ,: vấn đề là đó không phải là trường hợp hiếm. Tôi tự hỏi tại sao ...
Mircea Vutcovici

8

Nếu bạn mới bắt đầu và đặc biệt là khi bạn có một số hệ thống Debian (Ubuntu là Debian ở lõi), tôi khuyên bạn nên tham khảo Debian . Đó là một tổng quan tuyệt vời về gần như mọi khía cạnh của quản trị hệ thống và sẽ bao gồm hầu hết mọi thứ bạn cần biết về việc duy trì một bộ nhỏ các hệ thống như thế này.

Tôi cũng đồng ý với tất cả các điểm pQd đã thực hiện và cụ thể hơn tôi nghĩ rằng bạn nên thiết lập một wiki để ghi lại tất cả các quy trình và cấu hình của mình. Tại tổ chức của tôi, chúng tôi sử dụng Trac, nhưng bất kỳ công cụ wiki nào cũng nên làm, chỉ cần đảm bảo rằng nó có một cách hay để hiển thị mã nguồn vì điều đó hữu ích cho các tập lệnh và danh sách lệnh nhỏ.


3

Thành thật mà nói, Quản trị hệ thống Linux không phải là một lĩnh vực mà bạn có thể 'nhảy vào'.

Nếu bạn phải , mặc dù, có một vài cuốn sách hay về chủ đề này. O'Reilly có hai cuốn sách (Quản trị mạng Linux và Quản trị hệ thống Linux) sẽ giúp bạn bắt đầu.

Cá nhân, nếu tôi là bạn, tôi chỉ mất vài ngày để loay hoay với các bản phân phối khác nhau, cài đặt phần mềm, thiết lập các thứ loại Nagios / Cacti / Apache2 / SSH / NFS và có thể học một số ngôn ngữ kịch bản (tôi sử dụng Perl, bản thân tôi, nhưng rất nhiều quản trị viên đồng nghiệp của tôi thích sử dụng Python. Tuy nhiên, điều đó thực sự phụ thuộc vào bạn những gì bạn muốn học).

Và chắc chắn học dòng lệnh. Đừng dự phòng các công cụ đồ họa như một cái nạng.

Học vi. Ngay cả khi bạn chỉ học đủ tốt để thực hiện các chỉnh sửa cơ bản thì vẫn ổn - nhưng điều quan trọng là phải học vi vì đôi khi bạn bị mắc kẹt trên hệ thống mà không có Vim / Nano / Emacs. Khi ở trong tình huống đó, bạn sẽ rất vui khi bạn dành một hoặc hai ngày để học vi.

Nếu bạn cần bất kỳ trợ giúp nào, vui lòng gửi email cho tôi (email của tôi bị [xóa vì lý do bảo mật]) - Tôi rất vui lòng giúp bạn ngoài ServerFault.


Tôi biết Perl; Tôi biết / some / vi (cách chèn & lưu và thoát - thích nano). Tình huống của tôi may mắn là một 'áp suất thấp', vì vậy tôi không cần phải trở thành một bậc thầy quản trị hệ thống, tôi có thể phát triển nó (và có lỗi máy chủ và bạn (cảm ơn vì đã tin tưởng) để hỏi khi tôi thực sự gặp khó khăn (cũng thuộc về LUG rất hữu ích). Cái tôi cần là vài công cụ cơ bản để bắt đầu, và những thứ tôi cần làm thường xuyên, ví dụ: nhật ký nào cần kiểm tra, khi nào và cái gì cần giám sát, loại 'đúng' để bắt đầu và nơi tôi có thể quảng cáo khi tôi cần.
slashmais

Sau đó, tôi khuyên bạn nên xem xét việc thiết lập Cacti, Nagios, Snort và Postfix. Đó có thể là bốn công cụ bạn sử dụng nhiều nhất để giám sát hệ thống của bạn. Thiết lập những thứ này cũng sẽ giúp bạn tiết kiệm rất nhiều thời gian kiểm tra các tệp nhật ký theo cách thủ công. Đối với các bản ghi kiểm tra thủ công, mọi thứ trong / var / log / có lẽ là một lựa chọn tốt. Không có bất kỳ tệp cụ thể nào tôi có thể chỉ cho bạn, nhưng nếu một cái gì đó không hoạt động đúng với một cái gì đó thì đó có thể là một lựa chọn tốt để kiểm tra / var / log
Michael Pobega

Ngày xưa tôi cũng thích nano, slashmais. Khi bạn bắt đầu chỉnh sửa tệp mọi lúc, bạn sẽ muốn tìm hiểu vi chi tiết hơn. Không thể có đủ của nó ngay bây giờ ...
Kyle Smith

3

Nếu bạn cảm thấy thoải mái khi cài đặt một ứng dụng trên các máy chủ, hãy xem xét webmin vì nó cung cấp một cửa hàng "một cửa" cho hầu hết việc ghi nhật ký và cấu hình. Thiết lập nó để chạy trên một cổng thứ tự cao bằng SSL và nó tự trả tiền để kiểm tra.


2

Tôi sẽ nói với bạn sự không bí mật lớn nhất của quản trị hệ thống và mạng. Bạn sẵn sàng chưa? Ok, đây là:

Tìm hiểu các nguyên tắc cơ bản. Hãy để tôi giải thích.

Bất cứ ai (hoặc chỉ về) có thể tìm hiểu phần mềm này hoặc phần mềm cụ thể đó làm gì và cách nhấn nút này trên công cụ đó để làm cho x, y hoặc z hoạt động. Điều đó không có gì đặc biệt.

Nếu bạn muốn trở thành một quản trị viên / sys giỏi , hãy tìm hiểu những thứ không phù hợp. Chuỗi sự kiện trong một kết nối mạng thông thường là gì? Sự khác biệt giữa khung và gói là gì? Tải trung bình thực sự có ý nghĩa gì trên một hệ thống Unix? Quá trình khởi động điển hình cho máy là gì (một mình, nếu bạn làm theo từ đầu đến cuối, sẽ cung cấp nhiều kiến ​​thức).

Một khi bạn hiểu các nguyên tắc cơ bản và hiểu chúng thực sự tốt, việc đặt kiến ​​thức lên trên một nền tảng tốt sẽ dễ dàng hơn nhiều. Nhưng nếu bạn bắt đầu từ đầu, và cố gắng học các bit phần mềm cụ thể mà không biết những gì diễn ra bên dưới, điều đó sẽ khiến bạn ... chỉ là một người gác cổng công nghệ cao khác, về cơ bản.


2

Trước hết, tìm nhật ký của bạn. Hầu hết các bản phân phối Linux đăng nhập vào / var / log / message, mặc dù tôi đã thấy một vài bản ghi vào / var / log / syslog. Nếu có gì đó không đúng, rất có thể sẽ có một số thông tin liên quan trong nhật ký. Ngoài ra, nếu bạn đang xử lý email, đừng quên / var / log / mail. Kiểm tra kỹ các ứng dụng của bạn, tìm hiểu xem có bất kỳ ứng dụng nào đăng nhập ở đâu đó vô lý không, bên ngoài syslog.

Chải lên các kỹ năng vi của bạn. Nano có thể là thứ mà tất cả những đứa trẻ tuyệt vời đang sử dụng ngày nay, nhưng kinh nghiệm đã dạy tôi rằng vi là trình soạn thảo văn bản duy nhất được đảm bảo có trên hệ thống. Khi bạn đã quen với các phím tắt và bắt đầu tạo các kích hoạt của riêng mình, vi sẽ giống như bản chất thứ hai đối với bạn.

Đọc trang man và sau đó chạy các lệnh sau trên mỗi máy và sao chép kết quả vào tài liệu của bạn:

hostname
cat /etc/*release*
cat /etc/hosts
cat /etc/resolv.conf
cat /etc/nsswitch
df -h
ifconfig -a
free -m
crontab -l
ls /etc/cron.d
echo $SHELL

Điều đó sẽ phục vụ như là sự khởi đầu của tài liệu của bạn. Những lệnh này cho bạn biết môi trường của bạn và có thể giúp thu hẹp các vấn đề sau này.

Tìm hiểu nhật ký của bạn và tìm kiếm "lỗi" hoặc "không thành công". Điều đó sẽ cho bạn một ý tưởng về những gì không hoạt động như bình thường. Người dùng của bạn sẽ cung cấp cho bạn ý kiến ​​của họ về những gì sai, lắng nghe những gì họ nói. Họ không hiểu hệ thống, nhưng họ nhìn nó theo một cách khác với bạn.

Khi bạn gặp vấn đề, hãy kiểm tra mọi thứ theo thứ tự này:

  1. Dung lượng đĩa (df -h): Linux và một số ứng dụng chạy trên Linux, thực hiện một số điều rất lạ khi hết dung lượng đĩa. Nó có vẻ không liên quan, cho đến khi bạn kiểm tra và tìm thấy một hệ thống tập tin đầy đủ 100%.

  2. Top: Top sẽ cho bạn biết nếu bạn có một số quy trình bị mắc kẹt ngoài đó ăn hết tất cả các chu kỳ CPU có sẵn của bạn. Không có gì nên tiêu thụ CPU 99% trong bất kỳ khoảng thời gian dài nào. Nếu đó là một quá trình hợp pháp, nó có thể nên dao động lên xuống. Trong khi bạn ở trên đỉnh, hãy kiểm tra ...

  3. Tải hệ thống: Tải hệ thống thường dưới 3 trên máy chủ hoặc máy trạm tiêu chuẩn. Tải hệ thống dựa trên CPU, bộ nhớ và I / O.

  4. Bộ nhớ (miễn phí -m): Sử dụng RAM trong Linux có một chút khác biệt. Không có gì lạ khi thấy một máy chủ có gần như toàn bộ RAM được sử dụng. Đừng hoảng sợ, nếu bạn thấy điều này, nó chủ yếu chỉ là bộ nhớ cache và sẽ bị xóa khi cần thiết. Tuy nhiên, hãy chú ý đến lượng trao đổi sử dụng. Nếu có thể, hãy giữ điều này càng gần 0 càng tốt. Bộ nhớ không đủ có thể dẫn đến tất cả các loại vấn đề hiệu suất.

  5.  Nhật ký: Quay trở lại nhật ký của bạn, chạy đuôi -500 / var / log / message | nhiều hơn và bắt đầu đọc qua và xem những gì đang xảy ra. Hy vọng rằng các bản ghi sẽ có thể chỉ cho bạn theo hướng bạn cần đi tiếp theo.

Một máy chủ Linux được bảo trì tốt có thể chạy trong nhiều năm mà không gặp vấn đề gì. Chúng tôi chỉ tắt một máy đã chạy được 748 ngày và chúng tôi chỉ tắt nó vì chúng tôi đã chuyển ứng dụng sang phần cứng mới. Hy vọng rằng, điều này sẽ giúp bạn có được đôi chân ướt, và giúp bạn có một khởi đầu tốt.

Một điều cuối cùng, luôn tạo một bản sao của tệp cấu hình mà bạn định thay đổi và luôn sao chép dòng bạn đang thay đổi và nhận xét bản gốc, thêm lý do để thay đổi tệp đó. Điều này sẽ giúp bạn có thói quen làm tài liệu khi bạn đi, và có thể tiết kiệm được 9 tháng của bạn.


1

câu hỏi hay.

Lời khuyên của tôi. Học cách sử dụng vỏ của bạn.

Tiêu chuẩn là bash. Bạn chỉ có thể gõ trợ giúp, để có được tài liệu.

học ống "|" để có được đầu ra từ một lệnh đến đầu vào của lệnh thứ hai.

Một điều cuối cùng, đã giúp tôi rất lâu trước đây: Hướng dẫn sử dụng Linux một trang

Làm việc chăm chỉ, không bao giờ bỏ cuộc.

Trong 3-4 năm nữa bạn sẽ có đủ kiến ​​thức và nhiều thứ đến từ chính nó :)

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.