ELK 設置定時清理腳本清理索引
1043
2025-03-31
文章目錄
腳本
啟動的兩種方式
方式一 注冊到系統Cron
方式二
運行結果
linux內存、cpu、磁盤IO
腳本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
啟動的兩種方式
方式一 注冊到系統Cron
registMonitor(){ echo "*/5 * * * * sh ${current_path}/MonitorES.sh 95" > /var/spool/cron/root }
1
2
3
這種方式有個缺點,沒法停止服務,除非把cron也注釋掉。。。
方式二
while循環 比如這個守護
#!/bin/bash logfile=/watch.log touch $logfile while [ 1 -eq 1 ] do AdminProcNum=`ps -ef | grep "org.elasticsearch.bootstrap.Elasticsearch" | grep -v grep | wc -l` echo "--------------------------- $(date "+%Y-%m-%d %H:%M:%S") ElasticsearchProcNum: $AdminProcNum -----------------------------------------" >> ${logfile} 2>&1 if [ $AdminProcNum -lt 1 ] then echo "start" >> /xxx.log su elasticsearch<> ${logfile} 2>&1 fi sleep 60 done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
運行結果
一天一個文件 ,注意清理
==========================begin 2020-09-28 08:20:01=============================================== total used free shared buff/cache available Mem: 3940 2652 635 6 653 1047 Swap: 2047 829 1218 Memory Usage: 2652/3940MB (67.31%) Disk Usage: 16/18GB (96%) CPU Load: 0.38 CPU Load: 0.10 當前主機內存使用率:67% ES實際使用內存:1302560 主機總內存:4035036 ES內存/總內存:1302560/4035036=32% 當前主機內存使用67 小于閾值 95, Do Nothing ==========================end 2020-09-28 08:20:01================================================= ==========================begin 2020-09-28 08:25:01=============================================== total used free shared buff/cache available Mem: 3940 2651 634 6 653 1047 Swap: 2047 829 1218 Memory Usage: 2651/3940MB (67.28%) Disk Usage: 16/18GB (96%) CPU Load: 0.56 CPU Load: 0.10 當前主機內存使用率:67% ES實際使用內存:1302568 主機總內存:4035036 ES內存/總內存:1302568/4035036=32% 當前主機內存使用67 小于閾值 95, Do Nothing ==========================end 2020-09-28 08:25:01=================================================
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
linux內存、cpu、磁盤IO
#!/bin/bash # 獲取要監控的本地服務器IP地址 IP=`ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'` echo "IP地址:"$IP # 獲取cpu總核數 cpu_num=`grep -c "model name" /proc/cpuinfo` echo "cpu總核數:"$cpu_num # 1、獲取CPU利用率 # 獲取用戶空間占用CPU百分比 cpu_user=`top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d "%"` echo "用戶空間占用CPU百分比:"$cpu_user # 獲取內核空間占用CPU百分比 cpu_system=`top -b -n 1 | grep Cpu | awk '{print $4}' | cut -f 1 -d "%"` echo "內核空間占用CPU百分比:"$cpu_system # 獲取空閑CPU百分比 cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}' | cut -f 1 -d "%"` echo "空閑CPU百分比:"$cpu_idle # 獲取等待輸入輸出占CPU百分比 cpu_iowait=`top -b -n 1 | grep Cpu | awk '{print $10}' | cut -f 1 -d "%"` echo "等待輸入輸出占CPU百分比:"$cpu_iowait #2、獲取CPU上下文切換和中斷次數 # 獲取CPU中斷次數 cpu_interrupt=`vmstat -n 1 1 | sed -n 3p | awk '{print $11}'` echo "CPU中斷次數:"$cpu_interrupt # 獲取CPU上下文切換次數 cpu_context_switch=`vmstat -n 1 1 | sed -n 3p | awk '{print $12}'` echo "CPU上下文切換次數:"$cpu_context_switch #3、獲取CPU負載信息 # 獲取CPU15分鐘前到現在的負載平均值 cpu_load_15min=`uptime | awk '{print $11}' | cut -f 1 -d ','` echo "CPU 15分鐘前到現在的負載平均值:"$cpu_load_15min # 獲取CPU5分鐘前到現在的負載平均值 cpu_load_5min=`uptime | awk '{print $10}' | cut -f 1 -d ','` echo "CPU 5分鐘前到現在的負載平均值:"$cpu_load_5min # 獲取CPU1分鐘前到現在的負載平均值 cpu_load_1min=`uptime | awk '{print $9}' | cut -f 1 -d ','` echo "CPU 1分鐘前到現在的負載平均值:"$cpu_load_1min # 獲取任務隊列(就緒狀態等待的進程數) cpu_task_length=`vmstat -n 1 1 | sed -n 3p | awk '{print $1}'` echo "CPU任務隊列長度:"$cpu_task_length #4、獲取內存信息 # 獲取物理內存總量 mem_total=`free | grep Mem | awk '{print $2}'` echo "物理內存總量:"$mem_total # 獲取操作系統已使用內存總量 mem_sys_used=`free | grep Mem | awk '{print $3}'` echo "已使用內存總量(操作系統):"$mem_sys_used # 獲取操作系統未使用內存總量 mem_sys_free=`free | grep Mem | awk '{print $4}'` echo "剩余內存總量(操作系統):"$mem_sys_free # 獲取應用程序已使用的內存總量 mem_user_used=`free | sed -n 3p | awk '{print $3}'` echo "已使用內存總量(應用程序):"$mem_user_used # 獲取應用程序未使用內存總量 mem_user_free=`free | sed -n 3p | awk '{print $4}'` echo "剩余內存總量(應用程序):"$mem_user_free # 獲取交換分區總大小 mem_swap_total=`free | grep Swap | awk '{print $2}'` echo "交換分區總大小:"$mem_swap_total # 獲取已使用交換分區大小 mem_swap_used=`free | grep Swap | awk '{print $3}'` echo "已使用交換分區大小:"$mem_swap_used # 獲取剩余交換分區大小 mem_swap_free=`free | grep Swap | awk '{print $4}'` echo "剩余交換分區大小:"$mem_swap_free #5、獲取磁盤I/O統計信息 echo "指定設備(/dev/sda)的統計信息" # 每秒向設備發起的讀請求次數 disk_sda_rs=`iostat -kx | grep sda| awk '{print $4}'` echo "每秒向設備發起的讀請求次數:"$disk_sda_rs # 每秒向設備發起的寫請求次數 disk_sda_ws=`iostat -kx | grep sda| awk '{print $5}'` echo "每秒向設備發起的寫請求次數:"$disk_sda_ws # 向設備發起的I/O請求隊列長度平均值 disk_sda_avgqu_sz=`iostat -kx | grep sda| awk '{print $9}'` echo "向設備發起的I/O請求隊列長度平均值"$disk_sda_avgqu_sz # 每次向設備發起的I/O請求平均時間 disk_sda_await=`iostat -kx | grep sda| awk '{print $10}'` echo "每次向設備發起的I/O請求平均時間:"$disk_sda_await # 向設備發起的I/O服務時間均值 disk_sda_svctm=`iostat -kx | grep sda| awk '{print $11}'` echo "向設備發起的I/O服務時間均值:"$disk_sda_svctm # 向設備發起I/O請求的CPU時間百分占比 disk_sda_util=`iostat -kx | grep sda| awk '{print $12}'` echo "向設備發起I/O請求的CPU時間百分占比:"$disk_sda_util
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
詳解
Shell 任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。