91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

zabbix 自定義腳本

發布時間:2020-05-31 08:28:17 來源:網絡 閱讀:920 作者:季先生1 欄目:安全技術

這個腳本的思路,自定義一個key,然后就是通過查看文件 /proc/net/dev  里面的數值,來計算實時網卡流量,其實我算的是一個平均值。分為進和出。如果這個腳本每隔1分鐘執行一次,那么算出來的流量值就是1分鐘的平均值。最終得到網卡流量趨勢圖。


客戶端操作

# vim /etc/zabbix/zabbix_agentd.conf

# UnsafeUserParameters=0 取消注釋并修改為1,在下面增加一行

UserParameter=my.net.if[*],/usr/local/sbin/zabbix/net.sh $1 $2

my.net.if[相當于命令名字,他是key

其中UserParameter用來自定義鍵值,(類似于net.if.in),自己寫的腳本往往會有參數,[*] 表示他有自己的參數,所以需要加[*],這是固定寫法,如果腳本壓根就沒有什么參數,那么這個就省了。逗號后面就是我們寫的腳本的路徑了,再后面就是要用到的參數,有幾個就寫幾。如果沒有參數,后面的 $1 $2 還有前面的 [*] 就都可以省略。

不足之處:

腳本需要工作中不斷的進行改進。

并沒有針對每個網卡設定單獨的文件,所有網卡使用同一個日志文件

# vim /usr/local/sbin/zabbix/net.sh

#!/bin/bash

eth=$1

io=$2

net_file="/proc/net/dev"

if [ $2 == "in" ]

then

n_new=`grep "$eth" $net_file|awk '{print $2}'`

n_old=`tail -1 /tmp/neti.log`

n=`echo "$n_new-$n_old"|bc`

d_new=`date +%s`

d_old=`tail -2 /tmp/neti.log|head -1`

d=`echo "$d_new-$d_old"|bc`

if_net=`echo "$n/$d"|bc`

echo $if_net

date +%s>>/tmp/neti.log

grep "$eth" $net_file|awk '{print $2}'>>/tmp/neti.log

elif [ $2 == "out" ]

then

n_new=`grep "$eth" $net_file|awk '{print $10}'`

n_old=`tail -1 /tmp/neto.log`

n=`echo "$n_new-$n_old"|bc`

d_new=`date +%s`

d_old=`tail -2 /tmp/neto.log|head -1`

d=`echo "$d_new-$d_old"|bc`

if_net=`echo "$n/$d"|bc`

echo $if_net

date +%s>>/tmp/neto.log

grep "$eth" $net_file|awk '{print $10}'>>/tmp/neto.log

else

echo 0

fi

----------------------------------------------------------------------------------------------------------------------------

詳解

eth=$1 # 第一個參數,網卡名字,腳本并不針對特定的網卡,可以監控很多網卡,監控進和出

io=$2 # 第二個參數,并非io,而是in or out 的簡寫

net_file="/proc/net/dev" # 最關鍵文件,網卡流量就是從這個文件獲得的。這個腳本的思路,就是通過查看文件 /proc/net/dev  里面的數值,來計算實時網卡流量,其實我算的是一個平均值。分為進和出。如果這個腳本每隔1分鐘執行一次,那么算出來的流量值就是1分鐘的平均值。

n_new=`grep "$eth" $net_file|awk '{print $2}'` # 通過上面的文件,獲得最新的一個數值

n_old=`tail -1 /tmp/neti.log` # 查看上一次網卡流量多少

n=`echo "$n_new-$n_old"|bc` # n 是兩者的差值(上面二個新老網卡流量做減法)

d_new=`date +%s` # 記錄當前的時間戳

d_old=`tail -2 /tmp/neti.log|head -1` # 查找上一次的時間戳

d=`echo "$d_new-$d_old"|bc` # d 是兩個時間間隔

if_net=`echo "$n/$d"|bc` # 求平均值

echo $if_net # 輸出平均值

date +%s>>/tmp/neti.log # 當前時間戳輸入到日志中

grep "$eth" $net_file|awk '{print $2}'>>/tmp/neti.log # 當前流量輸入到日志中

----------------------------------------------------------------------------------------------------------------------------


值與上一次減一下然后除一下,求一個平均值

# chmod a+x /usr/local/sbin/zabbix/net.sh # 更改權限

執行操作執行,先創建腳本里面要使用的目錄和文件

# touch /tmp/net[io].log

# date +%s >>/tmp/neti.log

# grep eth0 /proc/net/dev |awk '{print $2}' >>/tmp/neti.log

# date +%s >>/tmp/neto.log

# grep eth0 /proc/net/dev |awk '{print $10}' >>/tmp/neto.log

# chown zabbix  /tmp/net[io].log

執行腳本檢測:

# /usr/local/sbin/zabbix/net.sh eth0 in

# /usr/local/sbin/zabbix/net.sh eth0 out

此時檢測 eth2 或者其他網卡的流量會報錯,因為執行腳本之前,grep 過濾出來的是 eth0 的流量,這里直接使用 eth2 得出的數字肯定是錯誤的。所以,如果是想檢測 eth2 的流量,那么在 grep 和 touch 的時候,就應該使用 eth2。

# /etc/init.d/zabbix-agent restart

服務端

# zabbix_get -s 192.168.32.150 -p10050 -k "my.net.if[eth0,out]"查看out網卡流量,單位字節

395

# zabbix_get -s 192.168.32.150 -p10050 -k "my.net.if[eth0,in]" 查看in網卡流量,單位字節

308

WEB端

zabbix 自定義腳本

下圖的 key 只能手寫,并不能選擇。

創建eth0_net_in和eth0_net_out


查看是否添加成功


需求:統計每分鐘的在線人數,通過數據庫獲得在線人數。

思路:

1、客戶端增加 key

UserParameter=my.online,/usr/local/sbin/zabbix/online.sh

#因為這個需求沒有參數,所以去掉參數選項

2、編寫腳本

從數據庫里面獲得每分鐘的在線人數

3、測試

服務端進行操作

# zabbix_get -s 192.168.32.150 -p10050 -k "my.online"

如果返回了參數,那么就代表成功。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

咸丰县| 扎鲁特旗| 宜兴市| 潞城市| 光泽县| 大丰市| 兴城市| 崇仁县| 太原市| 保靖县| 铁力市| 都江堰市| 襄城县| 西城区| 隆回县| 岳普湖县| 监利县| 都江堰市| 新和县| 沧州市| 东山县| 屯留县| 吕梁市| 乐安县| 横峰县| 修水县| 姜堰市| 文安县| 新巴尔虎右旗| 平湖市| 云和县| 安平县| 沿河| 蓝田县| 开封市| 东乡县| 灵石县| 麟游县| 乌兰浩特市| 景泰县| 遂溪县|