OSXでmunin-nodeを動かす

2009/02/07

munin OSX 管理者

t f B! P L
記事内に広告が含まれています。

Muninのソースコード自体は公式サイトなどから入手。依存関係のあるNetServerは、例えばp5-net-serverをMacPortsからインストール。
Muninを動かすユーザの準備と、インストール先などの指定をMakefile.configで行うのが主な作業。

ユーザの準備。[Mac OS X] ユーザ作成手順(dscl) - Life with ITが参考になる。Nodeとして動かす場合はグループだけ作成すればよさそう。

sudo dscl . -create /Groups/munin gid XXX
Gidはダブらないものを適当に。

Makefile.config。ユーザ/グループのチェックは不要ということで、デフォルトのままにしておく。


# This file specifies where Munin will look for things after you've
# run 'make' in the source directory.  Modify it to suit your needs.

# DESTDIR is empty during building, and optionally set to point to
# a shadow tree during make install.

#
# the base of the Munin installation.
#
#PREFIX     = $(DESTDIR)/opt/munin
PREFIX     = /usr/local

# Where Munin keeps its configurations (server.conf, client.conf, ++)
#CONFDIR    = $(DESTDIR)/etc/opt/munin
CONFDIR    = $(PREFIX)/etc/munin

# Server only - where to put munin-cron
BINDIR     = $(PREFIX)/bin

# Client only - where to put munin-node, munin-node-configure, and munin-run
SBINDIR    = $(PREFIX)/sbin

# Where to put text and html documentation
DOCDIR     = $(PREFIX)/doc

# Where to put man pages
MANDIR     = $(PREFIX)/man

# Where to put internal binaries and plugin repository
LIBDIR     = $(PREFIX)/lib

# Server only - Output directory
HTMLDIR    = $(PREFIX)/var/www
CGIDIR     = $(HTMLDIR)/cgi

# Client only - Where to put RRD files and other intenal data
#DBDIR      = $(DESTDIR)/var/opt/munin
DBDIR      = $(PREFIX)/var/munin

# Client only - Where plugins should put their states. Must be writable by
# group "munin", and should be preserved between reboots
PLUGSTATE  = $(DBDIR)/plugin-state

# Where Munin should place its logs.
LOGDIR     = $(DESTDIR)/var/log/munin

# Location of PID files and other statefiles. On the server, must be
# writable by the user "munin".
STATEDIR   = $(DESTDIR)/var/run/munin

# The perl interpreter to use
PERL       = $(shell which perl)

# The python interpreter to use (used by some plugins)
PYTHON     = /usr/bin/env python

# A modern (posix) shell.  We're not looking for arrays, but $() and
# other modern stuff is expected.  On a posix-system the expression
# below will find the right shell.  Most Unixes released the last 10
# years are POSIX compliant enough for this to work (he said bravely).
#
# On Linux /bin/sh, SunOS/Solaris /usr/xpg4/bin/sh or /bin/ksh
# In general: bash or ksh will work
#
GOODSH     = $(shell PATH=`getconf PATH` sh -c 'type sh | sed "s/.* //"')

# Path of bash for bash specific plugins
BASH       = /bin/bash

# Server only - Where to install the perl libraries
PERLLIB    = $(DESTDIR)$(shell $(PERL) -V:sitelib | cut -d"'" -f2)

# Client only - Install plugins for this architecture
OSTYPE     = $(shell uname | tr '[A-Z]' '[a-z]')

# How to figure out the hostname. (Only used in default configuration
# files)
HOSTNAME   = $(shell hostname)

# What is the safest way to create a tempfile.
# Default is to figure it out by testing various methods.
# Replace this with a known platform-specific method
MKTEMP     = $(shell ./test-mktemp)

# Munin version number.
VERSION    = $(shell cat RELEASE)

# User to run munin as
USER       = munin
GROUP      = munin

# Default user to run the plugins as
PLUGINUSER = nobody

# Which command to use to check if the USER and GROUP to run Munin as, exists.
GETENT = $(shell which getent || which true 2>/dev/null)
CHECKUSER  = $(shell $(GETENT) passwd $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2"))
CHECKGROUP = $(shell $(GETENT) group $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2"))

# For OSX, comment out the previous two lines and comment in these
#CHECKUSER  = $(shell nicl . -read /users/$(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2"))
#CHECKGROUP = $(shell nicl . -read /groups/$(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2"))

CHOWN      = chown
CHMOD      = chmod
CHGRP      = chgrp
# Check whether setruid functionality can be used
HASSETR = $(shell perl -e 'use Config; my @vars=("d_setruid", "d_setreuid", "d_setresuid"); foreach my $$var (@vars) { if ($$Config{$$var} eq "define") { print "1\n"; exit 0; } } print "0\n"; exit 0;' )

設定は終わったので、Makefileを見ながらnodeにあたる部分だけをコンパイル、インストール。/usr/local/etc/munin/munin-node.confにgroup rootとあるが、rootというグループはないのでwheelに直す。

/procがないので、pluginの自動検出をやってもほとんど拾えない。snmp経由でコツコツ自分で設定して行くべし。

楽天で探す
楽天市場
にほんブログ村 IT技術ブログへ

人気の投稿

ブログ アーカイブ

自己紹介

パワハラをなぁなぁで済まそうとする奴がCxOやっている会社を辞めました。ストックオプションは半分しか行使できなかったけど、あんな人たちには関わりたくないですね。

アフィリエイト

  • 当ブログ「Hiroaki's blog」は、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。
  • 当ブログでは、第三者配信による広告サービスを利用しています。このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報 (氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、ここをクリックしてください。
  • アクセストレードアフィリエイトプログラムに参加しています。
  • A8.netアフィリエイトプログラムに参加しています。
  • バリューコマースアフィリエイトプログラムに参加しています。
  • もしもアフィリエイトプログラムに参加しています。

プライバシーポリシー

当サイトにアクセスされる場合、IPアドレスなどの情報または閲覧状況に関するデータが機械的に生成され、場合によっては個人情報と関連付けられる可能性があります。プライバシー保護に関する適用法に準じて、これらの通信および閲覧に関するデータを収集、処理、および利用することがあります。
当サイトにアクセスされる場合、非個人情報(ブラウザの種類、OSの種類、ドメイン名、訪問数、平均滞在時間、ページ・ビューなど個人を特定できない情報)が自動収集される場合があります。当サイトのパフォーマンスやコンテンツを改善する目的で、これらの情報を利用する場合があります。
アフィリエイトでは成果を把握するためにcookie等を利用しています。それ以外の目的で使用されることはありません。詳しくは各社のページにて確認してください。
本サイトに掲載する情報に関しては、正しいものを提供することを務めていますが、掲載内容から、いかなる損失や損害などの被害が発生しても、当ブログでは責任を追いかねます。

改正電気通信事業法に関する表記

・掲載内容

当サイトでは成果報酬型広告/クリック型広告の効果測定のため、利用者の方のアクセス情報を外部事業者に送信しております。
当該の情報は個人を特定する情報ではございません。また当該の情報が目的外利用される事は一切御座いません。

1.送信される情報の内容
  • 広告の表示日時
  • 広告のクリック日時
  • 広告の計測に必要なクッキー情報
  • 広告表示時及び広告クリック時のIPアドレス
  • 広告表示時及び広告クリック時に使用されたインターネット端末およびインターネットブラウザの種類
2.送信先となる事業者の氏名又は名称
  • グーグル合同会社
  • 楽天グループ株式会社
  • アマゾンジャパン合同会社
  • ヤフー株式会社
  • 株式会社ファンコミュニケーションズ
  • 株式会社もしも
3.利用目的

成果報酬型広告/クリック型広告の効果測定および不正防止のため

QooQ