Linux Ağ ve Sistem Yönetimi için Araç Takımı ve Alışkanlıklar [kapalı]


20

Küçük bir ofis ağının yanı sıra çoğunlukla Debian ve Ubuntu çalıştıran birkaç iş istasyonunun yönetimi ile görevlendirildim. İki sunucu vardır: bir veritabanı ve baskı sunucusu ve bir yedekleme ve dosya sunucusu.

Şeylerin bu tarafında nispeten yeni olan, Linux'ta bir dereceye kadar kendime yardımcı olacak kadar bilerek, bu alanı öğrenmek ve bunu yaparken etkili olabilmek için hangi yazılım araçlarını ve görevlerini / alışkanlıklarını kullanabileceğimi bilmek istiyorum.

En iyisinin ne olduğunu bilmeme gerek yok, sadece bir acemi sys-admin'in uygun sistem yönetimine büyümek için bir temel olarak öğrenmek ve kullanmak için bir başlangıç ​​paketi olarak ne kullanabileceğini bilmem gerek.

İhtiyacım olan şey, başlamak için bu birkaç temel araç ve düzenli olarak yapmam gereken şeyler, örneğin: hangi günlükleri, ne zaman ve ne izleyeceğinizi, başlamak için 'doğru' yer türünü ve hangisini yapabileceğimi ihtiyacım olduğu gibi.


Öznel konu, aşırı derecede. "Doğru" bir cevap nasıl olurdu?
Bill Weiss

Yanıtlar:


16

1

iş açısından kritik süreçleri izlemek [örneğin - veritabanı basit sorguları çalıştırmak ve yanıtlamak], işletim sisteminin temel parametreleri [boş disk alanı, yük ortalaması]. örneğin nagios veya zabbix kullanabilirsiniz .

2

bazı taban çizgileri oluşturmak için istatistikler toplar. gelecekte bu kapasite planlaması için faydalı olacaktır. munin , zabbix, kaktüsler vb. kullanabilirsiniz .

3

planlanmış otomatik yedeklemeler çalıştırın, bazılarını çevrimdışı, çevrimdışı kaydedin. başarılı olup olmadıklarını izleyin, kritik verileri kurtarabileceğinizi zaman zaman manuel olarak kontrol edin. Kullanmak isteyebileceğiniz backupninja bunları ya orchestrate Zmanda , ama çok daha yararlı araçlar vardır ..

4

belgesi. senin iyiliğin için. dokümantasyon eksikliğinin iş güvenliğinizi artırdığını düşünmeyin. İlki eksikliğinden dolayı acı çekecek olan sizsiniz, muhtemelen işleri çok çabuk unutacaksınız.

5

diğer rastgele şeylerden:

bazı betik dillerini öğrenin - belki zaten bir tane biliyorsunuz? perl / python / php görevleri otomatikleştirmek için kullanılabilir ve çoğu durumda daha karmaşık görevler için bash'den daha uygundur

aletlerinizi öğrenin - sonsuz liste ... ssh muhtemelen akla ilk gelir. kontrol bu ve bu .


"sonsuz liste ..." - gerçekten; Bu soruyu sormadan önce bunun için çalıştım, ama bunaldım. KISS'e inanıyorum ve basit, kolay bir temelden başlamak istiyorum ve doğru şeyleri öğrenmeye çalışıyorum.
slashmais

1
1 ve 4. noktaların en önemliler olduğunu eklemek isterim. Kukla gibi bir yapılandırma yönetim sistemi kullanmanızı tavsiye ederim. en azından sürüm kontrolünü kullanmalısınız (git / svn), ancak Kukla işleri bir kez yapmanıza izin verecek ve daha sonra hizmetleri eklemeniz veya yeniden oluşturmanız gerekirse tekrarlanabilir olacaktır. Ben de aşırı mühendisliğe inanıyorum. altyapınızı 100 makineye ihtiyacınız gibi inşa ederseniz, 10 makinenizi yönetmek ve gerekirse büyütmek daha kolay olacaktır.
neoice

4
Sanırım bu bir fikir meselesi, ama 3. noktayı en kritik olarak koyardım. Evet, muhasebe veritabanı yarım gün boyunca kapalı olduğunda berbat , ama hiç / yetersiz yedekleme nedeniyle tüm finansal tablolar gittiğinde gerçekten berbat. YMMV.
Joe Internet

@pQd - Ayrıca izleme (nagios, opennms, vb.) ve bir bilet sistemi de eklerdim. İnanılmaz bir şey olmak zorunda değil: "yapılacaklar" öğelerinizi tutmak için sadece bir yer. Sonunda, ihtiyaç duydukları mağaraları gönderen veya diğer takımlar için kuyruklar geliştiren insanlara genişletilebilir.
warren

Thomas Limoncelli tarafından Sistem Yöneticileri için Zaman Yönetimi okuyun . E-posta ile çalışan herkes için okunması gerekir.
warren

10

Limoncelli ve ark. Tarafından Sistem ve Ağ Yönetimi Uygulaması başlamanız gereken yerdir. Teknolojiler gelecek ve gideceklerdir (ve gerektiği gibi kolayca Googled edilebilir), ancak bu kitaptaki bilgiler zamansızdır (ve paha biçilemez).


2
Ayrıca Frisch tarafından Temel Sistem Yönetimi.
Jason Antman

10

Başlamak İçin Birkaç Temel Araç

Google. Yok gerçekten. Google bir sistem yöneticisinin hayalini gerçekleştirir. İnternette çok miktarda bilgiyi kullanmanın daha iyi bir yolu yoktur. Ve kendinizi sadece "yeni başlayanlar için linux" aramasıyla sınırlamayın; gerçekleştirmeye çalıştığınız belirli bir göreviniz varsa, söz konusu şey için Google'ı kullanın. Genellikle ihtiyacınız olandan daha fazla bilgi bulacaksınız ve yeni başlayanlar için çoğu başka bir dil gibi görünecektir, ancak yaparak öğrenmek bir şeyleri hızlı bir şekilde almanın iyi bir yoludur.

Sekme tamamlanması. Linux komut satırı, tüm komutların, dizin ağaçlarının, dizin adlarının ve dosya adlarının sekmeli olarak tamamlanmasını sağlar.

Man sayfaları. Her komutun ve birçok sistem yapılandırma dosyasının (/ etc / fstab, / etc resolv.conf vb.) Man sayfaları vardır. Aradığınız şeyin olup olmadığını görmek için "man command_name" veya "man file_name" yazmanız yeterlidir. Oh ve "q" bir adam sayfasından çıkar.

SSH. Linux sistemine erişmenin en iyi yollarından biri. Sisteme fiziksel erişiminiz yoksa muhtemelen en iyi yol.

Ekran. Ekran, bir terminali birçok haline getirmenize, işleri yolunuzdan / arka plana almanıza izin veren ve daha sonra geri dönebilmeniz için işleri bırakmanıza izin veren harika bir küçük uygulamadır.

Nano. Yukarıda bunu zaten kullandığınızdan bahsettiniz, ama sadece iki sentime atılacağımı ve kabul ettiğimi düşündüm. Vi ve Vim ve bunların hepsi iyi ve hepsi, ama sevdiğim Nano'nun sadeliği. Linux dünyasının Not Defteri gibi.

Bul ve Grep. Bul arama için mükemmeldir için dosyalar, Grep arama için mükemmeldir içinde dosyalar. Her ikisi de çok basit şekillerde kullanılabilir ve her ikisi de çok karmaşık şekillerde kullanılabilir, ancak her ikisi de oldukça faydalıdır.

Sudo. Kök olmadan kök gibi davranmanızı sağlar. Çok kullanışlı.

Artı bir sonraki bölüm bağlamında anlatacağım birkaç araç daha ...

Düzenli Yapmanız Gereken Şeylerin Çeşitleri

Sisteminizi izleyin. Disk kullanımınızı izleyin (df yararlı bir komuttur ve belirli dizinler için de du), çalışan işlemlerinizi ve görevlerinizi (ps komutu ve üst komutlar aracılığıyla) izleyin, sistemlerinizde oturum açmış kullanıcıları izleyin (kullanıcılar ve kimler komutlar bunu size söyleyin) ve ağ kullanımınızı izleyin (kaktüsler gibi uygulamalar bunun için iyidir). Bir X Windows ortamına erişiminiz varsa, GKrellM'i her zaman çok kullanışlı bir hepsi bir arada sistem izleme aracı olarak buldum.

Yedekler. Tux aşkı için yedekler. Yedekleme yapılandırma dosyaları, yedekleme ana dizinleri, yedekleme uygulama verileri. Yedekler. Yaptığınız tek şey, verileri sunucudan CIFS / NFS paylaşımına başka bir kutuda ve harici bir sabitdiskte kopyalamak olsa bile. Ve evet, her yedeklemenin iki kopyasını saklamalısınız ve asla aynı medyada / sistemde olmamalısınız. Bunu yedeklemelerinizin yedeği olarak düşünün.

Yedeklerinizi kontrol edin. Verileri yedeklemelerinizden sistemlerinize geri yükleyebildiğinizden emin olmak için düzenli olarak kontrol edin. Boş / bozuk / eksik yedeklemeler gün kadar işe yaramaz.

Günlük dosyalarınızı kullanın. Dmesg, / var / log / messages ve / var / log döneminde gerçekten hemen hemen her şey. Bir şey düzgün çalışmıyorsa ve nedenini bilmiyorsanız, günlüklerin cevabı olmayabilir, ancak kesinlikle bulmanıza yardımcı olabilirler. Ve / var / log içindeki günlükler ve dizinler mantıklı bir şekilde adlandırılmıştır, bu nedenle doğru günlüğü bulmak zor olmamalıdır. Her günlük dosyasını sürekli olarak izlemenize gerek yoktur, ancak bunlara dikkat etmeniz sisteminizi sağlıklı ve güvenli tutmanıza yardımcı olacaktır.

Sisteminizi güncel tutun. Yazılımınızın güncellenmeden aylarca ve aylarca gitmesine izin vermeyin, çünkü yapılandırma dosyası sözdizimi veya bağımlılıkları değiştiğinde çok fazla baş ağrısına ve kırılmaya neden olabilir. Farklı dağıtımların farklı güncelleme programları (apt-get, yum, vb.) Vardır, ancak hangisini kullanırsanız kullanın, öğrenin ve düzenli olarak kullanın.

Sisteminizi güvende tutun. Sisteminize istenmeyen erişimi ve kullanımı önlemek için iptables, PAM, hosts.allow / hosts.deny ve benzeri şeyleri kullanın.

Öğrenmeyi asla bırakma. Daha önce söylediğim bir şeye devam etmek (yaparak öğrenme), göz atmanız gereken şey sanal makinelerdir. VirtualBox'ı indirin (veya VMWare lisanslarınız daha da iyiyse) ve kendinizi bir Linux sanal makinesi yapın. Gerçekten istediğiniz herhangi bir dağıtımı seçebilirsiniz, ancak açıkçası muhtemelen ortamınızda kullandığınız biriyle gitmek en mantıklıdır. Sanal makinede oynayın .. Sandbox gibi kullanın. Bir şeyler ayarlayın, bir şeyler kırın, araştırın, öğrenin. Bir sanal alan VM'sinin güzelliği, başına ne geldiği önemli değildir. Tamamen hortumlarsanız, yeni bir tane yapın. Veya orijinali kurduktan sonra yedek bir kopyasını saklayın ve gerektiğinde yeniden kullanın.

Bu konudaki diğer gönderilerden bazılarının bahsettiği ve bahsettiği gibi, bu listeler gerçekten neredeyse sonsuz olabilir, ancak umarım bu iyi bir başlangıç ​​yapmanızı sağlar.


Sözdizimini örnek "man" komutlarımdan çıkardı, bu yüzden onları biraz ayarladım. Sadece "komut_adı" ve "dosya_adı" yerine uygun komut veya dosyayı koyabilirsiniz.
yalıçapkını

Bazen Not Defteri'nde ve kendimi ESC yazarken buluyorum: wq sorun bu nadir bir durum değil. Acaba neden ...
Mircea Vutcovici

8

Yeni başlıyorsanız ve özellikle bazı Debian (Ubuntu'nun merkezinde Debian olduğu) sistemleriniz olduğundan, Debian Referansını şiddetle tavsiye ederim . Sistem yönetiminin hemen hemen her yönüne mükemmel bir genel bakış sağlar ve bunlar gibi küçük bir sistem setinin bakımı hakkında bilmeniz gereken hemen hemen her şeyi kapsamalıdır.

Ayrıca pQd'nin tüm noktalarına katılıyorum ve daha spesifik olarak, tüm süreçlerinizi ve yapılandırmalarınızı belgelemek için bir wiki kurmanızın iyi bir fikir olacağını düşünüyorum. Kuruluşumda Trac kullanıyoruz, ancak herhangi bir wiki motoru kullanmalı, küçük kodlar ve komut listeleri için yararlı olduğundan kaynak kodunu görüntülemek için güzel bir yol olduğundan emin olun.


3

Dürüst olmak gerekirse, Linux Sistem Yönetimi sadece 'atlayabileceğiniz' bir alan değildir.

Eğer varsa zorunda olsa da, konuyla ilgili birkaç iyi kitap var. O'Reilly'de başlamanız gereken iki kitap (Linux Ağ Yönetimi ve Linux Sistem Yönetimi) vardır.

Şahsen, ben olsaydım birkaç gün farklı dağıtımlarla uğraşarak, yazılım yükleyerek, Nagios / Cacti / Apache2 / SSH / NFS türü şeyleri ayarlayarak ve belki de bir çeşit betik dili öğreniyordum (Perl kullanıyorum, ama pek çok yöneticim Python kullanmayı tercih ediyor, ama ne öğrenmek istediğiniz size kalmış.

Ve kesinlikle komut satırını öğrenin. Bir koltuk değneği olarak grafik araçlara düşmeyin.

Vi öğrenin. Sadece temel düzenlemeleri yapmak için yeterince iyi öğrenseniz bile, vi öğrenmek önemlidir, çünkü bazen Vim / Nano / Emacs içermeyen bir sisteme takılı kalırsınız. Bu durumda, bir veya iki günlüğüne öğrenmekten mutlu olacaksınız vi.

Herhangi bir yardıma ihtiyacınız olursa bana e-posta göndermekten çekinmeyin (e-postam [güvenlik nedeniyle kaldırıldı]) - ServerFault dışında size yardımcı olmaktan memnuniyet duyarız.


Perl'i biliyorum; Ben biliyorum / bazı / vi (nasıl eklemek ve kaydetmek ve çıkmak - nano tercih). Durumum neyse ki bir 'düşük basınç' olanı, bu yüzden bir sys-admin guru olmak zorunda değilim, ben içine büyüyebilir (ve sunucu hatası var ve (güven için teşekkürler) ne zaman sormak gerçekten sıkışmış (ayrıca çok yararlı bir LKG'ye ait) İhtiyacım olan şey, başlamak için bu birkaç temel araç ve düzenli olarak yapmam gereken şeyler, örneğin: kontrol etmek için ne zaman, ne zaman ve ne izleyeceğiniz, tür 'başlamak için doğru yer ve ben ihtiyacım olarak reklam yapabilirsiniz
slashmais

Sonra Kaktüsler, Nagios, Snort ve Postfix'i kurmanızı öneririz. Bunlar muhtemelen sisteminizi izlemek için en çok kullandığınız dört araç olacaktır. Bunları ayarlamak, günlük dosyalarını manuel olarak kontrol etmek için size çok zaman kazandıracaktır. Günlükleri manuel olarak kontrol etmeye gelince, / var / log / içindeki herhangi bir şey muhtemelen iyi bir bahistir. Size işaret edebileceğim belirli bir dosya yok, ancak bir şey bir şeyle düzgün çalışmıyorsa / var / log'u kontrol etmek iyi bir bahis olabilir
Michael Pobega

Bir zamanlar nano'yu da tercih ettim, slashmais. Dosyaları her zaman düzenlemeye başladığınızda, vi'yi daha ayrıntılı olarak öğrenmek istersiniz. Yeterince alamıyorum ...
Kyle Smith

3

Sunuculara bir uygulama yüklemek konusunda rahatsanız , webmin'i günlüğe kaydetme ve yapılandırma için bir "tek durak" mağazası sağladığı için düşünün . SSL kullanarak yüksek dereceli bir port üzerinden çalışacak şekilde ayarlayın ve kontrol kolaylığı için kendini öder.


2

Size sistem ve ağ yönetiminin en büyük sırrını söyleyeceğim. Hazır mısın? Tamam, işte burada:

Temel bilgileri öğrenin. Açıklayayım.

Herkes (ya da hemen hemen) bu yazılımın ya da bu yazılımın ne yaptığını ve x, y ya da z'nin çalışmasını sağlamak için bu araç üzerinde bu düğmeye nasıl basacağını öğrenebilir. Bu özel bir şey değil.

Eğer iyi bir sys / net yöneticisi olmak istiyorsanız , kaput altı şeyleri öğrenin. Tipik bir ağ bağlantısındaki olayların sırası nedir? Çerçeve ve paket arasındaki fark nedir? Unix sisteminde yük ortalaması gerçekten ne anlama geliyor? Bir makine için tipik önyükleme işlemi nedir (başından sonuna kadar takip ederseniz, tek başına bir bilgi zenginliği sağlayacaktır).

Temelleri anladıktan ve gerçekten iyi anladıktan sonra, iyi bir temelin üzerine bilgi koymak çok daha kolaydır. Ama en tepeden başlar ve altında neler olduğunu bilmeden belirli yazılım parçalarını öğrenmeye çalışırsanız, bu sizi temelde başka bir yüksek teknoloji hizmetli hademe yapar.


2

Öncelikle günlüklerinizi bulun. / Var / log / syslog'da birkaç günlük gördüm. Bir şeyler yanlışsa, büyük olasılıkla günlüklerde ilgili bazı bilgiler olacaktır. Ayrıca, e-posta ile uğraşıyorsanız, / var / log / mail komutunu da unutmayın. Uygulamalarınızı iki kez kontrol edin, bunlardan herhangi birinin syslog dışında gülünç bir yere giriş yapıp yapmadığını öğrenin.

Vi becerilerinizi geliştirin. Nano, bu günlerde tüm havalı çocukların kullandığı şey olabilir, ancak deneyim bana vi'nin sistemde olduğu garanti edilen tek metin editörü olduğunu öğretti. Klavye kısayollarına alıştıktan ve kendi tetikleyicilerinizi oluşturmaya başladığınızda, vi sizin için ikinci bir doğa gibi olacak.

Kılavuz sayfasını okuyun ve her makinede aşağıdaki komutları çalıştırın ve sonuçları belgelerinize kopyalayı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

Bu, belgelerinizin başlangıcı olacaktır. Bu komutlar ortamınızı bilmenizi sağlar ve sorunları daha sonra daraltmanıza yardımcı olabilir.

Günlüklerinizi gözden geçirin ve "hata" veya "başarısız" arayın. Bu size neyin gerektiği gibi çalışmadığı hakkında bir fikir verecektir. Kullanıcılarınız size neyin yanlış olduğu konusunda fikir verecektir, söylediklerini yakından dinleyecektir. Sistemi anlamıyorlar, ama sizden farklı bir şekilde görüyorlar.

Bir sorununuz olduğunda, bu sırayla bir şeyler kontrol edin:

  1. Disk Alanı (df -h): Linux ve Linux üzerinde çalışan bazı uygulamalar, disk alanı bittiğinde çok garip şeyler yapar. % 100 dolu bir dosya sistemini kontrol edip bulana kadar ilgisiz görünebilir.

  2. Top: Top, tüm mevcut CPU döngülerinizi yiyerek orada sıkışmış bir işleminiz olup olmadığını size bildirecektir. Hiçbir şey, herhangi bir uzun süre% 99 CPU kullanmamalıdır. Bu meşru bir süreçse, muhtemelen yukarı ve aşağı dalgalanmalı. Zirvede olduğunuzda, kontrol edin ...

  3. Sistem Yükü: Standart bir sunucuda veya iş istasyonunda sistem yükü normalde 3'ün altında olmalıdır. Sistem yükü CPU, bellek ve G / Ç'ye bağlıdır.

  4. Bellek (free -m): Linux'ta RAM kullanımı biraz farklıdır. Neredeyse tüm RAM'inin tükendiği bir sunucuyu görmek nadir değildir. Panik yapmayın, bunu görürseniz, çoğunlukla önbellektir ve gerektiğinde temizlenecektir. Ancak, kullanılan takas miktarına çok dikkat edin. Mümkünse, bunu olabildiğince sıfıra yakın tutun. Yetersiz bellek her türlü performans sorununa yol açabilir.

  5.  Günlükler: Günlüklerinize geri dönün, -500 / var / log / messages kuyruğunu çalıştırın | okuyun ve neler olup bittiğini görün. Umarım, günlükler sizi bir sonraki gitmeniz gereken yöne yönlendirebilir.

Bakımlı bir Linux sunucusu yıllarca sorunsuz çalışabilir. Sadece 748 gündür çalışmakta olan birini kapattık ve uygulamayı kapattık çünkü uygulamayı yeni donanıma taşıdık. Umarım, bu ayaklarınızı ıslatmanıza ve iyi bir başlangıç ​​yapmanıza yardımcı olacaktır.

Son bir şey, her zaman değiştirmek istediğiniz bir yapılandırma dosyasının bir kopyasını oluşturun ve her zaman değiştirdiğiniz satırı kopyalayın ve orijinali yorumlayın, değiştirme nedeninizi ekleyin. Bu, ilerledikçe dokümantasyon alışkanlığına sahip olmanızı sağlar ve saklanmanızı 9 ay boyunca kurtarabilir.


1

iyi soru.

Benim tavsiyem. Kabuğunuzu kullanmayı öğrenin.

Standart bash. Belgelere girmek için yardım yazabilirsiniz.

boru öğrenmek "|" çıktıyı bir komuttan ikinci bir komutun girişine almak için.

Son bir şey, çok uzun zaman önce bana yardımcı oldu: Linux One Page Manual

sıkı çalış, asla pes etme.

3-4 yıl içinde yeterli bilgiye sahip olacaksınız ve birçok şey kendisinden geliyor :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.