12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

/proc/meminfoの情報をzabbixで収集してみる

Last updated at Posted at 2013-07-01

#meminfoファイルの中身をzabbix_senderでまとめて送信してみた
##はじめに
zabbixのメモリ関係のアイテムは、取得できるのがtotal、shared、free、buffers、cachedだけでちょっと大雑把(?)
そこでmeminfoに記載の情報をzabbixで取得してみようかな、と思った。
で、ユーザパラメータ辺りを使って項目別のアイテムを設定すると、アイテムの取得タイミングが個々で微妙にズレるのが気になるのでzabbix_senderでやってみました。
というお話。

##スクリプト

#!/bin/sh

if [ $# -ne 2 ] ; then
  echo "This script needs two argments." 1>&2
  exit 1
fi

zbxHOSTNAME="$1"
zbxSERVER="$2"
TIMESTAMP=`date +%s`

TEMPFILE="/tmp/zbxTMP$$"
ITEMPREFIX="system.meminfo."

cat /proc/meminfo |while read LINE
  do ARTICLE=`echo $LINE |cut -d":" -f1 | tr "()" "_"`
  ITEMNUM=`echo $LINE|cut -d":" -f2|sed -e "s/ kB/ * 1024/" |bc`
  echo "$zbxHOSTNAME $ITEMPREFIX$ARTICLE $TIMESTAMP $ITEMNUM"
done >$TEMPFILE

zabbix_sender -z $zbxSERVER -p 10051 -T -i $TEMPFILE >&2
echo $?

rm -f $TEMPFILE

###スクリプトの解説
/proc/meminfoの情報を、引数で受け取ったzabbixサーバのIPアドレス、アイテムを取得するマシンのホスト名(とスクリプト実行時の時刻)と併せてzabbix_sender機能でサーバに登録する。
ポイントは下記の2点ぐらい

  • アイテムのキーに”()”`が含まれるとアイテムが上手く登録できなかったので"_"に置換している。
  • キロバイト単位をバイト単位に変換している。単位の換算はzabbix側で宜しくやってくれる。

ファイルに記録した複数の値を一括してzabbix_senderで送信する方法については
Zabbix Senderで複数の値を一括登録 - ike-daiの日記
こちらを参考にさせて頂いた。

##アイテムの登録
アイテムのキーはsystem.meminfo.”meminfoファイル内の項目名”で整数型なトラッパーアイテムを登録しておく
zabbix_meminfo-item-setting.png
こんな設定をmeminfoファイルに含まれる項目の分だけ手動でやるとちょっとした苦行なのでうまい感じで省力化したいところ。

##スクリプトの起動
こんなアイテムを登録して設置したスクリプトを起動。
このアイテムの実行間隔で、上で設定したトラッパーなアイテムにスクリプトから値が登録されていく。
zabbix_meminfo_script-kick.png
見切れているキーの欄はこんな感じ

system.run[/etc/zabbix/externalscripts/zbxmeminfo.sh "{HOSTNAME}" "192.168.xxx.xxx"]
”192.168.xxx.xxx”はzabbixサーバのIPアドレス。
上述の各項目のアイテムと合わせてテンプレートにして{HOSTNAME}マクロを使っているので、スクリプト設置だけしてやれば複数サーバでの値の収集も比較的楽だと思う。
エージェントでEnableRemoteCommands=1を設定しないと動かない、はず。
ユーザパラメータに登録、crontabに登録でもいいかも。

##グラフにしてみた
zabbix_meminfo-items.png
グラフ本体よりも凡例の方が場所を取ってる、、、

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?