0
0

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 3 years have passed since last update.

sarのディスク情報をMackerelへメトリクス投稿する

Posted at

★はじめに
sarの情報をMackerelに飛ばしたいなぁとおもったけど
ちょうどいいやり方が見つからないので自分で考えた

★参考
sadfを使ってjson形式でデータを取得する
https://miyakawataku.hatenablog.com/entry/20140202/1391330618

jsonデータを読み込む
https://qiita.com/kikuchiTakuya/items/53990fca06fb9ba1d8a7

pythonつかってカスタムメトリックをとばす
https://qiita.com/yhidetoshi/items/f0b20353714e3f1bd2f4

python上でコマンド実行
https://qiita.com/tdrk/items/9b23ad6a58ac4032bb3b

sarの項目の説明
https://tech-lab.sios.jp/archives/15817

★できました!
個人的に気を付けたポイントは↓↓(改善の余地がありすぎて泣ける…)
・sarの情報をjsonでとってくるためにsadfをつかったところ。
・それをpythonつかってうまいことjsonからデータ抜いてきたところ。
・うまいことutilの情報だけ抜くにあたっては泥臭くpythonを実行してどうやってとってくるかを確認した
・実行環境がCentOS7だったからかデフォルトで用意されていたpythonはpython2だったのでpython3の書き方にならないように気を付けた。

/opt/mackerel/getDiskInfo.py
# !/usr/bin/python
import subprocess
import json
import os
import time
import sys
from random import randint
from collections import defaultdict

def mkr_prepare():
    if (os.environ.get('MACKEREL_AGENT_PLUGIN_META') == '1'):
        metrics = [
            {
                            'name':'util',
                            'label':'util'
                    }
        ]
        meta['graphs']['sysstat.disk'] = {
                        'label': 'sysstat-disk',
                        'unit': 'float',
                        'metrics': metrics
        }
        print(json.dumps(meta))
        sys.exit(0)

if __name__ == '__main__':

    mkr_prepare()

    try:
        res = subprocess.check_output(['sadf','-T','-j','--','-d','1','1'])
        res_json = json.loads(res)
    except:
        print "Error."

    util_percent = res_json['sysstat']['hosts'][0]['statistics'][0]['disk'][0]['util-percent']

    print('\t'.join(['sysstat.disk.util', str(util_percent), str(time.time())]))

★試し実行

# python getDiskInfo.py

★config更新

# vi /etc/mackerel-agent/mackerel-agent.conf

Image.png

★結果がコチラ

Image.png

★おわりに
次はもうちょっと気の利いたマカレル監視のアイデアを投稿できるようにしておこうと思いました。。。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?