運用・保守は、高度な知識ポイントに初心者を進めました

早い段階での運用・保守エンジニアは何の状況を見ていない、生活の機械を動かし、ケーブルを挟ま、コンピュータの修理を行うことができ、その間、仕事に強制的に苦いです!時間は個人の価値観を反映することは困難で、あなたの周りの非常に断片化し、断片的な様々な雑用で、徐々に産業は非常に混乱している、私は有望な何も感じません。

これらの面倒な作業は確かに人々は、実際には、これらの必要が技術的なレベルから、基本的なスキルと言う作り、運用・保守作業の後半部分は、事実上、私は終わったので、深く理解することができ、いくつかの助けをもたらすでしょう。そのため、この期間中に、私たちは前向きな姿勢、継続的な学習を維持する必要があります。将来のある日には、私はそれはあなたに戻りますと信じて!

まあ、それはルートを学習するシニア運用、保守エンジニアと共有する運用・保守の経験の私の年に基づいて、入力されます。

主要

1、Linuxの基礎

最初の段階でのLinux / Windowsオペレーティングシステムのインストール、ディレクトリ構造、起動プロセスに精通している必要があります。

2、システム管理

主な学習のLinuxシステムでは、基本的に生産環境はとてもユーザー管理、ディスクのパーティション分割、パッケージ管理、ファイルのパーミッション、テキスト処理、プロセス管理、パフォーマンス分析などの基本的な共通管理コマンド、数十人を習得するために、文字インターフェースで作業を完了するためにツール。

3、ネットワークインフラストラクチャ

OSIとTCP / IPモデルは精通している必要があります。原則の基本的なスイッチ、ルータのコンセプトと実現は知っています。

4、シェルスクリプトの基礎

シェルは、基本的な文法構造をマスターし、あなたは簡単なスクリプトを書くことができます。

中間体

1、ネットワークサービス

最も一般的に使用されるネットワークサービスは、このようなようにVSFTP、NFS、サンバ、バインド、DHCPとして、展開する必要があります。

最終的には、コードのバージョン管理システムとは、それを展開し、使用するのは簡単、主流の下にSVNやGITを学ぶことができます。

多くの場合、これを使用して、サーバ間でデータを転送:rsyncのとscp。

データ同期:inotifyを/ sersync。

再現性はいくつかの作業を行うには、実行するタイミングスクリプトを書くことができますので、あなたは、Linuxの下で、通常のサービスcrondタスクを構成する必要があります。

2、Webサービス

各企業は、サイトのアップを可能にし、実行している、基本的なウェブサイトを持って、あなたは、Webサービス・プラットフォームを構築する必要があります。

あなたはPHP言語の開発を使用している場合は、通常、スペルの技術用語の組み合わせであるLAMP、LNMPウェブサイトのプラットフォームを構築し、我々は別の話は、Apache、Nginxは、MySQLとPHPを展開されてきました。

JAVA言語の開発した場合、一般的にプロジェクトを実行するためにTomcatを使用して、アクセス速度を向上させるためには、あなたは、静的および動的な分離を達成するために、nginxのは、静的なページを処理し、動的ページTomcatプロセスをリバースプロキシnginxのTomcatを使用することができます。

展開するのは簡単なものではなく、HTTPプロトコルの動作、簡単なパフォーマンスチューニングを知っているわけではありません。

3、データベース

世界で最も広く使われているオープンソースのデータベースであるデータベースのMySQLを選択します。それを学ぶにしてください!これは、いくつかの単純なSQL文、ユーザー管理、一般的なストレージエンジン、データベースのバックアップおよびリカバリする必要があります。

その上MHA、MGRとさらなるポイントはマスタースレーブレプリケーション、パフォーマンス、主流のクラスタソリューションを最適化する必要が欲しいです。NoSQLのはとても人気があり、当然のことながら、Redisを、MongoDBのこれら二つだけで罰金をプレイすることを学びます。

4、セキュリティ

安全性は、システムが侵害されているまで待っていない、非常に重要であり、その後、セキュリティポリシー、後半にこの時間!そのため、サーバーのラインが唯一の信頼できるソースIP許可するアクセスを制限するために、このような使用のiptablesのようにすぐに安全なアクセス制御ポリシーを、行われるべきときには、いくつかの役に立たないサービスとポートを閉じました。

攻撃のいくつかの一般的なタイプは、どのようにそれを是正そう、ああ知っているようになりました!その上例えば、CC、DDOS、ARPと。

図5に示すように、監視システム

モニタリングは、それが問題とトレーサビリティわらの問題のタイムリーな検出され、必要不可欠です。Zabbixの監視システムは、主流のオープンソースを学ぶことを選択し、豊富な機能を備えた、基本的な監視のニーズを満たすためにすることができます。基本的なサーバリソース、インターフェイスのステータス、サービスのパフォーマンス、PV / UV、丸太などの側面を含む監視ポイント。

このようGrafanaなどの重要なデータを、いくつかのリアルタイムダッシュボード表示のホールドを取得することができ、それは非常にクールになります。

6、シェルスクリプトアドバンスト

Linuxのシェルスクリプトは、ツールを仕事に自動的に行われ、熟練した準備をしなければならないので、あなたはその上のより多くの機能、配列、シグナル、電子メールなどを学ぶ必要があります。

テキスト処理三銃士(grepを、セッド、awkは)それを頼りに、テキスト処理に6ああ、Linuxがプレイしています。

7、Pythonの開発財団

シェルスクリプトは、あなたがそうで、このようなAPIを呼び出すなど、より複雑なタスク、マルチプロセスとを達成したいいくつかの基本的なタスクを完了することができます。我々は、高レベルの言語を習得する必要があります。

Pythonはそれを学ぶようにしてください、使いやすく、運用、保守の分野で最も使用される言語です!この段階は、基本的な文法構造、ファイル・オブジェクトの操作、機能、反復オブジェクト、例外処理、メール、データベースプログラミングとして、基本を習得することができるであろう。

高度

1、Webキャッシュの静的

古いユーザーは、サーバーのリソースが非常に豊富ああを見てサイトが遅い訪問叫びました!スローサイト訪問は、ネットワーク、転送や他の層など多くの要因に影響を与える、サーバリソースの飽和につながらないことがあります。

静的なページをキャッシュしながら、ネットワークのために、アクセスの間に南北の通信の問題が遅くなりますがあり、これはバックエンドの要求と応答時間を短縮するために、トップに応じて、要求を傍受する可能な限り、CDNを解決するために使用することができます。

あなたがいないCDNを行う場合は、入り口に流入し、この静的なページのキャッシュを実現するためにイカ、ワニス、nginxのキャッシングサービスを利用することができます。

2、クラスタ

すべての後に単一のサーバーの、限られた資源、高トラフィックは確かに持続不可能であるレジストを、最も重要な問題は、この技術のロードバランサを使用することで対処し、複数のWebサーバは、このようなスケーラビリティを倍増、外部サービスながら、水平スケール。ロードバランサ主流のオープンソース技術は、LVS、HAProxyとnginxのを持っています。あなたは、1つまたは2つに精通している必要があります!

ライブラリからWebサーバーのパフォーマンスのボトルネックが解消され、データベースがより重要、またはクラスタの使用であり、MySQLが学んだ取り、それは別の読み取りに基づいて、マスターマルチスレーブ・アーキテクチャことと書くことができ、マスタは書き込みを担当し、責任からの読み込み、水平に延びて、再び4つのフロント適切に適切に、千万PVを運ぶロードバランサ、!

高可用性ソフトウェアはまた、武器のシングルポイントを回避するために必要がありますが、主流はそうでkeepalivedの、ハートビートとしています。

ウェブサイトの画像のようにあまりにもあなたがた!NFS共有ストレージのサポートは、しかし、このプロセスは、Haonong非常に遅いです!分散ファイルシステム、パラレル処理タスク、単一点、高い信頼性、高い性能特性は、主流FastDFS、MFS、HDFS、セファロ、GFSが好きあります。初期の、そして私は、中小規模のニーズを満たすために、FastDFSの下で学習をお勧めします。

3、仮想化

ハードウェアサーバリソースの利用率は非常に低く、でも無駄!アイドル状態のサーバ仮想化することができ、各仮想マシンは完全なオペレーティングシステムで、仮想マシンの数を与えました。大幅にリソースの利用率を向上させることができます。私は、オープンソースのKVM + OpenStackのクラウドプラットフォームを学ぶお勧めします。

仮想マシンは、基本的なプラットフォームとしても使用することができますが、それのビジネス伸縮性重みの適用は、あまりにも!急速にあまりにも激しい拡大し、数分、文書や大規模なスタート!

言って、コンテナは、コンテナの主な特徴は、迅速な展開と環境です。ミラーへのサービスパッケージ、ベルコンテナの数百を作成するための分。

ドッカーコンテナが行かなければならない非主流の技術。

もちろん、スタンドアローンの生産環境ドッカーほとんどの場合、ビジネスニーズを満たすことができない、インフラのための強力なサポートを提供し、資源の大規模なプール、集中管理を形成し、Kubernetes、スウォームクラスタ管理コンテナを展開することができます。

4、自動化

繰り返し作業の重複、効率を向上させることができないだけでなく、値が反映されません。

そのような統一されたオペレーティングシステムとして、そのようなディレクトリ構造の環境バージョンとして、運用、保守作業のすべての標準化されました。基づいて標準化の複数の側面を自動化する、または複雑なタスク、双双ザイザイを完了するために、いくつかの小さなマウスコマンドをノックするために!

そのため、可能な限り自動化されたすべての操作としては、人為的ミスを削減し、効率を向上させます。

主流のサーバの集中管理ツール:Ansible、Saltstack

ライン上のこれら二つのオプションのいずれか。

継続的インテグレーションツール:ジェンキンス

5、Pythonの高度な開発

学習Pythonは、任意のさらなる発展に行くオブジェクト指向プログラミングを把握することができます。

Palmはまた、そのようジャンゴ、フラスコなどのWebサイトを開発するための最良の枠組みを、学びの操作および保守管理システムの開発で、複雑なプロセスプラットフォームの一部を書いて、その後、独自の運用、保守管理プラットフォームのいずれかを作成することができ、集中管理ツールを統合しました。

6、解析システムのログを記録

ログも非常に重要であり、定期的な分析は、価値のあるものを抽出するために、潜在的なリスクを識別することができます。

オープンソースログシステムのセット:ELK

需要の発展を見るためにログを提供するために、展開を使用することを学びます。

7、パフォーマンスの最適化

唯一の展開は運搬能力最大化するために、サービスのパフォーマンスの最適化を向上させる、十分ではありません。

この1は、重要な点は、彼らがああ学ぶために何かをすることに持っているお金のために、より困難に支払われています!

あなたは、ハードウェア層、オペレーティングシステム層、ソフトウェア層や建築層の寸法から考える展開することができます。

武器の種類 武器の名前
テキスト処理 grepを、セッド、AWK
データ送信 rsyncは、SCP、Inodify / Sersync
プロセス管理 監督
性能解析 トップ、無料、DF、iftop、iostatの、vmstatの、DSTAT、SAR、sysdig
ネットワークサービス VSFTP、NFS、サンバ、バインド、DHCP、Postfixの
Webサービス アパッチ、Nginxは、Tomcatのは、JBoss、樹脂
データベース MySQLの、MariaDB、MySQLのPerconaサーバー
NoSQLの Redisの、MongoDBの
メッセージングミドルウェア RabbitMQの、ActiveMQの
バージョン管理 SVN、Gitの
静的キャッシュ イカ、ワニス、nginxの
ロードバランシング LVS、HAProxy、nginxの
高可用性ソフトウェア keepalivedの、ハートビート、DRBD、corosync +ペースメーカー
集中管理ツール Ansible、Saltstack、シェフ、パペット
仮想化とクラウドプラットフォーム KVM、Xenの、ドッカー、Kubernetes、OpenStackの、CloudStackの
自動的にインストール キックスタート、コブラー
パケットキャプチャ解析 tcpdumpを、Wiresharkの
継続的インテグレーション ジェンキンス、Gitlab
MySQLのプロキシ ハイ、コバー、Mycat
圧力測定 AB、FIO、sysbench、mysqlslapは
セキュリティーチェック chrootkit、rkhunterの
ロギングシステム ELK
モニター Zabbixの、サボテン、Nagiosは、Grafana

意識

1、に準拠

学習は、非常に長いプロセスであり、私たちのそれぞれが、生涯のキャリアを遵守する必要があります。

忍耐力、主張する、に付着しにくいです!

2、ターゲット

目標は、仕事と呼ばれていないがなければ、何の定量的目標は呼び出されません。

すべてのステージ、目標の開発。

たとえば:最初達成することができ、小さな目標を設定し、それ億作ります!

3.シェア

より多くの人々がそれを知っているように、効果的に、外の世界への知識を転送することができます共有技術の価値を学びます。

限り誰とどうなるのかを考えるために何かを思い付きますか?

ディレクション、そして離れて道路を恐れていません!

テンのLinux知識

1、GNU GPLと

リチャード・ストールマン(リチャード・ストールマン)によって(また、革のスレーブプログラムとして知られている)GNUプロジェクト、1983年9月27日無料の集団コラボレーション・ソフトウェア・プログラムの一般公開に。その目標は、完全にフリーなオペレーティングシステムを作成することです。また、GNUフリーソフトウェアプロジェクトとして知られています。

GPLは、GNU一般公衆利用許諾契約書(GNU一般公衆利用許諾契約書、GPL)である、または「コピーレフト」のコンセプトは、GNU協定の一つであり、その目的は、GNUソフトウェアを保護するためにある自由に使用する、コピー、研究、変更、および配布します。また、ソースコード形式で配布されるソフトウェアを必要とします。

LinuxのカーネルGNUシステムはに組み込まれ、完全なオペレーティングシステム構成:LinuxベースのGNUシステム、オペレーティング・システムは、通常の状況下では、「GNU / Linuxの」と呼ばれている、または単にLinuxが。

2、Linuxディストリビューション

一个典型的Linux发行版包括:Linux内核,一些GNU程序库和工具,命令行shell,图形界面的X Window系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公套件,编译器,文本编辑器到科学工具的应用软件。

主流的发行版:

Red Hat Enterprise Linux、CentOS、SUSE、Ubuntu、Debian、Fedora、Gentoo

3、Unix和Linux

Linux是基于Unix的,属于Unix类,Uinx操作系统支持多用户、多任务、多线程和支持多种CPU架构的操作系统。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

4、Swap分区

Swap分区,即交换区,系统在物理内存不够时,与Swap进行交换。即当系统的物理内存不够用时,把硬盘中一部分空间释放出来,以供当前运行的程序使用。当那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。那些被释放内存空间的程序一般是很长时间没有什么操作的程序。

Swap空间一般应大于或等于物理内存的大小,同时最小不应小于64M,最大应该是物理内存的两倍。

5、GRUB的概念

GNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动引导管理程序。

GRUB是一个支持多种操作系统的启动引导管理器,在一台有多个操作系统的计算机中,可以通过GRUB在计算机启动时选择用户希望运行的操作系统。同时GRUB可以引导Linux系统分区上的不同内核,也可用于向内核传递启动参数,如进入单用户模式。

6、Buffer和Cache

Cache(缓存)位于CPU与内存之间的临时存储器,缓存容量比内存小的多但交换速度比内存要快得多。Cache通过缓存文件数据块,解决CPU运算速度与内存读写速度不匹配的矛盾,提高CPU和内存之间的数据交换速度。Cache缓存越大,CPU处理速度越快。

Buffer(缓冲)高速缓冲存储器,通过缓存磁盘(I/O设备)数据块,加快对磁盘上数据的访问,减少I/O,提高内存和硬盘(或其他I/O设备)之间的数据交换速度。Buffer是即将要被写入磁盘的,而Cache是被从磁盘中读出来的。

7、TCP三次握手

(1)请求端发送SYN(SYN=A)数据包,等待响应端确认

(2)响应端接收SYN,并返回SYN(A+1)和自己的ACK(K)包给请求端

(3)请求端接收到响应端的SYN+ACK包,再次向响应端发送确认包ACK(K+1)

请求端和响应端建立TCP连接,完成三次握手,开始进行数据传输。

8、linux系统目录结构

Linux文件系统采用带链接的树形目录结构,即只有一个根目录(通常用“/”表示),其中含有下级子目录或文件的信息;子目录中又可含有更下级的子目录或者文件的信息。

  • /:第一层次结构的根,整个文件系统层次结构的根目录。即文件系统的入口,最高一级目录。
  • /boot:包含Linux内核及系统引导程序所需的文件,例如kernel、initrd;grub系统引导管理器也在这个目录下。
  • /bin:基本系统所需要的命令,功能和"/usr/bin"类似,这个目录下的文件都是可执行的.普通用户也是可以执行的。
  • /sbin:基本的系统维护命令,只能由超级用户使用。
  • /etc:所有的系统配置文件。
  • /dev:设备文件存储目录.像终端、磁盘、光驱等。
  • /var:存放经常变动的数据,像日志、邮件等。
  • /home:普通用户的目录默认存储目录。
  • /opt:第三方软件的存放目录,比如用户自定义软件包和编译的软件包就安装到这个目录中。
  • /lib:库文件和内核模块存放目录,包含系统程序所需要的所有共享库文件。

9、硬链接和软链接

硬链接(Hard Link):硬链接是使用同一个索引节点(inode号)的链接, 即可以允许多个文件名指向同一个文件索引节点(硬链接不支持目录链接,不能跨分区链接),删除一个硬链接,不会影响该索引节点的源文件以及其下的多个硬链接。

ln source new-link

软连接(符号链接,Symbolic Link):符号链接是以路径的形式创建的链接,类似于windows的快捷方式链接,符号链接允许创建多个文件名链接到同一个源文件,删除源文件,其下的所有软连接将不可用。(软连接支持目录,支持跨分区、跨文件系统)

ln -s source new-link

10、RAID技术

磁盘阵列(Redundant Arrays of independent Disks,RAID),廉价冗余(独立)磁盘阵列。

RAID是一种把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),提供比单个硬盘更高的存储性能和数据备份技术。RAID技术,可以实现把多个磁盘组合在一起作为一个逻辑卷提供磁盘跨越功能;可以把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度;可以通过镜像或校验操作提供容错能力。具体的功能以不同的RAID组合实现。

在用户看来,RAID组成的磁盘组就像是一个硬盘,可以对它进行分区、格式化等操作。RAID的存储速度比单个硬盘高很多,并且可以提供自动数据备份,提供良好的容错能力。

RAID级别,不同的RAID组合方式分为不同的RAID级别:

  1. RAID 0:称为Stripping条带存储技术,所有磁盘完全地并行读,并行写,是组建磁盘阵列最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提供整个磁盘的性能和吞吐量,但RAID 0没有提供数据冗余和错误修复功能,因此单块硬盘的损坏会导致所有的数据丢失。(RAID 0只是单纯地提高磁盘容量和性能,没有为数据提供可靠性保证,适用于对数据安全性要求不高的环境)
  2. RAID 1:镜像存储,通过把两块磁盘中的一块磁盘的数据镜像到另一块磁盘上, 实现数据冗余,在两块磁盘上产生互为备份的数据,其容量仅等于一块磁盘的容量。当数据在写入一块磁盘时,会在另一块闲置的磁盘上生产镜像,在不影响性能情况下最大限度的保证系统的可靠性和可修复性;当原始数据繁忙时,可直接从镜像拷贝中读取数据(从两块硬盘中较快的一块中读出),提高读取性能。相反的,RAID 1的写入速度较缓慢。RAID 1一般支持“热交换”,即阵列中硬盘的移除或替换可以在系统运行状态下进行,无须中断退出系统。RAID 1是磁盘阵列中硬盘单位成本最高的,但它提供了很高的数据安全性、可靠性和可用性,当一块硬盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
  3. RAID 0+1:也被称为RAID 10,实际是将RAID 0和RAID 1结合的形式,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘做镜像进行冗余。通过RAID 0+1的组合形式,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并且有快速读/写能力。RAID 0+1至少需要4个硬盘在磁盘镜像中建立带区集。RAID 0+1技术在保证数据高可靠性的同时,也保证了数据读/写的高效性。
  4. RAID 5:是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID 5可以理解为是RAID 0和RAID 1的折衷方案,RAID 5至少需要三块硬盘。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低,是目前运用较多的一种解决方案。

おすすめ

転載: www.cnblogs.com/duanlinxiao/p/10949528.html