1. 程式人生 > >運維“打怪”晉級之路之中級篇

運維“打怪”晉級之路之中級篇

中級篇

 

有些人認為,其實運維就是部署某個軟體,設定些基礎功能,就算會運維了。

 

舉個例子:安裝LAMP,LNMP,就感覺部署方法我都掌握了。其實網上大多數都有一鍵安裝指令碼啥的根本沒有啥技術含量,在面試官眼裡,這些都不是你的亮點。基本到了公司一般環境架構都是部署好的,很少需要你去變動環境架構。就算你安裝好 LNMP 架構你熟悉裡面的原理嗎,熟悉 Nginx 優化嗎,熟悉 MySQL 優化嗎?

 

再舉個例子:我面試遇到的問題,面試官問你既然熟悉 LNMP 架構,那麼 Nginx 反向代理的作用。

 

你應該不是說出懂這個軟體和配置,你儘可能的說怎麼優化,怎麼深入提高網站效能。

1、使用反向代理可以理解為7層應用層的負載均衡,使用負載均衡之後可以非常便捷的橫向擴充套件伺服器叢集,實現叢集整體併發能力、抗壓能力的提高。

2、通常反向代理伺服器會帶有本地 Cache 功能,通過靜態資源的 Cache,有效的減少後端伺服器所承載的壓力,從而提高效能。

 

下面說說運維在工作中需要掌握的核心技術

注意,這是在工作中掌握的,在學習中很難掌握。

 

1、第一條是最主要的排錯

 

  • 分析部分程式不能執行或沒有按預想結果執行的原因,對程式執行跟蹤,檢視系統呼叫的過程。 

  • 較深入的系統瓶頸點分析。

 

檢視剩餘記憶體:

# free -m
[[email protected] ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        135        844          0          6         36
-/+ buffers/cache:         92        888  #92M為真實使用的記憶體,888M為真實剩餘的記憶體(剩餘記憶體+快取+緩衝器)
Swap:          999          0        999
 

檢視系統資訊:

uname -a                #檢視Linux核心版本資訊
cat /proc/version       #檢視核心版本
cat /etc/issue          #檢視系統版本   
lsb_release -a          #檢視系統版本(注:需要安裝centos-release,安裝:yum install -y redhat-lsb)
locale -a               #列出所有語系
locale                  #當前環境變數中所有編碼
hwclock                 #檢視時間
who                     #當前線上使用者
w                       #當前線上使用者
whoami                  #檢視當前使用者
logname                 #檢視初始登入使用者名稱
uptime                  #檢視伺服器啟動時間
sar -n DEV 1 10         #檢視網絡卡網速流量
dmesg                   #顯示開機資訊
lsmod                   #檢視核心模組

[[email protected] ~]# uname -a
Linux jerry 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

[[email protected] ~]# cat /proc/version 
Linux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

[[email protected] ~]# cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m

[[email protected] ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID:    CentOS
Description:    CentOS release 6.5 (Final)
Release:    6.5
Codename:    Final

[[email protected] ~]# locale -a
aa_DJ
aa_DJ.iso88591
aa_DJ.utf8
aa_ER
[email protected]
aa_ER.utf8

[[email protected] ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

[[email protected] ~]# hwclock
Sat 03 Nov 2018 07:15:21 PM CST  -0.954688 seconds

[[email protected] ~]# who
root     pts/0        2018-11-03 18:03 (192.168.181.1)

[[email protected] ~]# w
 19:15:45 up  1:13,  1 user,  load average: 0.05, 0.11, 0.05
USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.181.1    18:03    1.00s  0.16s  0.05s w

[[email protected] ~]# whoami
root

[[email protected] ~]# logname
root

[[email protected] ~]# uptime
 19:17:06 up  1:14,  1 user,  load average: 0.01, 0.08, 0.04

[[email protected] ~]# sar -n DEV 1 1
Linux 2.6.32-431.el6.x86_64 (jerry)     11/03/2018     _x86_64_    (1 CPU)

07:18:33 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
07:18:34 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
07:18:34 PM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

[[email protected] ~]# lsmod
Module                  Size  Used by
ipt_REJECT              2351  2 
nf_conntrack_ipv4       9506  2 
nf_defrag_ipv4          1483  1 nf_conntrack_ipv4
iptable_filter          2793  1 
ip_tables              17831  1 iptable_filter
ip6t_REJECT             4628  2 
nf_conntrack_ipv6       8748  2 
nf_defrag_ipv6         11182  1 nf_conntrack_ipv6
xt_state                1492  4 
nf_conntrack           79758  3 nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state
ip6table_filter         2889  1 
ip6_tables             18732  1 ip6table_filter
ipv6                  317340  269 ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
vmware_balloon          7199  0 
btusb                  16851  0 
bluetooth              99271  1 btusb
rfkill                 19255  1 bluetooth
e1000                 170646  0 
i2c_piix4              12608  0 
i2c_core               31084  1 i2c_piix4
sg                     29350  0 
shpchp                 32778  0 
ext4                  374902  2 
jbd2                   93427  1 ext4
mbcache                 8193  1 ext4
sd_mod                 39069  4 
crc_t10dif              1541  1 sd_mod
sr_mod                 15177  0 
cdrom                  39085  1 sr_mod
mptspi                 16603  3 
mptscsih               36700  1 mptspi
mptbase                93615  2 mptspi,mptscsih
scsi_transport_spi     25863  1 mptspi
pata_acpi               3701  0 
ata_generic             3837  0 
ata_piix               24601  0 
dm_mirror              14384  0 
dm_region_hash         12085  1 dm_mirror
dm_log                  9930  2 dm_mirror,dm_region_hash
dm_mod                 84209  2 dm_mirror,dm_log
 

硬體資訊:

more /proc/cpuinfo  #檢視cpu資訊
lscpu  #檢視cpu資訊
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c  #檢視cpu型號和邏輯核心數
getconf LONG_BIT  #cpu執行的位數
cat /proc/cpuinfo | grep 'physical id' |sort| uniq -c  #物理cpu個數
cat /proc/cpuinfo | grep flags | grep 'lm' | wc -l  #結果大於0支援64位
cat /proc/cpuinfo | grep flags  #檢視cpu是否支援虛擬化(注:pae支援半虛擬化,IntelVT支援全虛擬化)
more /proc/meminfo  #檢視記憶體資訊
dmidecode  #檢視全面硬體資訊
dmidecode -t 2  #檢視主機板資訊
dmidecode -t 16  #檢視記憶體資訊
dmidecode | grep -P -A5 "Memory Device" | grep Size  #檢視當前記憶體數和插槽數
dmidecode -t 17  #檢視記憶體條數
dmidecode -t 4  #檢視cpu資訊
cat /proc/mdstat  #檢視軟raid資訊
cat /proc/scsi/scsi  #檢視Dell硬raid資訊(注:IBM和HP需要官方檢測工具)
lspci  #檢視硬體資訊
lspci | grep Ethernet  #檢視網絡卡型號
  • 使用分析系統分析web日誌
  • 分析系統性能瓶頸點(IO/memory/cpu,常用工具,top命令中shift組合鍵的特殊用法Sar/vmstat/iostat/ipcs)

[[email protected] ~]# more /proc/cpuinfo 
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 42
model name    : Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz
stepping    : 7
cpu MHz        : 2192.909
cache size    : 6144 KB
fpu        : yes
fpu_exception    : yes
cpuid level    : 13
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 c
lflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon xtopology tsc
_reliable nonstop_tsc unfair_spinlock pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic po
pcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm arat
bogomips    : 4385.81
clflush size    : 64
cache_alignment    : 64
address sizes    : 43 bits physical, 48 bits virtual
power management:

[[email protected] ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 42
Stepping:              7
CPU MHz:               2192.909
BogoMIPS:              4385.81
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              6144K
NUMA node0 CPU(s):     0

[[email protected] ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
      1  Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz

[[email protected] ~]# getconf LONG_BIT
64

[[email protected] ~]# cat /proc/cpuinfo | grep 'physical id' | sort | uniq -c
      2 physical id     : 0

[[email protected] ~]# cat /proc/cpuinfo | grep flags | grep 'lm' | wc -l
1

[[email protected] ~]# cat /proc/cpuinfo | grep flags
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon xtopology tsc_reliable nonstop_tsc unfair_spinlock pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm ara

[[email protected] ~]# more /proc/meminfo 
MemTotal:        1004412 kB
MemFree:          295324 kB
Buffers:           21588 kB
Cached:           558368 kB
SwapCached:            0 kB
Active:           130008 kB
Inactive:         459340 kB
Active(anon):       2624 kB
Inactive(anon):     6964 kB
Active(file):     127384 kB
Inactive(file):   452376 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1023992 kB
SwapFree:        1023992 kB
Dirty:                 4 kB
Writeback:             0 kB
AnonPages:          9440 kB
Mapped:             6372 kB
Shmem:               188 kB
Slab:              98272 kB
SReclaimable:      44900 kB
SUnreclaim:        53372 kB
KernelStack:         584 kB
PageTables:         1712 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1526196 kB
Committed_AS:      61908 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      153188 kB
VmallocChunk:   34359572192 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        8192 kB
DirectMap2M:     1040384 kB

[[email protected] ~]# dmidecode -t 2
# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
    Manufacturer: Intel Corporation
    Product Name: 440BX Desktop Reference Platform
    Version: None
    Serial Number: None
    Asset Tag: Not Specified
    Features: None
    Location In Chassis: Not Specified
    Chassis Handle: 0x0000
    Type: Unknown
    Contained Object Handles: 0

[[email protected] ~]# dmidecode -t 16
# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x01A2, DMI type 16, 23 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 3 GB
    Error Information Handle: Not Provided
    Number Of Devices: 64

[[email protected] ~]# dmidecode | grep -P -A5 "Memory Device" | grep Size
    Size: 1024 MB
    Size: No Module Installed
    Size: No Module Installed
    Size: No Module Installed

[[email protected] ~]# dmidecode -t 17

# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x01A3, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x0025
    Error Information Handle: No Error
    Total Width: 32 bits
    Data Width: 32 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: RAM slot #0
    Bank Locator: RAM slot #0
    Type: DRAM
    Type Detail: EDO
    Speed: Unknown
    Manufacturer: Not Specified
    Serial Number: Not Specified
    Asset Tag: Not Specified
    Part Number: Not Specified
    Rank: Unknown
    Configured Clock Speed: Unknown

[[email protected] ~]# dmidecode -t 4 | head -20
# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x0004, DMI type 4, 42 bytes
Processor Information
    Socket Designation: CPU #000
    Type: Central Processor
    Family: Unknown
    Manufacturer: GenuineIntel
    ID: A7 06 02 00 FF FB 8B 0F
    Version:       Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz
    Voltage: 3.3 V
    External Clock: Unknown
    Max Speed: 30000 MHz
    Current Speed: 2200 MHz
    Status: Populated, Enabled
    Upgrade: ZIF Socket
    L1 Cache Handle: 0x0094
    L2 Cache Handle: 0x0114
    L3 Cache Handle: Not Provided

[[email protected] ~]# cat /proc/mdstat 
Personalities : 
unused devices: <none>

[[email protected] ~]# cat /proc/scsi/scsi 
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev: 1.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 02

[[email protected] ~]# lspci 
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
00:0f.0 VGA compatible controller: VMware SVGA II Adapter
00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
00:11.0 PCI bridge: VMware PCI bridge (rev 02)
00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.7 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.7 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.7 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.7 PCI bridge: VMware PCI Express Root Port (rev 01)
02:00.0 USB controller: VMware USB1.1 UHCI Controller
02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
02:03.0 USB controller: VMware USB2 EHCI Controller

[[email protected] ~]# lspci | grep Ethernet
02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

日誌管理常用命令:

history  #歷史命令預設1000條
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S"  #讓history命令顯示具體時間
history -c  #清除記錄命令
cat $HOME/.bash_history  #歷史命令記錄檔案
lastb -a  #列出登入系統失敗的使用者相關資訊 
echo > /var/log/btmp  #清空二進位制日誌記錄檔案
last  #檢視登入過的使用者資訊 
echo > /var/log/wtmp  #清空二進位制日誌記錄檔案
who /var/log/wtmp  #檢視登陸過的使用者資訊
lastlog  #使用者最後登入的時間
tail -f /var/log/messages  #系統日誌
tail -f /var/log/secure  #ssh日誌

2、優化

 

優化可以說是運維最吃香的技能,基本會優化的運維普遍工資很高,而且優化是要承擔風險的,並不是網上搜個文章改一下配置檔案或者引數就叫優化了,這樣很容易造成宕機。

優化是根據實際的現場環境硬體各個引數進行部分優化,提高軟體效能和網站效能。這個我只能講半知半解,當時優化mysql和tomcat引數也是根據網上文章和官網文件查詢引數在虛擬機器上測試然後檢視效能。

 

成本優化,效能優化。這裡我給出 tomcat 優化 jvm 引數(做過相應測試才放到現場環境的):(記住無監控不調優)

 

-標準引數,所有jvm都應該支援

-X 非標,每個jvm實現都不同

-XX 不穩定引數,下一版本可能會取消

serial collector 單執行緒 序列化

parallel collector 多執行緒

啟動 jvisualvm.exe 監控 dump 記憶體溢位

-Xms:初始堆大小

-Xmx:最大堆大小

-Xss:執行緒棧大小

-XX:NewSize=n:設定年輕代大小

-XX:NewRatio=n:設定年輕代和年老代的比值,如3, 標示年輕代:年老代比值1:3,年輕代佔整個年輕代年老代和的1/4

-XX:SurvivorRatio=n:年輕代中的eden區與2個Survivor區的比值。

-XX:MaxPermSize=n:設定持久代大小

 

收集器設定

-XX:+UseSerialGC:設定序列收集器

-XX:+UseParallelGC:設定並行收集器

-XX:+UseConcMarkSweepGC:設定併發收集器

 

回收統計資訊

-XX:+PrintGC

-XX:+PrintGCDetails

-Xloggc:filename

tocmat 優化 確認有幾個 jvm 虛擬機器

set JAVA_OPTS=

-Xms4g

-Xmx4g

-Xss512k

-XX:+AggressiveOpts 進攻型的優化選項,所有優化項都加上

-XX:+UseBiasedLocking 優化鎖,基本都要選上,偏執鎖

-XX:permSize=64m 原始區大小,最大300m 類多就設定大一點

-XX:MaxPermSize=300m  

-XX:+DisableExplicitGC //System.gc() 不顯示呼叫gc

-XX:+UseConcMarkSweepGC 使用cms縮短相應時間,併發收集,低停頓

-XX:+UseParNewGC   並行收集新生代的垃圾

-XX:+CMSParallelRemarkEnabled 在使用UseParNewGC的情況下,儘量減少mark的時間

-XX:+UseCMSCompactAtFullCollection 使用併發收集器時,開啟對年老代的壓縮,使碎片減少

-XX:LargePageSizelnBytes=128m 記憶體分頁大小對效能的提升

-XX:+UseFastAccessorMethods get/set方法轉成原生代碼

-Djava awt headless=true  修復linux下tomcat處理圖示時可能產生的bug

 

記憶體調優:

640?wx_fmt=png

 

tomcat 前任何引數沒參加大概每秒605  調優後大概每秒435 接近3倍的結果

640?wx_fmt=png

 

3、開發技能

 

優選 shell 和 python,現在 shell 無法滿足你的需求或者效率很低,那麼選擇自動化 python 是最好的選擇。現在普遍招聘需求要求,會寫 shell 或者 python,perl 指令碼,個人選擇還是選 python。

 

python 這門語言上手比較快,容易理解。

 

python 在伺服器管理工具上非常豐富,配置管理(saltstack) 批量執行( fabric, saltstack) 監控(Zenoss, nagios 外掛) 虛擬化管理( python-libvirt) 程序管理 (supervisor) 雲端計算(openstack) ...... 還有大部分系統 C 庫都有 python 繫結。

 

對於流程確定的事情,最終一定是納入系統管理的體系,寫成程式,成為系統的一部分。而不是無法複用遊離與整體的各種指令碼。

 

隨著雲端計算時代的來臨,中小型公司,不需要運維了。大型公司,沒有工程開發能力的運維,是沒有競爭力的。

 

最重要的學好 python 可以漲工資,可以漲工資,可以漲工資 。(重要的事情說三遍。)

 

目前本人也是在學 python,正在把以前 shell 指令碼的例項轉換成 python 指令碼。

 

python筆記: python例項手冊(一直在看)

下載連結: http://down.51cto.com/data/2329173

 

4、意識篇

 

1) 安全意識:

運維人員的許可權很大,所以一定要保證帳號/私鑰的安全。 

  • 最好使用加密工具儲存。比如truecrypt,lpassword 

  • 基於本地儲存。切勿用網盤,也不建議用lastpass等 

  • ssh私鑰新增密碼

     

2) 磨刀意識:

關於任何操作配置,最好先搞明白操作或配置的原理,然後再去操作。應一句話叫做“磨刀不誤砍柴功”,而且對於類似的操作可以舉一反三。

 

3) 計劃意識:

複雜的變更操作比如多臺主機以及牽涉到san儲存,最好先作 操作計劃,寫計劃文件,詳細緻每條命令,然後請高手幫忙稽核。 這樣能最大程度使整個操作過程安全。如果是重要的客戶業務系統,操作最好有回退方案,而一旦變更失敗,客戶可以在短時間內將業務回退。

 

4) 記錄分享意識:

遇到自己認為較特殊的案例時,記得要寫 案例過程及分析的文件。也方便自己以後翻看,或者和其他兄弟分享,作知識的傳播以便於大家以後都能少走彎路。

 

5) 監控意識:

運維來說,監控是非常重要的,監控是發現系統各種異常的眼睛,所以運維應該和監控緊密配合。

 

6) 業務意識:

儘量瞭解維護的各主機上業務型別,以及各主機業務之間的關聯性。因為任何維護工作都是為主機能提供業務服務的,當某業務中斷,能最快的知道與此業務相關的主機群,從而縮小故障排查範圍,最快定位故障。

 

附上運維思路拓撲圖:

640?wx_fmt=png

可以看看: 安全運維理念(半神半仙亦民工)

 

意識是很重要,並不是你技術很牛,學的技術很多很熟,就不代表你不需要運維意識,其實領導很看重運維意識的,例如有沒有做好備份,許可權分配問題,平臺測試情況,故障響應時間等,這些都是意識,而不是你學了很多技術自認大牛了,平臺發現故障你又沒什麼大不子,以為很簡單的問題喜歡處理就處理,不需要向其它部門反饋等,領導不是看你的技術如何,而是看你的運維意識如何,你沒運維意識,技術再牛也沒用,只會讓其它部門的人跟你不協調。

 

要知道做IT這行是苦B的,需要無盡的學習,不學習只會被淘汰,不想被年輕的淘汰,就只能不斷增值自己,不然不是你工資無法提升,而是你無法再從事這行。