面对运维,掌握的技能越多,工作起来就会越得心应手。以下技能和经验来自社区会员的分享奉献,供大家学习参考。
一、 操作系统部署管理工具
操作系统的安装部署是运维工作当中必不可少的一项内容,在自动化运维的今天我们有很多好的工具可以借鉴和使用。主要有以下几种产品:
Windows:WDS,SCCM,PXE+kickstart
Linux:cobbler,PXE+kickstart,UNetbootin,AutoYaST
AIX:nim,powervc
除了光盘安装系统,U盘安装主流操作系统都是可以支持的。
操作系统的安装部署是运维工作当中必不可少的一项内容,在自动化运维的今天我们有很多好的工具可以借鉴和使用。主要有以下几种产品:
Windows:WDS,SCCM,PXE+kickstart
Linux:cobbler,PXE+kickstart,UNetbootin,AutoYaST
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等虚拟化设备的虚拟机安装和管理。
二、SSH 登录缓慢
登录很慢,登录上去后速度正常,这种情况主要有三种可能的原因:
- DNS反向解析的问题
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
- gssapi的问题
用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
- DNS访问设置
查询IBM 官方文档,关于DNS解析的详细说明。 /etc/netsvc.conf 做如下更改:
hosts=local,bind -> hosts=local4,bind4
最后
/init.d/sshd restart
三、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
如果这些方法都不好使用,那么终极大法:重启
四、操作系统常用监控小工具
常用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
五、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创建设备名。
一、 如何获取设备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脚本
for i in cat /proc/partitions | awk {'print $4'} |grep sd
; do echo "### $i: scsi_id --whitelist --replace-whitespace /dev/$i
"; done
二、 写入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"
六、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"
}
1、通过apache ANT工具,实现一台服务器(类似堡垒机)控制多台服务器应用的启停操作;
2、集群服务器之间相互配置互信;
3、使用rsync命令同步集群内的程序包;
4、统一管理应用的启停操作。
当然也可以搭建jenkins实现自动化部署
七、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
lssrc -g cluster
lssrc -ls clstrmgrES|grep state
lssrc -a|egrep "Sub|psv|gsc|cth"
lssrc -g rsct
lssrc -ls gsclvmd
lssrc -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'
八、运维工具箱
经验1、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
经验2、日志管理工具
日志管理工具有 Splunk、Sumo Logic、LogStash、GrayLog、Loggly 和 PaperTrails ,
传统的使用scp 或 rsync命名推送到日志服务器,
可以考虑使用ELK架构模式进行代码采集
经验3、Oracle 监控工具
Oracle 监控 首推 em,gridcontrol,zabbix
经验4、自主研究监控工具参考
可以参考:TriAquae,ZABBIX
有几个比较好的思路:
中小规模的监控,基本上靠一台服务器硬件和规模均可搞定
大中等规模的监控,就要考虑一下监控拓扑,硬件配备,是否需要使用代理,推荐使用节点定时发送信息push模式进行数据收集,监控数据库应该多多考虑数据存放和数据增长。
具体的场景,尤其是比如说ping或者telnet如何定时的去触发,使用什么方式,等等都需要去好好考虑一下。
经验5、PowerVM和VMWARE 日常运维工具
vmware 日常管理工具,除了vcenter外,还可以ESXTOP 命令行工具,对日常的性能监控和定位有很大帮助。
还可以结合powercli 进行虚拟机的批量创建等工作。
vmware的备份可以考虑vdp,nbu,tsm等
PowerVM 日常管理工具:
PowerVC是个不错的东东。以前使用director 进行结合vmcontrol 等模块,director 这个产品就是个鸡肋,做了这么多年,也没做好。
经验6、业务系统监控工具
OneApm,监控宝,原先CA 产品系列Wily 这些产品大多都可以做到应用或者java 类方面的监控。
经验7、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
本文转自shangshanyang51CTO博客,原文链接:http://blog.51cto.com/qqran/2071930 ,如需转载请自行联系原作者