Les statistiques d'informations sur les ressources Linux sont écrites sur SQLServer (en passant, apprenez les commandes Linux awk, sed)

table des matières

1. Utilisation des commandes de statistiques de ressources Linux

1.1. Taux d'utilisation du disque système

1.2. Taux d’utilisation du disque de données

 1.3. Utilisation du processeur

1.4. Utilisation de la mémoire

1.5. La charge du système au cours des 15 dernières minutes

1.6. Temps de fonctionnement continu du système

2. Shell met en œuvre l'acquisition d'informations sur les ressources et l'écriture dans la base de données

2.1. Ecrire le fichier de configuration de la base de données table.ini

2.2. Shell réalise la synchronisation des informations sur les ressources système


1. Utilisation des commandes de statistiques de ressources Linux

1.1. Taux d'utilisation du disque système

​[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. Taux d’utilisation du disque de données

[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. Utilisation du processeur

[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: mémoire swap utilisée (mémoire)
  • free: mémoire physique libre (mémoire)
  • buff: la quantité de mémoire utilisée comme tampon (mémoire)
  • cache: livre de mémoire utilisé comme cache (mémoire)
  • cs: le temps utilisé par le processus utilisateur. Exprimé en pourcentage (système);
  • us: l'heure du processus utilisateur utilisant la CPU (CPU);
  • sy: le temps utilisé par le processus système. Exprimé en pourcentage (CPU);
  • id: temps d'inactivité de l'unité centrale. Exprimé en pourcentage (CPU);

1.4. Utilisation de la mémoire

[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 charge du système au cours des 15 dernières minutes

[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. Temps de fonctionnement continu du système

# 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 met en œuvre l'acquisition d'informations sur les ressources et l'écriture dans la base de données

2.1. Ecrire le fichier de configuration de la base de données 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 réalise la synchronisation des informations sur les ressources système

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

 

 

 

 

 

Je suppose que tu aimes

Origine blog.csdn.net/qq_35995514/article/details/111596573
conseillé
Classement