فروردین ۱۶ ۱۳۹۷

نصب collectd و collection3 به همراه nginx

مانیتورینگ

یکی از ابزارهای مهم در Capacity Planning سرور ابزارهای Monitoring هستند. تعداد زیادی نرم‌افزار و سرویس برای Monitoring سخت افزار، سیستم عامل و سرویس ها وجود دارد. در اینجا نرم افزار Collectd را معرفی می‌کنم که یک نرم افزار ساده با کلی پلاگین آماده است که می یاد از منابع مورد نظر شما، شروع به جمع آوری اطلاعات می کنه و در فایل‌های rrd ذخیره می کنه. این فایل‌ها را می توان به نمودار تبدیل کرد و یا خروجی xml ازشون گرفت.

داخل پروژه Collectd در github ابزاری که با perl نوشته شده وجود دارد به نام collection3 که به شما اینترفیس تحت وبی از داده های Collectd می دهد. متاسفانه به دلیل آنکه وابستگی های لازم برای راه اندازی Collection3 نیاز است در CentOS وجود ندارد، Collection3 در CentOS از بسته Collectd حذف شده است. این راهنما به شما کمک می کند تا Collection3 را هم در Debin/Ubuntu و هم در CentOS نصب کنید.

توجه: این راهنما برای دانشجویان دوره LPIC2 تهیه شده ولی سعی شده به صورت کلی نوشته بشه که همه بتونند استفاده کنند.

نصب collectd و nginx در Debian/Ubuntu

# apt-get install collectd nginx

نصب collectd و nginx در CentOS 7.x

در CentOS پلاگین‌های Collectd را باید جدا نصب کنید. برخلاف Debian که به همراه بسته اصلی نصب می شوند. در اینجا سه پلاگین rrd و apache و mysql را برای نمونه نصب کردیم.

# yum install epel-release

# yum install collectd collectd-rrdtool collectd-apache collectd-mysql nginx

پیکربندی Collectd

در این مقاله به پیکربندی Collectd نخواهیم پرداخت. دوستانی که در دوره LPIC2 حضور داشتند مطمئنا پیش زمینه لازم برای پیکربندی collectd را دارند. شاید در مطلب جدایی در مورد پیکربندی Collectd هم صحبت کردم.
تنها موضوعی که باید در تنظیمات حتما انجام بدید فعال کردن ماژول rrd هست.

 

نصب Collection3 در Debian/Ubuntu

در توزیع‌های Debian base بسته collectd به صورت کامل نصب می شود و در فایل‌های مرتبط با آن collection3 نیز موجود است. پس تنها برای استفاده از collection3 کافیه وابستگی های اون را هم نصب کنید و بعد nginx را پیکربندی کنید.

# apt-get install  librrds-perl libconfig-general-perl libhtml-parser-perl libregexp-common-perl libjson-perl
# cp -r /usr/share/doc/collectd/examples/collection3 /var/www/html/

 

نصب Collection3 در CentOS 7.x

چون Collection3 در بسته collectd موجود در مخازن epel حذف شده است، باید source کامل بسته collectd را بگیرید و فایل‌های collection3 را از source آن در پوشه nginx کپی کنید.

# cd /usr/src
# git clone https://github.com/collectd/collectd.git
# cp -r /usr/src/collectd/contrib/collection3 /var/www/html/

 

پیکربندی nginx

من برای صفحه مانیتورینگ سرور یک دامنه اختصاص دادم به اسم monitor.linuxmotto.local و تنظیمات nginx بر مبنای اون نوشتم. این دامنه خوب قطعا وجود نداره برای همین حتما تو etc/hosts/ اضافه اش کنید.
در ضمن در Debian باید تو پوشه etc/nginx/sites-available/ یک فایل conf. بسازید و این تنظیمات را اضافه کنید و در CentOS در پوشه etc/nginx/conf.d/

server {
listen 80;
server_name monitor.linuxmotto.local;

location ~ .cgi$ {
root /var/www/html/collection3/;
expires off;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

location / {
root /var/www/html/collection3;
index bin/index.cgi;
}
}

 

نصب وابستگی های مورد نیاز collection3

این بخش از راهنما مخصوص توزیع CentOS است. و به این دلیل است که fcgi در nginx در توزیع Centos پشتیبانی نمی شود.

# yum install perl-FCGI perl-HTML-Parser rrdtool-perl perl-Config-General lm_sensors collectd-rdis collectd-rrdtool perl fcgi-devel spawn-fcgi perl-Collectd collectd-nginx collectd-mysql

 

نصب fcgiwrap در CentOS 7

# yum install dh-autoreconf fcgi-devel pkgconfig
# cd /usr/local/src/
# git clone git://github.com/gnosek/fcgiwrap.git
# cd fcgiwrap/
# autoreconf
# ./configure
# make
# make install

اگر به خطای زیر خوردید مطمئن شوید که pkgconfig به درستی نصب شده است و دستور autoreconf -i را به جای autoconf برای تکرار روند انجام دهید

# autoconf
configure.ac:32: error: possibly undefined macro: AC_DEFINE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:39: error: possibly undefined macro: AM_CONDITIONAL

# autoreconf -i

# yum install spawn-fcgi

# vi /etc/sysconfig/spawn-fcgi
FCGI_SOCKET=/var/run/fcgiwrap.socket
FCGI_PROGRAM=/usr/local/sbin/fcgiwrap
FCGI_USER=apache
FCGI_GROUP=apache
FCGI_EXTRA_OPTIONS=”-M 0770″
OPTIONS=”-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid — $FCGI_PROGRAM”

# usermod -a -G apache nginx
# systemctl enable spawn-fcgi
# systemctl start spawn-fcgi

بعد از همه این کارها سرویس‌ها را ریستارت کنید.

systemctl restart nginx collectd

الان باید تو مرورگرتون به collection3 از طریق آدرس monitor.linuxmotto.local دسترسی داشته باشید.


بهمن ۲۱ ۱۳۹۶

فهرست مطالعه برای System Administrator ها – نسخه کامل شونده

 

مقدمه سوم: این نوشته از این نسخه به بعد به صورت پست جدید منتشر نخواهد شد و همین نوشته دائما به روزرسانی می گردد.  در این نسخه بخش سیستم عامل Windows و Linux اضافه شد. بخش Linux بسیار گسترده خواهد شد. این پست را هر چند هفته یک بار مرور کنید تا در جریان به روز رسانی آن قرار گیرید.
علاوه بر آن تصمیم گرفتم که بخش‌های مجازی سازی و DevOps را هم به این فهرست اضافه کنم.

مقدمه دوم: بخش مربوط به آشنایی با تجهیزات Cisco و فراگیری Routing و Switching را اضافه کردم.

مقدمه اول: مدتها بود که دلم می خواست که یه فهرست مطالعه (Reading List) برای System adminstrator ها و Network Administrator ها در حد تجربه خود بنویسم. هی عقب می افتاد. امروز اولین پستش را میخوام بزنم.

چند نکته و ویژگی در مورد این لیست هست:
۱- در برخی تجربه‌ها در این سالها متوجه شدم که باید خیلی قبل تر مطلبی را می خوندم و یا باید می دونستم، ولی چیزی در موردش نمی دونم. برای همین به این لیست اضافه کردم
۲- این لیست یک تلاش کوچیک برای آکادمیک کردن مسیر رشد و یادگیری یک مدیر سیستم یا System Administrator است. چون یه دوستی تذکر داده بودند که کتاب‌های آقای ملکیان بسیار تئوری است و باید سراغ کتابهای عملی تر رفت، من تاکید می کنم من بسیار به تئوری اهمیت می دم و تجربم اینه که هرچه تسلط تئوری و علمی بالاتری به یک موضوع داشته باشی، پیاده سازی تمیز تر و مطمئن تری خواهی داشت.
۳- تصمیم دارم این لیست را تاجایی پیش ببرم که شبیه یک دوره لیسانس سه سال یک نفر را پر کنه و یک نفر بتونه سه سال آموزش خودشو برای ورود و یا پیشرفت در بازار کار برنامه ریزی کنه.
۴- شروع لیست با کتاب‌های فارسی است. شاید انتقاد خیلی‌ها را به همراه داشته باشه، ولی من معتقدم یادگیری پایه‌ها، مبانی و اصطلاحات یک تخصص با زبان مادری کار و پیشرفت را خیلی تسهیل می‌کنه. البته مطمئنا در یک جایی به بعد مطالعه ترجمه ها دیگر کارایی لازم را نداره و مطمئنا در ادامه تغیریبا همه کتابها انگلیسی خواهد بود.
۵- این لیست برای هنرستانی‌های رشته کامپیوتر و کاردانی و کارشناسی کامپیوتر مناسب است.
۶- سعی می‌کنم تاجایی که امکان داره دلیل پیشنهاد مطالعه هر کتاب و توانایی هایی که بعد از اون باید بدست بیارید را مطرح کنم
۷- از این نسخه از مقاله به بعد سعی می کنم، لینک خرید کتاب به همراه عکس جلد آن را هم بزارم.

فهرست اول
هدف: آشنایی با مفاهیم، اصطلاحات و ابزارهای پایه در شبکه

۱- راهنمای مطلق +Network  – مترجم بهرام پاشایی
در بین کتابهای +Network جزو بهترین ‌ها بود. البته کمی قدیمی است. این کتاب را به خاطر پیشنهاد «saravan» در کامنت‌های پست قبلی اضافه کردم. شما پس از مطالعه این کتاب (یا شاید همزمان) باید به چند تا مهارت عملی هم برسید
الف- عیب یابی ابتدای شبکه و کار کردن با ابزارهای ping, traceroute, netstat, nslookup
ب- کار با ابزارهای ساده کابل کشی (cabling)، مانند Crimper، Striper و … . پیشنهاد می کنم جعبه ابزاری برای خودتون تهیه کنید که شامل ابزارهای اولیه کابل کشی باشه

۲- اصول طراحی شبکه های کامپیوتری – احسان ملکیان
یکی از بهترین کتاب‌ها است که دید خوبی در مورد انواع شبکه بهتون می‌ده. برای شروع کتاب خیلی خوبیه

۳- اصول مهندسی اینترنت – احسان ملکیان
در این کتاب از لایه های شبکه، پروتکل ها و سرویس ها صحبت شده. ولی تاکید من تو مطالعه این کتاب برای اینه که جزو معدود کتابهایی هست که مفهوم سرویس را می‌تونه برای یک تازه کار روشن کنه و توضیحات خوبی داره

۴- نفوذگری در شبکه و روشهای مقابله – احسان ملکیان
یکی از کتابهای خوب فارسی هست که یک تازه کار را با زبان فنی امنیت آشنا می‌کنه.

این چهار کتاب تئوری،  ذهن شما را برای مطالعه عمیق‌تر آماده می کنه. یکی موانع یادگیری آشنا نبودن به کلمات و اصطلاحات، دقیقا جایی که کلمه مهمی را شما در کتاب یا مقاله ای نمی فهمید، جایی هست که از اونجا به بعد مطلب نمی گیرید و بد می گیرید 😉

معرفی کتاب مرجع
TCP/IP Illustrated, Vol. 1: The Protocols – نوشته W. Richard Stevens
یکی از کتابهای خوب به عنوان مرجع که قدیمی هم هست ولی همچنان به نظرم می تونه مفید باشه. داشتان این کتاب کنارتون و مطالعه پروتکل ها خیلی به درکتون از شبکه کمک می کنه




فهرست دوم
بخش اول – شبکه یا Networking
هدف: معرفی کتاب‌های مناسب برای آشنایی با محصولات Cisco و  فراگیری مفاهیم Routing و Switching (ممنون از دوست و همکار خوبم آقای مهندس عشاقی بابت در دسترس قرار دادن کتاب‌های نسخه جدید)
چه قرار باشه System Administrator باشید و چه Network Administrator ، مطالعه و یادگیری Routing و Switching توصیه می شه. درک لایه های ۲ و ۳ شبکه کمک بسیار زیادی در درک فایروال ، ساختار  شبکه و اتصالات و عیب یابی ارتباطی شبکه می کنه. علاوه برآن در سازمان‌های و شرکت‌هایی که فعالیت اصلی آنها IT نیست. انتظارشون از Network Admin و Sysadmin یکی هست.

۵- CCENT/CCNA ICND1 100-105 Official Cert Guide
این کتاب اولین کتاب زبان اصلی در این فهرست است و شروع خوبی برای شروع آشنایی با کلمات اصلی. در این کتاب بخشی زیادی از آنچه در کتاب‌های قبلی معرفی شده آمده و ذهن شما با خواندن آن برای مطالعه کتاب‌های بعدی آماده می شود. علاوه بر آن آشنایی ابتدایی با پیکربندی تجهیزات Cisco پیدا می کنید، در مورد  IPv6 مطالبی می خونید و شروع با یادگیری Routing و Swiching می کنید.

۶- CCNA Routing and Switching ICND2 200-105 Official Cert Guide
در این کتاب بیشتر وارد جزییات پروتکل های Routing و Switching می شیم و با مفاهیم جدیدی مانند SDN و Cloud (البته اگه دیگه جدید حسابشون بکنیم. 🙂 ) آشنا می‌شوید.

۷- CCDA 200-310 Official Cert Guide
طراحی (Design) یکی از اون سرفصل‌هایی است که دانستنش یک پله دید شما را نسبت به ساختار شبکه وسرویس‌ها بالا می بره. داشتن دید طراحی سطح کار شما را افزایش می ده و باعث می شه پیاده سازی پایدارتری داشته باشید. البته شاید بهتر باشه خوندن این کتاب را به آخر لیست منتقل کنیم؛ چرا که هر چه دانش پایه و تجربه بیشتری داشته باشید، برداشت کاملتر و دقیق تری نسبت به این کتاب (طراحی – Design) خواهید داشت.
به اضافه اینکه در ممالک فرنگ هم خیلی به اینکه شما Design بدونید اهمیت می‌دند؛ مخصوصا در مورد Netadmin ها این یه موضوع اساسی هست و در صورتی که در عنوان Network Administrator به دنبال کار هستید رزومه شما بدون دانستن طراحی ارزش پایینی پیدا می کند. البته خوب در کشور ما کمتر شرکت یا سازمانی به این موضوع اهمیت می دهد یا اساسا به وجود این موضوع واقف است.



بخش دوم – مدیریت سیستم‌های ویندوزی یا Windows Sysem Administration
هدف:
شما چه در حوزه System Administration و چه Network Administration فعالیت کنید، به آشنایی با سیستم عامل Windows و سرویس‌های مهم Windows ای نیاز پیدا خواهید کرد. حتی اگر قصد داشته باشید به طور خاص در زمینه Linux System Administration فعالیت کنید. به هر حال بخش بزرگی از کاربران از این سیستم عامل استفاده می کنند و در بسیاری از مواقع موضوع محیط‌های مختلط پیش خواهد آمد و نیاز است تا با سیستم عامل Windows و سرویس‌های آن آشنایی داشته باشید. نسخه ۲۰۱۶ کتاب‌ها را هم می‌تونید مطالعه کنید.

۸- Exam Ref 70-410 Installing and Configuring Windows Server 2012
آزمون ۴۱۰-۷۰ اولین آزمون از آزمون‌های MCSA است. یکی از فصل‌هایی که در محیط‌های مختلط بسیار مورد استفاده دارد فصل Install and administer Active Directory و فصل‌ بعد از آن است. این دو فصل را با وسواس بیشتری مطالعه و تست کنید.

۹- Exam 70-411 Administering Windows Server 2012
دومین آزمون از سری آزمون‌های MCSA.

۱۰- Exam Ref 70-412 Configuring Advanced Windows Server 2012 R2 Services
سومین آزمون از سری آزمون‌های MCSA

۱۱- Exam Ref 70-413 Designing and Implementing a Server Infrastructure
اولین آزمون از سری آزمون‌های MCSE است.

۱۲- Exam Ref 70-414 Implementing an Advanced Server Infrastructure
دومین آزمون از سری آزمون‌های MCSE است.



 

بخش سوم – مدیریت سیستم‌های لینوکس یا Linux System Administration
هدف: این بخش ار مطلب می شه بخش اصلی و هدف این مستند است. یعنی تبدیل شدن به یک Linux System Administrator. در این بخش به معرفی کتاب‌های مناسب برای یادگیری سیستم عامل لینوکس و سرویس‌های لینوکسی و متن‌باز/آزاد خواهیم پرداخت

۱۳- Linux Essentials – منتشر شده توسط Linup
این کتاب مربوط به اولین آزمون موسسه LPI کاناداست. کتاب مناسبی برای شروع کار را لینوکس و خط فرمان می باشد که به صورت آزاد منتشر شده است.

۱۴- LPIC-1 Linux Professional Institute Certification Study Guide – انتشارات Sybex چاپ چهارم ۲۰۱۵
این کتاب مربوط به آزمون LPIC-1 ، اولین آزمون حرفه ای موسسه LPI کاناداست. این کتاب دو آزمون ۱۰۱-۴۰۰ و ۱۰۲-۴۰۰ را پوشش می دهد و شروع بسیار خوبی برای تبدیل شدن به یک Junior Linux System Administrator است.

۱۵-Getting Started with MariaDB – انتشارات Packt Publishing چاپ دوم
این کتاب یک شروع خوب برای کار با دیتابیس است. یک مدیر سیستم به میزان مناسبی باید از نحوه کار با دیتابیس و مدیریت سرویس آن مطلع باشد.

۱۶- LPIC-2 Linux Professional Institute Certification Study Guide, 2nd Edition – انتشارات Sybex چاپ دوم ۲۰۱۶
این کتاب یک شروغ برای تبدیل شده شما به یک Senior Linux SystemcAdministrator است. نکته مهم آن است که تنها یک شروع است و برای عمیق شدن در سرفصل‌های آن برای هر سرویس نیاز است که شما کتاب و مستندات مرتبط با آن را به طور مجزا مطالعه کنید. در ادامه به معرفی کتاب در مورد سرویس‌ها مهم خواهیم پرداخت.



۱۷- Pro DNS and ‌Bind 10 – انتشارات Apress
این کتاب یکی از بهترین کتاب‌ها در مورد سرویس DNS و به طور خاص سرویس Bind است. آن را به طور کامل مطالعه کنید و در خوندنش تنبلی نکنید.

۱۸- Then Book of Postfix – انتشارات No Starch سال ۲۰۰۵
یک کتاب خیلی خوب در مورد Postfix به همراه چند سناریوی مفید و پیاده سازی آن. شروع خوبی برای کار کردن با سرویس Email است.

۱۹- Dovecot: POP3/IMAP Servers for Enterprises and ISPs
این کتاب تنها کتاب موجود در مورد Dovecot است که متاسفانه هنوز به صورت pdf موجود نیست و باید به صورت چاپی تهیه کنید. در این کتاب به معرفی سرویس dovecot و سرویس‌های pop و imap می پردازند.



۲۰- Mastering OpenLDAP – انتشارات Packt Publishing
یک کتاب بسیار خوب برای فراگیری سرویس OpenLDAP. برای مطالعه این کتاب باید زمان مناسبی را اختصاص بدید. در نرم افزارهای سازمانی، در محیط‌های مختلط و شبکه های بزرگ بسیار مورد استفاده است.

۲۱- Mastering MariaDB – انتشارات Packt Publishing سال ۲۰۱۴


فهرست سوم
بخش اول – HA and Virtualization
استفاده از مجازی سازی در مدیریت سرورها تبدیل به امری معمول شده است. یک مدیر سیستم باید با تکنولوژی‌ها و محصولات مجازی سازی آشنا باشد. محصولات متن باز و آزاد و محصولات غیر متن باز مانند VMWare

 

بخش دوم – DevOps
هدف: یکی از سرفصل‌های شغلی بسیار داغ در سراسر دنیا DevOps است. یک سرفصل شغلی جدید با جایگاه‌های کاری بسیار در داخل و خارج از ایران. در این فهرست در ابتدا تنها به معرفی آن خواهیم پرداخت و در صورتی که زمانی بود راهنمای مطالعه آن را پیش می بریم.


دی ۱۲ ۱۳۹۶

راه اندازی صفحه status سرویس nginx

خیلی از سرویس‌ها یک صفحه status دارند که به شما وضعیت فعلیشون شامل چیزایی مثلا تعداد درخواست همزمان، درخواست های در حال اتمام و از این قبیل را می دهند.

سرویس nginx هم یه صفحه status داره . تنها مشکلش اینه که نسخه غیر تجاریش دارای صفحه status خیلی کوچیکیه و داده زیادی در اختیار نمی ده ؛ برخلاف Nginx Plus که صفحه status مفصلی داره.

برای فعال کردن صفحه status سرویس nginx کانفیگ زیر را به یکی از virtualhost هاتون اضافه کنید (virtualhost پیشفرض بهتره)

location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}

پس از اضافه کردن این کانفیگ nginx -s reload را بزنید و از طریق لینک زیر بازش کنید.

http://127.0.0.1/nginx_status

خروجی مشابه زیر خواهید دید. خیلی از ابزارهای مانیتورینگ از همین داده ها برای کشیدن نمودارهای وضعیت Nginx استفاده می‌کنند.

Active connections: 6
server accepts handled requests
۶ ۶ ۱
Reading: 0 Writing: 1 Waiting: 5


دی ۱۲ ۱۳۹۶

تبدیل log_format از Apache به Nginx

تا اومدم LogFormat ای که تو Apache تعریف کرده بودم را به log_format سرویس nginx تبدیل کنم، پوستم کنده شد.  برای همین اینجا گذاشتم شاید به دردتون بخوره. من LogFormat را به صورت Json برای ارسال به graylog آماده کرده بودم.

LogFormat سرویس Apache2.4
من LogFormat را به صورت زیر تعریف کرده بودم و برای پیدا کردن لیست متغیر هام از اینجا استفاده کردم.

LogFormat “{ \”version\”: \”1.1\”, \”host\”: \”%V\”, \”short_message\”: \”%r\”, \”timestamp\”: %{%s}t, \”level\”: 6, \”_user_agent\”: \”%{User-Agent}i\”, \”_source_ip\”: \”%a\”, \”_duration_usec\”: %D, \”_duration_sec\”: %T, \”_request_size_byte\”: %O, \”_http_status\”: %s, \”_http_request_path\”: \”%U\”, \”_http_request\”: \”%U%q\”, \”_http_method\”: \”%m\”, \”_http_referer\”: \”%{Referer}i\” }” graylog2_access

تبدیل به فرمت log_formate در nginx
نتیجه شد کانفیگ زیر، تنها نکته اش اینه که معادل %U در nginx وجود نداشت و اون را با کمک map ساختمش. برای دیدن لیست متغیر های nginx به اینجا مراجعه کنید. ولی لیستش مثل Apache خیلی کامل نیست.

map $request_uri $request_uri_path {
“~^(?P[^?]*)(\?.*)?$” $path;
}

log_format graylog2_access “{ \”version\”: \”1.1\”, \”host\”: \”$realip_remote_addr\”, \”short_message\”: \”$request\”, \”timestamp\”: $time_iso8601, \”level\”: 6, \”_user_agent\”: \”$http_user_agent\”, \”_source_ip\”: \”$remote_addr\”, \”_duration_usec\”: $request_time, \”_request_size_byte\”: $bytes_sent, \”_http_status\”: $status, \”_http_request_path\”: \”$request_uri_path\”, \”_http_request\”: \”$request_uri\”, \”_http_method\”: \”$request_method\”, \”_http_referer\”: \”$http_referer\” }” ;

 


آذر ۲۰ ۱۳۹۶

فهرست مطالعه برای System Administrator ها – نسخه ۳

 

مقدمه دوم: بخش مربوط به آشنایی با تجهیزات Cisco و فراگیری Routing و Switching را اضافه کردم.

مقدمه اول: مدتها بود که دلم می خواست که یه فهرست مطالعه (Reading List) برای System adminstrator ها و Network Administrator ها در حد تجربه خود بنویسم. هی عقب می افتاد. امروز اولین پستش را میخوام بزنم.

چند نکته و ویژگی در مورد این لیست هست:
۱- در برخی تجربه‌ها در این سالها متوجه شدم که باید خیلی قبل تر مطلبی را می خوندم و یا باید می دونستم، ولی چیزی در موردش نمی دونم. برای همین به این لیست اضافه کردم
۲- این لیست یک تلاش کوچیک برای آکادمیک کردن مسیر رشد و یادگیری یک مدیر سیستم یا System Administrator است. چون یه دوستی تذکر داده بودند که کتاب‌های آقای ملکیان بسیار تئوری است و باید سراغ کتابهای عملی تر رفت، من تاکید می کنم من بسیار به تئوری اهمیت می دم و تجربم اینه که هرچه تسلط تئوری و علمی بالاتری به یک موضوع داشته باشی، پیاده سازی تمیز تر و مطمئن تری خواهی داشت.
۳- تصمیم دارم این لیست را تاجایی پیش ببرم که شبیه یک دوره لیسانس سه سال یک نفر را پر کنه و یک نفر بتونه سه سال آموزش خودشو برای ورود و یا پیشرفت در بازار کار برنامه ریزی کنه.
۴- شروع لیست با کتاب‌های فارسی است. شاید انتقاد خیلی‌ها را به همراه داشته باشه، ولی من معتقدم یادگیری پایه‌ها، مبانی و اصطلاحات یک تخصص با زبان مادری کار و پیشرفت را خیلی تسهیل می‌کنه. البته مطمئنا در یک جایی به بعد مطالعه ترجمه ها دیگر کارایی لازم را نداره و مطمئنا در ادامه تغیریبا همه کتابها انگلیسی خواهد بود.
۵- این لیست برای هنرستانی‌های رشته کامپیوتر و کاردانی و کارشناسی کامپیوتر مناسب است.
۶- سعی می‌کنم تاجایی که امکان داره دلیل پیشنهاد مطالعه هر کتاب و توانایی هایی که بعد از اون باید بدست بیارید را مطرح کنم
۷- از این نسخه از مقاله به بعد سعی می کنم، لینک خرید کتاب به همراه عکس جلد آن را هم بزارم.

فهرست اول
هدف: آشنایی با مفاهیم، اصطلاحات و ابزارهای پایه در شبکه

۱- راهنمای مطلق +Network  – مترجم بهرام پاشایی
در بین کتابهای +Network جزو بهترین ‌ها بود. البته کمی قدیمی است. این کتاب را به خاطر پیشنهاد «saravan» در کامنت‌های پست قبلی اضافه کردم. شما پس از مطالعه این کتاب (یا شاید همزمان) باید به چند تا مهارت عملی هم برسید
الف- عیب یابی ابتدای شبکه و کار کردن با ابزارهای ping, traceroute, netstat, nslookup
ب- کار با ابزارهای ساده کابل کشی (cabling)، مانند Crimper، Striper و … . پیشنهاد می کنم جعبه ابزاری برای خودتون تهیه کنید که شامل ابزارهای اولیه کابل کشی باشه

۲- اصول طراحی شبکه های کامپیوتری – احسان ملکیان
یکی از بهترین کتاب‌ها است که دید خوبی در مورد انواع شبکه بهتون می‌ده. برای شروع کتاب خیلی خوبیه

۳- اصول مهندسی اینترنت – احسان ملکیان
در این کتاب از لایه های شبکه، پروتکل ها و سرویس ها صحبت شده. ولی تاکید من تو مطالعه این کتاب برای اینه که جزو معدود کتابهایی هست که مفهوم سرویس را می‌تونه برای یک تازه کار روشن کنه و توضیحات خوبی داره

۴- نفوذگری در شبکه و روشهای مقابله – احسان ملکیان
یکی از کتابهای خوب فارسی هست که یک تازه کار را با زبان فنی امنیت آشنا می‌کنه.

این چهار کتاب تئوری،  ذهن شما را برای مطالعه عمیق‌تر آماده می کنه. یکی موانع یادگیری آشنا نبودن به کلمات و اصطلاحات، دقیقا جایی که کلمه مهمی را شما در کتاب یا مقاله ای نمی فهمید، جایی هست که از اونجا به بعد مطلب نمی گیرید و بد می گیرید 😉




فهرست دوم
بخش اول – شبکه یا Networking
هدف: معرفی کتاب‌های مناسب برای آشنایی با محصولات Cisco و  فراگیری مفاهیم Routing و Switching (ممنون از دوست و همکار خوبم آقای مهندس عشاقی بابت در دسترس قرار دادن کتاب‌های نسخه جدید)
چه قرار باشه System Administrator باشید و چه Network Administrator ، مطالعه و یادگیری Routing و Switching توصیه می شه. درک لایه های ۲ و ۳ شبکه کمک بسیار زیادی در درک فایروال ، ساختار  شبکه و اتصالات و عیب یابی ارتباطی شبکه می کنه. علاوه برآن در سازمان‌های و شرکت‌هایی که فعالیت اصلی آنها IT نیست. انتظارشون از Network Admin و Sysadmin یکی هست.

۵- CCENT/CCNA ICND1 100-105 Official Cert Guide
این کتاب اولین کتاب زبان اصلی در این فهرست است و شروع خوبی برای شروع آشنایی با کلمات اصلی. در این کتاب بخشی زیادی از آنچه در کتاب‌های قبلی معرفی شده آمده و ذهن شما با خواندن آن برای مطالعه کتاب‌های بعدی آماده می شود. علاوه بر آن آشنایی ابتدایی با پیکربندی تجهیزات Cisco پیدا می کنید، در مورد  IPv6 مطالبی می خونید و شروع با یادگیری Routing و Swiching می کنید.

۶- CCNA Routing and Switching ICND2 200-105 Official Cert Guide
در این کتاب بیشتر وارد جزییات پروتکل های Routing و Switching می شیم و با مفاهیم جدیدی مانند SDN و Cloud (البته اگه دیگه جدید حسابشون بکنیم. 🙂 )

۷- CCDA 200-310 Official Cert Guide
طراحی (Design) یکی از اون سرفصل‌هایی است که دانستنش یک پله دید شما را نسبت به ساختار شبکه وسرویس‌ها بالا می بره. داشتن دید طراحی سطح کار شما را افزایش می ده و باعث می شه پیاده سازی پایدارتری داشته باشید. البته شاید بهتر باشه خوندن این کتاب را به آخر لیست منتقل کنیم؛ چرا که هر چه دانش پایه و تجربه بیشتری داشته باشید، برداشت کاملتر و دقیق تری نسبت به این کتاب (طراحی – Design) خواهید داشت.



بخش دوم -مدیریت سیستم‌های ویندوزی یا Windows Sysem Administration
هدف: به زودی آماده می شه

بخش سوم – مدیریت سیستم‌های لینوکس یا Linux System Administration
هدف: به زودی آماده می شه