面對運維,掌握的技能越多,工做起來就會越駕輕就熟。如下技能和經驗來自社區會員的分享奉獻,供你們學習參考。java
1、 操做系統部署管理工具node
操做系統的安裝部署是運維工做當中必不可少的一項內容,在自動化運維的今天咱們有不少好的工具能夠借鑑和使用。主要有如下幾種產品:python
Windows:WDS,SCCM,PXE+kickstartlinux
Linux:cobbler,PXE+kickstart,UNetbootin,AutoYaSTios
AIX:nim,powervcweb
除了光盤安裝系統,U盤安裝主流操做系統都是能夠支持的。shell
操做系統的安裝部署是運維工做當中必不可少的一項內容,在自動化運維的今天咱們有不少好的工具能夠借鑑和使用。主要有如下幾種產品:數據庫
Windows:WDS,SCCM,PXE+kickstartapache
Linux:cobbler,PXE+kickstart,UNetbootin,AutoYaSTubuntu
AIX:nim,powervc
除了光盤安裝系統,U盤安裝主流操做系統都是能夠支持的。
如下經驗能夠參考:
經驗一
AIX和Linux 操做系統安裝部署
因爲沒有實施雲環境,下面場景大多仍是基於傳統基礎平臺進行的。
AIX 操做系統的安裝大可能是經過NIM來進行,NIM做爲AIX上自帶的一個軟件,功能強大。在企業有5臺以上小機的狀況看下就應該考慮搭建一個NIM環境進行統一的網絡安裝部署設施。
NIM 自己資源不大,配合操做系統鏡像和安裝初始化須要的設施,如NFS 環境用於存放經常使用的鏡像和初始化軟件,有個30G 基本收就能夠,固然×××,本地盤足矣。作一個mirror或者使用存儲的lun都可。
搭建nim server 建議使用大於等於企業當中主流版本的穩定版本,不要常常升級,兼容性也會比較好,能夠支持個幾年沒有問題。 通常企業主流操做系統版本的升級大多都須要3年以上。經常使用的軟件能夠添加到Nim 安裝的初始化資源當中,也能夠先簡單安裝操做系統,使用同一的初始化腳本進行設置。腳本可到社區搜索。
經驗二
Linux的安裝部署:
因爲咱們企業大多選擇的紅帽系列的操做系統,那麼我選擇了cobbler自動安裝操做系統工具,兼容紅帽系列比較好,也支持ubuntu等操做系統。
主要關注點:
cobbler 工具簡單易用,使用比較方便。
由於個操做系統的環境不同,能夠多作幾個模板,磁盤大小和參數設置都可單獨設置。
你們能夠配合運維管理平臺CMDB進行支持管理和操做系統的部署。可使用python進行再次開發等等。考慮平常運維來講,平時採購硬件和主流版本的操做系統時不要太多版本,給管理帶來更多複雜性。不少互聯網公司大都都是清一色設備和清一色OS版本,管理至關方便。後續作一個同一管理平臺均方便不少。
經驗三
針對System系列服務器,咱們使用了Lenovo XClarity管理工具。可以實現設備發現、系統安裝、硬件監控等功能。同時也支持Vmware、Hyper-V等虛擬化設備的虛擬機安裝和管理。
2、SSH 登陸緩慢
登陸很慢,登陸上去後速度正常,這種狀況主要有三種可能的緣由:
OpenSSH在用戶登陸的時候會驗證IP,它根據用戶的IP使用反向DNS找到主機名,再使用DNS找到IP地址,最後匹配一下登陸的IP是否合法。若是客戶機的IP沒有域名,或者DNS服務器很慢或不通,那麼登陸就會很花時間。
解決辦法:
只需修改
/etc/ssh/sshd_config,
設置UseDNS爲no便可:
sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config
用ssh -v user@server 能夠看到登陸時有以下信息:
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
解決辦法:
可使用ssh
-o GSSAPIAuthentication=no user@server
登陸
也能夠修改
/etc/ssh/ssh_config,
設置GSSAPIAuthentication no
查詢IBM 官方文檔,關於DNS解析的詳細說明。 /etc/netsvc.conf 作以下更改:
hosts=local,bind -> hosts=local4,bind4
最後
/init.d/sshd restart
3、OS設備識別掃描
AIX
掃描方式:cfgmgr
查看結果:lsdev
Windows
掃描方式:設備管理器的掃描功能
查看結果:設備管理器
Linux
掃描方式:
從新掃描LUN設備(腳本)
rescan-scsi-bus.sh 網上有現成腳本
經過HBA卡掃描底層物理設備
echo 1 > /sys/class/fc_host/host1/issue_lip
echo 1 > /sys/class/fc_host/host2/issue_lip
經過SCSI掃描SCSI設備
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
查看結果:
lsscsi 或fdisk
HP-UNIX
掃描方式:#ioscan
查看結果:
ioscan -fNnkC disk
ioscan -m lun
Solaris
掃描方式:#devfsadm
查看結果:# format
若是這些方法都很差使用,那麼終極大法:重啓
4、操做系統經常使用監控小工具
經常使用UNIX和Linux 性能監控命令:
netstat,vmstat,iostat,ps,sar,nfsstat,lsof
每一個操做系統平臺獨有的性能監控命令或小工具:
AIX
topas,nmon,svmon,entstat,procmon,lsps,filemon,truss,lvmstat,netpmon
Linux
nmon,top,dstat,ss,iftop,iperf,slabtop,atop,sysdiag,Smem,ethtool
hp-ux
Glance,Measureware,PerfView,NNM和ITO
solaris
sysperfstat,prtdevs,mpstat,swapinfo,iotop,iosnoop,nicstat,checkcable,prtdiag,snoop,sarmons
5、Linux 安裝Oracle RAC Udev 設備綁定
環境:
redhat5.6+multipath
cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.6 (Tikanga)
cat /etc/udev/rules.d/99-asm.rules
KERNEL=="/dev/mapper/asm_vnx5200_data0[1-5]", OWNER="grid", GROUP="oinstall", MODE="660"
redhat6.5+multipath
cat /etc/redhat-release
CentOS release 6.5 (Final)
cat /etc/udev/rules.d/99-asm.rules
KERNEL=="dm-[2-8]", OWNER="grid", GROUP="oinstall", MODE="660"
因爲操做系統版本不一樣,那麼在操做系統上設備識別出來的文件類型也不同。因此綁定的規則也不同。
以上設置在生產系統運行一直很穩定。
下面的內容是網上收集而來,能夠參考使用:
安裝RAC須要綁定磁盤映射,須要獲取磁盤WWID來使用UDEV綁定。
scsi_id命令發出一個SCSI INQUIRY指令給設備,訪問vital product data (VPD)頁0x83的數據,那裏包含設備的WWID和其餘的信息,或者頁0x80的數據,那裏包含單元序列號(unit serial number)。 scsi_id命令的執行結果(一長串字符)是設備的WWID,當前映射到/dev/sdc(/sys/block/sdc)。每一條到設備的路徑和設備上的每個分區的WWID都是相同的。設備的WWID不會改變,即便將其餘的設備添加到系統或者從系統中刪除。可是,映射到/dev/sdc的設備可能會改變。這就是爲何須要建立一個靜態的設備名。能夠根據WWID建立設備名。
1、 如何獲取設備WWID
(1) Redhat 5 Enterprise Linux 以下:
/sbin/scsi_id -g -u -s /dev/sdb
Or
/sbin/scsi_id -g -u -s /block/sdb
Shell腳本
#for i in cat /proc/partitions | awk {'print $4'} |grep sd
; do echo "### $i: scsi_id -g -u -s /block/$i
"; done
(2) Redhat 6 Enterprise Linux 以下:
/sbin/scsi_id -g -u /dev/sdb
Or
/sbin/scsi_id -g -u /block/sdb
Or
/sbin/scsi_id --whitelist [--replace-whitespace] [ --device=] /dev/sdb
Shell腳本
cat /proc/partitions | awk {'print $4'} |grep sd
; do echo "### $i: scsi_id --whitelist --replace-whitespace /dev/$i
"; done2、 寫入udev .rules
(1) 對於整個盤的綁定寫入 99-oracle-asmdevices.rules (文件名,測試能夠隨便命令)
RHEL5
for i in b c d e f ;
do
echo "KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="/sbin/scsi_id -g -u -s /dev/sd$i
", NAME="asm-disk$i", OWNER="grid", GROUP="asmadmin", MODE="0660"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done
RHEL6
for i in b c d e f ;
do
echo "KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i
", NAME="asm-disk$i", OWNER="grid", GROUP="asmadmin", MODE="0660"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done
(2) 對於磁盤子分區的綁定
Redhat Enterprise Linux 5 用以下參數
KERNEL=="sd?[1-2]", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="1ATA_VBOX_HARDDISK_VBaef9fa71-c32978c8", NAME="asm-ocr%n", OWNER="grid", GROUP="asmdba", MODE="0660"
Redhat Enterprise Linux 6 用以下參數
KERNEL=="sd?[1-2]", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBaef9fa71-c32978c8", NAME="asm-ocr%n", OWNER="grid", GROUP="asmdba", MODE="0660"
Or
KERNEL=="sdb1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent" RESULT=="1ATA_VBOX_HARDDISK_VB8383313d-441fd502", NAME="asm-crs1", OWNER="grid", GROUP="asmadmin", MODE="0660"
(3) 只改權限
[root@rac01 oracle]# cat /etc/udev/rules.d/99-asm-multipath.rules
PROGRAM="/bin/chown oracle:oinstall /dev/mapper/back_mpath1p1"
PROGRAM="/bin/chown oracle:oinstall /dev/mapper/back_mpath2p1"
PROGRAM="/bin/chown oracle:oinstall /dev/mapper/data_mpath1p1"
PROGRAM="/bin/chown oracle:oinstall /dev/mapper/data_mpath2p1"
6、Linux多路徑軟件Multipath的使用
爲了方便後續的設備管理咱們和Linux 自帶多路徑軟件的成熟化,咱們在平常的設備多路徑軟件選擇方面常常會首先考慮使用DM 軟件。下面內容主要結合multipath在平常使用過程所用到的方方面面。
linux一個lsscsi的軟件,對於平常設備的查看比較方便,推薦你們使用。
multipath 安裝配置:
[root@power yum.repos.d]# rpm -qa|grep device-mapper
device-mapper-persistent-data-0.2.8-2.el6.x86_64
device-mapper-libs-1.02.79-8.el6.x86_64
device-mapper-event-libs-1.02.79-8.el6.x86_64
device-mapper-event-1.02.79-8.el6.x86_64
device-mapper-1.02.79-8.el6.x86_64
[root@power yum.repos.d]# yum install device-mapper-multipath.x86_64
[root@power yum.repos.d]# modprobe dm-multipath
[root@power yum.repos.d]# modprobe dm-round-robin
[root@power yum.repos.d]# service multipathd start
Starting multipathd daemon: [ OK ]
[root@power etc]# multipath -ll
Jan 13 15:22:46 | /etc/multipath.conf does not exist, blacklisting all devices.
Jan 13 15:22:46 | A sample multipath.conf file is located at
Jan 13 15:22:46 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Jan 13 15:22:46 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf
[root@power etc]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/multipath.conf
[root@power etc]# cat /etc/multipath.conf
blacklist {
devnode "^sda" }
defaults {
user_friendly_names yes path_grouping_policy multibus failback immediate no_path_retry fail }
multipaths {
multipath { wwid 36005076307ffc0da0000000000001704 alias ibm_ds8100_1704 } multipath { wwid 3600601600e003e001b30c4d2f8a9e511 alias ibm_ds8100_1705 }
}
經常使用multipath 命令:
multipath modprobe dm-multipath service multipathd reload (start,stop,restart) multipath -v2 multipath -v3 格式化路徑 -v3 更詳細 multipath -F multipath -ll multipathd -k (help)
注意事項:因爲配置multipath 後,在新添加的本地磁盤或存儲陣列的lun時,須要考慮blacklist的和LVM配置文件對磁盤的過濾問題,不正確的參數可能致使主機無非正常識別和使用新添加的磁盤,須要視狀況修改。
兩個選項:
file:/etc/lvm/lvm.conf
filter = [ "a/.*/" ]
file:/etc/multipath.conf
blacklist {
devnode "^sda" }
一、經過apache ANT工具,實現一臺服務器(相似堡壘機)控制多臺服務器應用的啓停操做;
二、集羣服務器之間相互配置互信;
三、使用rsync命令同步集羣內的程序包;
四、統一管理應用的啓停操做。
固然也能夠搭建jenkins實現自動化部署
7、Power HA 平常管理
PowerHA 5和6 平常管理監控
1.編輯/etc/profile 添加以下環境變量
export PATH=/usr/es/sbin/cluster/utilities:/usr/es/sbin/cluster
2.查看集羣進程狀態
clshowsrv -v
3.查看資源組clshowres
clshowres
4.查看集羣節點信息
cllsnode
5.使用clstat 查看機器狀態(須要編輯/etc/snmpdv3.conf)
VACM_GROUP group1 SNMPv1 public -
VACM_VIEW defaultView internet - included -
VACM_VIEW defaultView 1.3.6.1.4.1.2.2.1.1.1.0 - included -
VACM_VIEW defaultView 1.3.6.1.4.1.2.6.191.1.6 - included -
exclude snmpv3 related MIBs from the default view
VACM_VIEW defaultView snmpModules - excluded -
VACM_VIEW defaultView 1.3.6.1.6.3.1.1.4 - included -
VACM_VIEW defaultView 1.3.6.1.6.3.1.1.5 - included -
VACM_VIEW defaultView 1.3.6.1.4.1.2.3.1.2.1.5 - included - 添加此行
exclude aixmibd managed MIBs from the default view
VACM_VIEW defaultView 1.3.6.1.4.1.2.6.191 - excluded -
VACM_ACCESS group1 - - noAuthNoPriv SNMPv1 defaultView - defaultView -
NOTIFY notify1 traptag trap -
TARGET_ADDRESS Target1 UDP 127.0.0.1 traptag trapparms1 - - -
TARGET_PARAMETERS trapparms1 SNMPv1 SNMPv1 public noAuthNoPriv -
COMMUNITY public public noAuthNoPriv 0.0.0.0 0.0.0.0 -
DEFAULT_SECURITY no-access - -
logging file=/usr/tmp/snmpdv3.log enabled
logging size=100000 level=0
smux 1.3.6.1.4.1.2.3.1.2.1.2 gated_password # gated
smux 1.3.6.1.4.1.2.3.1.2.1.5 clsmuxpd_password 在此刪除註釋部分# HACMP/ES for AIX clsmuxpd
VACM_GROUP director_group SNMPv2c public -
VACM_ACCESS director_group - - noAuthNoPriv SNMPv2c defaultView - defaultView -
編輯完成後
stopsrc -s snmpd;startsrc -s snmpd
從新啓動snmpd服務
6.心跳盤配置測試
/usr/sbin/rsct/bin/dhb_read
node1:# /usr/sbin/rsct/bin/dhb_read -p hdisk8 -r
DHB CLASSIC MODE
First node byte offset: 61440
Second node byte offset: 62976
Handshaking byte offset: 65024
Test byte offset: 64512
Receive Mode:
Waiting for response . . .
Magic number = 0x87654321
Magic number = 0x87654321
Magic number = 0x87654321
Magic number = 0x87654321
Magic number = 0x87654321
Magic number = 0x87654321
Magic number = 0x87654321
Magic number = 0x87654321
Link operating normally
node2:# /usr/sbin/rsct/bin/dhb_read -p hdisk8 -t
DHB CLASSIC MODE
First node byte offset: 61440
Second node byte offset: 62976
Handshaking byte offset: 65024
Test byte offset: 64512
Transmit Mode:
Magic number = 0x87654321
Detected remote utility in receive mode. Waiting for response . . .
Magic number = 0x87654321
Magic number = 0x87654321
Link operating normally
PowerHA7 平常管理監控:
查看進程命令:
clshowsrv -a
clcheck_server cthags;echo $? 返回值爲1 表明集羣是up
l***c -g cluster
l***c -ls clstrmgrES|grep state
l***c -a|egrep "Sub|psv|gsc|cth"
l***c -g rsct
l***c -ls gsclvmd
l***c -g rsct_rm
clshowsrv -v
經常使用命令:
clRGinfo
cltopinfo
lscluster
clstat (clinfoES 服務要啓動和snmpdv3.conf)
cldump
cldisp
經過命令直接查的系統內的repository disk
/usr/lib/cluster/clras lsrepos
而且查看repository disk所對應的存儲UUID
/usr/lib/cluster/clras sfwinfo -d hdisk2
咱們看看,repository disk中所謂的包含存儲着全部集羣拓撲相關的信息,究竟是什麼信息
/usr/lib/cluster/clras dumprepos
HACMP的腳本啓停以及切換
停ha,不遷移資源組
/usr/es/sbin/cluster/cspoc/fix_args nop cl_clstop '-N' -cspoc-n 'ylqzjk1' '-g'
起ha
/usr/es/sbin/cluster/cspoc/fix_args nop cl_rc.cluster '-N' -cspoc-n 'ylqzjk1' '-A' '-b' '-i' '-C interactive'
遷移資源組
/usr/es/sbin/cluster/utilities/clRGmove -s 'false' -m -i -g 'ylqzjk_rg' -n 'ylqzjk1'
停而且遷移資源組
/usr/es/sbin/cluster/cspoc/fix_args nop cl_clstop '-N' -cspoc-n 'ylqzjk1' ‘-gr'
8、運維工具箱
經驗一、Python fabric的使用
!/usr/bin/python
from fabric.api import *
from fabric.colors import *
env.shell="/bin/sh -c"
env.roledefs={
'was100':['10.1.9.169','10.1.9.170'],
}
env.user='username'
env.password='password'
errinfo='err.info'
get_info=open( errinfo, 'w')
get_info.truncate()
get_info.close()
get_info=open( errinfo, 'a')
def exec_file(shell_file):
shell="" try: fd=open(shell_file,"r") shell=fd.read() except: print "can't open file" exit() fs=run(shell) if fs.strip()!='': get_info.write(env.host+' the system error report : \n ' + fs + '\n' ) get_info.flush() else: pass
cmd_fd='script/exe_cmd.sh'
@roles('was100')
def deploy():
exec_file(cmd_fd)
[root@monitor script]# cat exe_cmd.sh
errpt -dH
經驗二、日誌管理工具
日誌管理工具備 Splunk、Sumo Logic、LogStash、GrayLog、Loggly 和 PaperTrails ,
傳統的使用scp 或 rsync命名推送到日誌服務器,
能夠考慮使用ELK架構模式進行代碼採集
經驗三、Oracle 監控工具
Oracle 監控 首推 em,gridcontrol,zabbix
經驗四、自主研究監控工具參考
能夠參考:TriAquae,ZABBIX
有幾個比較好的思路:
中小規模的監控,基本上靠一臺服務器硬件和規模都可搞定
大中等規模的監控,就要考慮一下監控拓撲,硬件配備,是否須要使用代理,推薦使用節點定時發送信息push模式進行數據收集,監控數據庫應該多多考慮數據存放和數據增加。
具體的場景,尤爲是好比說ping或者telnet如何定時的去觸發,使用什麼方式,等等都須要去好好考慮一下。
經驗五、PowerVM和VMWARE 平常運維工具
vmware 平常管理工具,除了vcenter外,還能夠ESXTOP 命令行工具,對平常的性能監控和定位有很大幫助。
還能夠結合powercli 進行虛擬機的批量建立等工做。
vmware的備份能夠考慮vdp,nbu,tsm等
PowerVM 平常管理工具:
PowerVC是個不錯的東東。之前使用director 進行結合vmcontrol 等模塊,director 這個產品就是個雞肋,作了這麼多年,也沒作好。
經驗六、業務系統監控工具
OneApm,監控寶,原先CA 產品系列Wily 這些產品大多均可以作到應用或者java 類方面的監控。
經驗七、FTP上傳和下載腳本
下載腳本
ftp -v -n ...<<EOF
user oracle 123456
binary
cd /home/data
lcd /home/databackup
prompt
mget *
close
bye
EOF
上傳腳本
tar -cvf /soft/xt/date +%Y%m%d
ftp.tar /OAWEB/webapp/ >/soft/xt/tar.log
ftp -v -n 。。。 << EOF
user pys 12345678
binary
hash
cd /10.10.8.71
lcd /soft/xt/
prompt
mput *ftp.tar
bye
EOF >/soft/xt/ftp.l