Tabla de contenido
1. Uso de comandos de estadísticas de recursos de Linux
1.1. Tasa de utilización del disco del sistema
1.2. Tasa de utilización del disco de datos
1.5. La carga del sistema en los últimos 15 minutos
1.6. Tiempo de funcionamiento continuo del sistema
2. Shell implementa la adquisición de información sobre recursos y la escritura en la base de datos
2.1. Escribir el archivo de configuración de la base de datos table.ini
2.2. Shell se da cuenta de la sincronización de la información de recursos del sistema
1. Uso de comandos de estadísticas de recursos de Linux
1.1. Tasa de utilización del disco del sistema
[root@datanode01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_datanode01-lv_root
44G 17G 26G 40% /
tmpfs 2.9G 12K 2.9G 1% /dev/shm
/dev/sda1 477M 28M 425M 7% /boot
/dev/sdb1 1.1T 190G 863G 19% /hadoop
[root@datanode01 ~]# df -h | sed -n '3p' ==========>> # sed取出第三行
44G 17G 26G 40% /
[root@datanode01 ~]# df -h | sed -n '3p' | awk -F ' ' '{print $4}' ==========>> # awk 取出
40%
[root@datanode01 ~]#
1.2. Tasa de utilización del disco de datos
[root@datanode01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_datanode01-lv_root
44G 17G 26G 40% /
tmpfs 2.9G 12K 2.9G 1% /dev/shm
/dev/sda1 477M 28M 425M 7% /boot
/dev/sdb1 1.1T 190G 863G 19% /hadoop
[root@datanode01 ~]# df -h | grep "/hadoop"
/dev/sdb1 1.1T 190G 863G 19% /hadoop
[root@datanode01 ~]# df -h | grep "/hadoop" | awk '{print $5}' # awk 空格拆分 取出百分比
19%
[root@datanode01 ~]#
1.3. Uso de CPU
[root@datanode01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 81100 1220896 148912 1124204 0 1 272 89 333 58 5 1 94 0 0
[root@datanode01 ~]# vmstat | sed -n '3p' =============>> #取出第三行
1 0 81100 1221888 148920 1123260 0 1 272 89 333 58 5 1 94 0 0
[root@datanode01 ~]# vmstat | sed -n '3p' | awk '{print $15}' # CPU的空闲率
94
[root@datanode01 ~]#
- swpd: memoria de intercambio usada (memoria)
- libre: memoria física libre (memoria)
- buff: la cantidad de memoria utilizada como búfer (memoria)
- caché: libro de memoria utilizado como caché (memoria)
- cs: el tiempo utilizado por el proceso del usuario. Expresado como porcentaje (sistema);
- us: el tiempo del proceso del usuario usando la CPU (CPU);
- sy: El tiempo utilizado por el proceso del sistema. Expresado como porcentaje (CPU);
- id: El tiempo de inactividad de la unidad central de procesamiento. Expresado como porcentaje (CPU);
1.4. Uso de la memoria
[root@datanode01 ~]# free -m
total used free shared buffers cached
Mem: 5852 4663 1188 0 146 1099
-/+ buffers/cache: 3417 2434
Swap: 5119 79 5040
[root@datanode01 ~]# free -m | grep Mem
Mem: 5852 4664 1187 0 146 1100
[root@datanode01 ~]# free -m | grep Mem | awk '{print $2}' =======>> # 取出 total
5852
[root@datanode01 ~]# free -m | grep Mem | awk '{print $3}' =======>> # 取出 used
4663
[root@datanode01 ~]#
1.5. La carga del sistema en los últimos 15 minutos
[root@datanode01 ~]# uptime
21:15:43 up 6:11, 6 users, load average: 0.40, 0.64, 0.73 # 1,10,15 分钟负载
[root@datanode01 ~]# uptime | awk -F ',' '{print $5}' # 逗号分隔 取出15分钟
0.72
[root@datanode01 ~]#
1.6. Tiempo de funcionamiento continuo del sistema
# cut 剪切内容,根据 -d 指定的分隔符和 -f 列出的字段来提取内容
[root@datanode01 ~]# uptime
22:06:25 up 7:02, 6 users, load average: 0.53, 0.64, 0.73
[root@datanode01 ~]# uptime | cut -d ',' -f 1
22:06:39 up 7:02
[root@datanode01 ~]# uptime | cut -d ',' -f 1 | awk -F ' ' '{print $3}'
7:04
[root@datanode01 ~]#
2. Shell implementa la adquisición de información sobre recursos y la escritura en la base de datos
2.1. Escribir el archivo de configuración de la base de datos table.ini
[kangll@client ~]$ cat /hadoop/datadir/script/hadoop/table.ini
[xxx_CONNECT]
url=xxx
port=1433
username=PCS.Support
password=321@win#
dbname=HDP_TEST
customer=xxx_
2.2 Shell se da cuenta de la sincronización de la información de recursos del sistema
set -x
# 系统盘的使用率
get_sys_used_ratio(){
ration=`ssh $1 "df -h |grep centos-root | awk '{print $5}'"`
ration=`echo $ration | awk -F' ' '{print $5}'`
echo $ration
}
# 数据盘的使用率
get_data_used_ratio(){
ration=`ssh $1 "df -h | grep "/app" | awk '{print $5}'"`
ration=`echo $ration |awk '{print $5}'`
echo $ration
}
# cpu的使用率
get_cpu_used_ratio(){
ration=`ssh $1 "vmstat |sed -n '3p'|awk '{print $2}' "`
ration=`echo $ration |awk '{print $13}'`
echo "${ration}%"
}
# 内存使用率
get_mem_used_ratio(){
total=`ssh $1 "free -m | grep Mem | awk '{print $2}'"`
total=`echo $total |awk '{print $2}'`
used=`ssh $1 "free -m | grep Mem | awk '{print $3}'"`
used=`echo $used |awk '{print $3}'`
ratio=`echo "scale=2;($used/$total)*100"|bc`
echo "${ratio}%"
}
# 系统最近15分钟的负载
get_load_avg_last15min(){
value=`ssh $1 "uptime | awk -F ',' '{print $6}'"`
value=`echo $value |awk -F ',' '{print $6}'`
echo $value
}
# 系统连续运行时长
get_sys_running_time(){
running_time=`ssh $1 "uptime | cut -d ',' -f 1 | awk -F' ' '{print $3}'"`
running_time=`echo ${running_time} |awk -F' ' '{print $3}'`
echo $running_time
}
function ReadConnect(){
ReadINI=`awk -F '=' '/\['$2'\]/{a=1}a==1&&$1~/^'$3'$/{print $2;exit}' $1`
}
batchCustomer=xxx_
table_ini=/hadoop/datadir/script/hadoop/ipvaSum/table.ini
ReadConnect $table_ini "${batchCustomer}CONNECT" url
server=$ReadINI
ReadConnect $table_ini "${batchCustomer}CONNECT" port
port=$ReadINI
ReadConnect $table_ini "${batchCustomer}CONNECT" dbname
database=$ReadINI
ReadConnect $table_ini "${batchCustomer}CONNECT" username
user=$ReadINI
ReadConnect $table_ini "${batchCustomer}CONNECT" password
paw=$ReadINI
for i in client namenode snamenode ;
do
datebatch=`date +'%Y-%m-%d %H:%M:%S'`
hostname=$i
running_time=`get_sys_running_time $i`
echo "服务器持续运行时间:$running_time days"
load_avg=`get_load_avg_last15min $i`
echo "近15min的平均负载为:$load_avg"
sys_reatio=`get_sys_used_ratio $i`
echo "系统盘使用率:$sys_reatio"
data_ratio=`get_data_used_ratio $i`
echo "数据盘的使用率:$data_ratio"
cpu_used=`get_cpu_used_ratio $i`
echo "服务器cpu的使用率:$cpu_used"
mem_ratio=`get_mem_used_ratio $i`
echo "内存使用率:$mem_ratio"
/opt/mssql-tools/bin/sqlcmd -S $server -U $user -P $paw -d ${database} -Q "
INSERT INTO dbo.os_monitor(hostName,sysDiskUsedReatio,dataDiskUsedReatio,memUsedReatio,cpuUsedReatio,last15minLoadAvg,sysRunningTime,createTime,modifyTime)
VALUES('${hostname}','${sys_reatio}','${data_ratio}','${mem_ratio}','${cpu_used}','${load_avg}','${running_time}','${datebatch}','${datebatch}');
"
done