Las estadísticas de información de recursos de Linux se escriben en SQLServer (por cierto, aprenda los comandos de Linux awk, sed)

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.3. Uso de CPU

1.4. Uso de la memoria

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

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/qq_35995514/article/details/111596573
Recomendado
Clasificación