Інструментарій та звички для мережевого та системного адміністрування Linux [закрито]


20

Мені доручено адміністрування невеликої офісної мережі, а також декількох робочих станцій, де працюють в основному Debian і Ubuntu. Є два сервери: один сервер бази даних та сервер друку та один резервний і файловий сервер.

Будучи відносно новим у цій стороні речей, знаючи достатньо, щоб певною мірою допомогти собі в Linux, я хотів би знати, які програмні засоби та завдання / звички я можу використовувати / придбати, щоб вивчити цю сферу та бути ефективним, роблячи це так.

Мені не потрібно знати, що найкраще, лише те, що новачок sys-admin може використовувати як стартовий пакет для навчання та використання в якості основи, щоб перерости в правильне адміністрування системи.

Що мені потрібно - це кілька основних інструментів для початку, і такі речі, які мені потрібно робити регулярно, наприклад: які журнали потрібно перевіряти, коли і що слідкувати, тип «правильного» місця для початку та до якого я можу реклама, як мені потрібно.


Суб’єктивна тема, в крайньому випадку. Як виглядатиме "правильна" відповідь?
Білл Вайс

Відповіді:


16

1

контролювати критичні процеси в бізнесі [наприклад - це запуск бази даних та відповідь на прості запити], основні параметри операційної системи [вільний простір на диску, середнє завантаження]. наприклад, ви можете використовувати nagios або zabbix .

2

зібрати статистику для встановлення базових етапів. в майбутньому це буде корисно для планування потенціалу. Ви можете використовувати munin , zabbix, кактуси тощо.

3

запускати заплановані автоматичні резервні копії, зберігати деякі з них у режимі офлайн. відстежуйте, чи вдалося їм це, час від часу перевіряйте вручну, чи можна відновити критичні дані. ви можете використовувати backupninja для того, щоб оркеструвати їх або Zmanda , але є набагато корисніші інструменти.

4

документ. для власного блага. не думайте, що відсутність документації підвищує безпеку вашої роботи. Перший, хто буде страждати через його відсутність, ви, напевно, забудете речі досить швидко.

5

з інших випадкових речей:

вивчити мову сценаріїв - можливо, ти знаєш ще один? perl / python / php може бути використаний для автоматизації завдань і в багатьох випадках краще підходить, ніж bash для складніших завдань

вивчіть свої інструменти - це нескінченний список ... ssh приходить на думку, мабуть, першим. перевірити це і те .


"це нескінченний список ..." - справді; Я погуглив за це, перш ніж я поставив це запитання, але переповнений. Я вірю в KISS, і хочу почати з простої, простої бази і намагаюся навчитися правильно.
slashmais

1
Хочу додати, що пункти 1 і 4 є найважливішими. Я рекомендую використовувати таку систему управління конфігурацією, як Puppet. принаймні, ви повинні використовувати контроль версій (git / svn), але Puppet дозволить вам робити речі один раз, а потім буде повторюваним, якщо вам потрібно буде додати або відновити послуги. Я також вірю в надмірну інженерію. якщо ви будуєте свою інфраструктуру так, як вам потрібно 100 машин, вам буде легше керувати своїми 10 машинами та збільшувати масштаби, якщо потрібно.
neoice

4
Я думаю, це питання думки, але я б поставив пункт 3 як найбільш критичний. Так, це смокче, коли база даних бухгалтерського обліку не працює на півдня, але вона справді гасить, коли всі фінансові ресурси пропадають через відсутність / поганих резервних копій. YMMV.
Joe Internet

@pQd - я також додав моніторинг (nagios, opennms тощо) та систему квитків. Не повинно бути нічого дивовижного: просто якесь місце для зберігання ваших предметів "Todo". Врешті-решт його можна розширити на людей, які подають потрібні їм кеси, або створюють черги для інших команд.
warren

читати « Управління часом для системних адміністраторів » Томаса Лімончеллі. Потрібно прочитати всіх, хто працює електронною поштою.
warren

10

Ви повинні почати практику системного та мережевого адміністрування Limoncelli та ін. Технології будуть надходити і виходити (і за потреби можна легко поставити Google), але інформація в цій книзі є позачасовою (і безцінною).


2
Також суттєве адміністрування системи Frisch.
Джейсон Антман

10

Кілька основних інструментів для початку

Google. Ні серйозно. Google - мрія системного адміністратора. Не існує більш тонкого способу використання величезної кількості інформації в Інтернеті. І не обмежуйтеся лише пошуком "linux для початківців"; якщо у вас є певне завдання, яке ви намагаєтеся виконати, Google для цієї конкретної речі. Ви часто знайдете набагато більше інформації, ніж вам потрібно, і для початківців багато цього буде здаватися іншою мовою, але навчання за допомогою занять - це хороший спосіб швидко підібрати речі.

Вкладка-заповнення. Командний рядок Linux дозволяє виконати вкладку всіх команд, дерев каталогів, назв каталогів та імен файлів.

Сторінки людини. Кожна команда та багато файлів конфігурації системи (/ etc / fstab, / etc resolutionv.conf тощо) містять сторінки Man. Просто введіть "man command_name" або "man file_name", щоб побачити, чи є те, що ви шукаєте. О, і "q" залишає сторінку чоловіка.

SSH. Один з найкращих способів доступу до системи Linux. Можливо кращий спосіб , якщо у вас немає фізичного доступу до системи.

Екран. Екран - це фантастичний маленький додаток, який дозволяє вам перетворити один термінал на багато, дозволяє виводити речі зі свого шляху / на другий план, а також дозволяє залишати роботу, щоб ви могли пізніше повернутися до них.

Нано. Ви згадали вище, що ви вже цим користуєтесь, але я просто подумав, що кину два центи і скажу, що я згоден. Vi і Vim і все це добре і все, але я люблю простоту Нано. Це як Блокнот світу Linux.

Знайдіть і греп. Пошук відмінно підходить для пошуку для файлів, Grep відмінно підходить для пошуку в файлах. Обидва вони можуть бути використані дуже простими способами, і обидва вони можуть бути використані дуже складними способами, але обидва є корисними в будь-якому випадку.

Судо. Дозволяє вам діяти як root, не будучи root. Дуже корисний.

Плюс ще кілька інструментів, які я згадаю в контексті наступного розділу ...

Види речей, які потрібно робити регулярно

Контролюйте свою систему. Контролюйте використання свого диска (df - корисна команда, а також для конкретних каталогів), слідкуйте за запущеними процесами та завданнями (за допомогою команди ps та топ-команд), стежте за користувачами, які ввійшли у ваші системи (користувачі та хто такі команди будуть скажу вам це) та стежте за використанням мережі (такі програми, як кактуси, корисні для цього). Якщо у вас є доступ до середовища X Windows, я завжди вважав, що GKrellM є дуже корисним інструментом системного моніторингу «все в одному».

Резервні копії. За любов до Тукса, резервні копії. Конфігураційні файли резервного копіювання, резервні домашні каталоги, резервні дані додатків. Резервні копії. Навіть якщо все, що ви робите, це копіювання даних з сервера на спільний доступ до CIFS / NFS в інший ящик і зовнішній жорсткий диск. І так, ви повинні зберігати дві копії кожної резервної копії, і ніколи на одному носії / системі. Подумайте про це як резервне копіювання своїх резервних копій.

Перевірте свої резервні копії. Регулярно перевіряйте, щоб переконатися, що ви можете відновити дані зі своїх резервних копій у ваші системи. Порожні / корумповані / неповні резервні копії настільки ж марні, як і довгий день.

Використовуйте файли журналів. Dmesg, / var / log / messages та дуже багато всього в / var / log періоді. Якщо щось не працює належним чином, і ви не знаєте чому, журнали можуть не відповісти, але вони точно можуть допомогти вам знайти його. І журнали та каталоги в / var / log чітко названі, тому пошук потрібного журналу не повинен бути складним. Вам не потрібно буде постійно контролювати кожен файл журналу, але стеження за ними допоможе зберегти вашу систему здоровою та безпечною.

Постійно оновлюйте систему. Не дозволяйте вашому програмному забезпеченню працювати місяцями і місяцями, не оновлюючись, тому що це може призвести до безлічі головних болів і поломки при зміні синтаксису файлу конфігурації або залежності. У різних дистрибутивах є різні програми оновлення (apt-get, yum і т. Д.), Але залежно від того, яку з них ви використовуєте, вивчайте та використовуйте її регулярно.

Бережіть систему. Використовуйте такі речі, як iptables, PAM, hosts.allow / hosts.deny та подібні для запобігання небажаного доступу до вашої системи та використання.

Ніколи не припиняйте вчитися. Щоб продовжувати щось, про що я говорив раніше (навчання через заняття), щось, на що слід звернути увагу, - це віртуальні машини. Завантажте VirtualBox (або якщо у вас ліцензії VMWare ще краще) і зробіть собі віртуальну машину Linux. Ви можете вибрати будь-який дистрибутив, який ви хочете по-справжньому, але очевидно, це, мабуть, має найбільш сенс разом із тим, яким ви користуєтесь у своєму оточенні. Пограйте в VM .. використовуйте його як пісочницю. Налаштовуйте речі, розбивайте речі, досліджуйте, вчіться. Краса пісочниці VM полягає в тому, що не має значення, що з нею відбувається. Якщо ви повністю шлангуєте його, просто зробіть новий. Або зберігайте резервну копію оригіналу після того, як ви встановите її, і повторно використовуйте її, коли вам потрібно.

Як уже згадувалося і згадувалося в деяких інших публікаціях у цій темі, ці списки справді можуть бути майже нескінченними, але, сподіваємось, це дозволить вам почати вдалий початок.


Це викреслило синтаксис з моїх прикладів команд "man", тому я їх трохи відкоригував. Ви просто заміните "command_name" та "file_name" на відповідну команду чи файл.
морська зірка

Іноді в «Блокноті» і мені трапляється вводити ESC,: wq проблема в тому, що це не рідкісний випадок. Цікаво, чому ...
Мірча Вутковичі

8

Якщо ви тільки починаєте роботу, і тим більше, що у вас є деякі системи Debian (Ubuntu є Debian в основі), я дуже рекомендую посилання на Debian . Це чудовий огляд майже кожного аспекту адміністрування системи і має охоплювати майже все, що потрібно знати про підтримку невеликого набору таких систем.

Я також погоджуюся з усіма пунктами pQd, і конкретніше, я вважаю, що вам було б гарною ідеєю встановити вікі, щоб документувати всі ваші процеси та конфігурації. У моїй організації ми використовуємо Trac, але будь-який вікі-механізм повинен робити, просто переконайтеся, що він має хороший спосіб відображення вихідного коду, оскільки це корисно для крихітних сценаріїв та списків команд.


3

Чесно кажучи, адміністрування системи Linux - це не те поле, в яке можна просто «заскочити».

Якщо вам доведеться , то є кілька хороших книг на цю тему. У O'Reilly є дві книги (Linux Network Administration та Linux System Administration), які повинні розпочати роботу.

Особисто, якби я був ти, я б просто провів кілька днів воюючи з різними дистрибутивами, встановивши програмне забезпечення, налаштував речі типу Nagios / Cacti / Apache2 / SSH / NFS і, можливо, вивчив якусь мову сценаріїв (я використовую Perl, я сам, але багато моїх однодумців вважають за краще використовувати Python. Хоча це дійсно залежить від вас, чого ви хочете навчитися).

І обов'язково вивчіть командний рядок. Не відступайте від графічних інструментів як милиця.

Вивчіть vi. Навіть якщо ви навчитесь лише цього досить добре, щоб робити основні зміни, то чудово - але важливо вчитися vi, бо іноді ви застрягли в системі без Vim / Nano / Emacs. Перебуваючи в такій ситуації, ви будете щасливі, що витратили день чи два на навчання.

Якщо вам потрібна допомога, не соромтеся надіслати мені електронну пошту (мій електронний лист видалено [з міркувань безпеки]) - я радий допомогти вам за межами ServerFault.


Я знаю Перла; Я знаю / деякі / vi (як вставити & зберегти & вийти - віддайте перевагу нано). На мою ситуацію, на щастя, "низький тиск", тому мені не потрібно ставати гуру системного адміністратора, я можу перерости в нього (і помилка сервера, і ви (дякую за довіру) запитати, коли я дійсно застряг (також належить до дуже корисного LUG). Мені потрібні ті кілька основних інструментів для початку, і такі речі, які мені потрібно робити регулярно, наприклад: які журнали перевіряти, коли і що слідкувати, "правильне" місце для початку, до якого я можу
оголосити,

Тоді рекомендую поглянути на створення кактусів, Nagios, Snort та Postfix. Це, ймовірно, будуть чотири інструменти, які ви найбільше використовуєте для моніторингу вашої системи. Налаштування цих програм також заощадить багато часу вручну перевіряючи файли журналів. Що стосується ручної перевірки журналів, то, що завгодно в / var / log /, мабуть, хороша ставка. Немає конкретних файлів, на які я можу вас вказувати, але якщо щось не працює належним чином, можливо, варто зареєструватися / var / log
Michael Pobega

Колись я віддав перевагу нано, теж слэшмеїв. Після того, як ви постійно почнете редагувати файли, ви захочете дізнатися vi детальніше. Зараз не можу отримати цього достатньо ...
Кайл Сміт

3

Якщо вам зручно встановлювати додаток на сервери, подумайте про webmin, оскільки він забезпечує "єдину зупинку" для більшості журналів та конфігурації. Налаштуйте його для запуску через порт високого замовлення за допомогою SSL, і він окупається за рахунок простоти перевірки.


2

Я розповім вам про найбільшу не секрет системного та мережевого адміністрування. Ви готові? Гаразд, ось це:

Вивчіть основи. Дозвольте мені детальніше.

Будь-хто (або майже приблизно) може дізнатися, що робить те чи інше програмне забезпечення та як натиснути цю кнопку на цьому інструменті, щоб змусити x, y або z працювати. Це нічого особливого.

Якщо ви хочете бути хорошим адміністратором sys / net, вивчіть матеріали, що знаходяться під кришкою. Яка послідовність подій у типовому підключенні до мережі? Яка різниця між кадром і пакетом? Що насправді означає середнє навантаження в системі Unix? Який типовий процес завантаження машини (той самий, якщо дотримуватись його від початку до кінця, забезпечить багаті знання).

Як тільки ви зрозумієте основи та зрозумієте їх по-справжньому, закладати знання на добру основу набагато простіше. Але якщо ви почнете зверху і спробуєте вивчити конкретні шматочки програмного забезпечення, не знаючи, що відбувається під ним, це, в основному, зробить вас просто черговим високотехнологічним двірником.


2

Спочатку знайдіть свої журнали. Більшість дистрибутивів Linux входять у / var / log / messages, хоча я бачив пару журналів до / var / log / syslog. Якщо щось не так, швидше за все, у журналах буде якась відповідна інформація. Крім того, якщо ви взагалі маєте справу з електронною поштою, не забувайте / var / log / mail. Двічі перевірте свої додатки, і з’ясуйте, чи хтось із них не входить десь смішно, поза syslog.

Наготуйте свої навички vi. Нано може бути тим, чим користуються всі круті діти в наші дні, але досвід мене навчив, що vi - єдиний текстовий редактор, який гарантовано є в системі. Як тільки ти звикнеш до комбінацій клавіш і почнеш створювати власні тригери, vi стане тобі як друга природа.

Прочитайте сторінку man, а потім запустіть наступні команди на кожній машині та скопіюйте результати у свою документацію:

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

Це послужить початком вашої документації. Ці команди повідомляють про ваше оточення та можуть згодом усунути проблеми.

Прогляньте свої журнали та знайдіть "помилка" чи "помилка". Це дасть вам уявлення про те, що не працює як слід. Ваші користувачі дадуть вам свою думку про те, що не так, уважно слухайте, що вони мають сказати. Вони не розуміють систему, але бачать її по-іншому, ніж ви.

Якщо у вас є проблеми, перевірте речі в цьому порядку:

  1. Дисковий простір (df -h): Linux і деякі додатки, які працюють на Linux, роблять дуже дивні речі, коли місця на диску не вистачає. Це може здатися незв’язаним, поки ви не перевірите і не знайдете на 100% повну файлову систему.

  2. Вгору: Топ повідомить вас, чи є у вас якийсь процес, який там застряг, з'їдаючи всі наявні вами цикли процесора. Ніщо не повинно споживати 99% процесора протягом будь-якого тривалого періоду часу. Якщо це законний процес, він, ймовірно, повинен коливатися вгору і вниз. Поки ви вгорі, перевірте ...

  3. Завантаження системи: завантаження системи зазвичай має бути нижче 3 на стандартному сервері або робочій станції. Навантаження системи базується на процесорі, пам'яті та вводу / виводу.

  4. Пам'ять (безкоштовно -m): використання оперативної пам’яті в Linux трохи інше. Не рідкість бачити сервер із майже всією використаною оперативною пам’яттю. Не панікуйте, якщо ви бачите це, це здебільшого лише кеш-пам'ять, і він буде очищений у міру необхідності. Однак зверніть пильну увагу на кількість замінів, які використовуєте. Якщо можливо, тримайте це якомога ближче до нуля. Недостатня пам'ять може призвести до різного роду продуктивності.

  5.  Журнали: поверніться до своїх журналів, запустіть хвіст -500 / var / log / messages | більше і починайте читати і бачити, що відбувається. Сподіваємось, журнали зможуть вказати вас у напрямку, у якому вам потрібно йти далі.

Доглянутий сервер Linux може працювати роками без проблем. Ми просто закрили один, який працював 748 днів, і закрили його лише тому, що ми перенесли додаток на нове обладнання. Сподіваємось, це допоможе вам промокнути ноги та добре відпочити.

І останнє, завжди робіть копію конфігураційного файлу, який ви хочете змінити, і завжди копіюйте рядок, який ви змінюєте, і коментуйте оригінал, додаючи причину для його зміни. Це дозволить вам звикати документувати, коли ви їдете, і, можливо, заощадить 9 місяців у дорозі.


1

Гарне питання.

Моя порада. Навчіться використовувати свою оболонку.

Стандартним є баш. Ви можете просто набрати довідку, щоб потрапити в документацію.

вивчити труби "|" щоб отримати вихід з однієї команди на вхід другої команди.

Останнє, що мені дуже давно допомогло: Linux One Page Manual

багато працювати, ніколи не здаватися.

Через 3-4 роки у вас буде достатньо знань, і багато речей виходить само по собі :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.