<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
		<id>https://nagios.x-trans.jp/nagios/index.php?action=history&amp;feed=atom&amp;title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%A8%E3%81%9D%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E7%90%86%E8%A7%A3</id>
		<title>マクロとその動作についての理解 - 変更履歴</title>
		<link rel="self" type="application/atom+xml" href="https://nagios.x-trans.jp/nagios/index.php?action=history&amp;feed=atom&amp;title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%A8%E3%81%9D%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E7%90%86%E8%A7%A3"/>
		<link rel="alternate" type="text/html" href="https://nagios.x-trans.jp/nagios/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%A8%E3%81%9D%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E7%90%86%E8%A7%A3&amp;action=history"/>
		<updated>2026-04-17T01:02:36Z</updated>
		<subtitle>このウィキのこのページに関する変更履歴</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://nagios.x-trans.jp/nagios/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%A8%E3%81%9D%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E7%90%86%E8%A7%A3&amp;diff=300&amp;oldid=prev</id>
		<title>Wikiadmin: ページの作成: == マクロ Macros== Nagiosがとても柔軟である主要な特徴のひとつにコマンド定義でマクロを使えるという能力があります。マクロはあな…</title>
		<link rel="alternate" type="text/html" href="https://nagios.x-trans.jp/nagios/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%A8%E3%81%9D%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E7%90%86%E8%A7%A3&amp;diff=300&amp;oldid=prev"/>
				<updated>2010-08-31T04:32:03Z</updated>
		
		<summary type="html">&lt;p&gt;ページの作成: == マクロ Macros== Nagiosがとても柔軟である主要な特徴のひとつにコマンド定義でマクロを使えるという能力があります。マクロはあな…&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== マクロ Macros==&lt;br /&gt;
Nagiosがとても柔軟である主要な特徴のひとつにコマンド定義でマクロを使えるという能力があります。マクロはあなたのコマンドで、ホスト、サービスやその他のソースからの情報参照を許可します。 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Macroの代替 - マクロの動作 Macro Substitution - How Macros Work==&lt;br /&gt;
Nagiosでコマンドを実行する前に、コマンド定義の対応する値を見つけることができれば、それはどんなマクロでも置き換えることができます。このマクロの代替はNagiosが実行する様々なコマンドのタイプで発生します - ホストとサービスチェック、通知、イベントハンドラ、その他。&lt;br /&gt;
&lt;br /&gt;
特定のマクロは他のマクロ自身を含むかもしれません。 それらは、 $HOSTNOTES$, $HOSTNOTESURL$, $HOSTACTIONURL$, $SERVICENOTES$, $SERVICENOTESURL$, and $SERVICEACTIONURL$ マクロを含みます。 &lt;br /&gt;
&lt;br /&gt;
==例 1: ホストアドレスマクロ Example 1: Host Address Macro ==&lt;br /&gt;
コマンド定義でホストとサービスのマクロを使う際、これらはコマンドが実行されているホストかサービスの値を参照します。例を示しましょう。我々はホスト定義を用いて check_ping コマンドを以下のように定義しているとします。 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define host{&lt;br /&gt;
&lt;br /&gt;
	host_name		linuxbox&lt;br /&gt;
&lt;br /&gt;
	address		        192.168.1.2&lt;br /&gt;
&lt;br /&gt;
	check_command    	check_ping&lt;br /&gt;
&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
define command{&lt;br /&gt;
&lt;br /&gt;
	command_name    check_ping&lt;br /&gt;
&lt;br /&gt;
	command_line    /usr/local/nagios/libexec/check_ping -H $HOSTADDRESS$ -w 100.0,90% -c 200.0,60%&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ホストチェックの際に展開された/最終的なコマンドラインは以下のようになります。: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/nagios/libexec/check_ping -H 192.168.1.2 -w 100.0,90% -c 200.0,60%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
とてもシンプルでしょう? この美しさは、無制限のホストのチェックに、 1つのコマンド定義を使うことができるということです。各々のホストのアドレスが、実行前にコマンドラインに自動的に代入されるので、各々のホストは同じコマンド定義でチェックすることができます&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 例 2: コマンド引数マクロ Example 2: Command Argument Macros ==&lt;br /&gt;
あなたはコマンドに引数を持たせることが出来、 それはコマンド定義よりむしろ元の形のまま手軽に行えます。 引数はオブジェクト定義 (例　ホストやサービス)で指定し、コマンド名からはエクスクラメーションマーク(!)で区切ります: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define service{&lt;br /&gt;
&lt;br /&gt;
	host_name		linuxbox&lt;br /&gt;
&lt;br /&gt;
	service_description	PING&lt;br /&gt;
&lt;br /&gt;
	check_command	        check_ping!200.0,80%!400.0,40%&lt;br /&gt;
&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上の例では、サービスチェックコマンドに2つの引数を持っています ( [http://nagios.sourceforge.net/docs/3_0/macrolist.html#arg $ARGn$] マクロを参照して下さい)。 $ARG1$ マクロは &amp;quot;200.0,80%&amp;quot; そして $ARG2$ は &amp;quot;400.0,40%&amp;quot; になります(両方ともダブルクォートはありません)。 check_ping コマンド定義より早くホスト定義が以下のようにされているとします: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command{&lt;br /&gt;
&lt;br /&gt;
	command_name    check_ping&lt;br /&gt;
&lt;br /&gt;
	command_line    /usr/local/nagios/libexec/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
展開された/最終的にサービスチェックで実行されるコマンドラインは以下のようになります: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/nagios/libexec/check_ping -H 192.168.1.2 -w 200.0,80% -c 400.0,40%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Hint.gif|bottom]]豆知識: もし、あなたが、感嘆符 (!) の文字をコマンド引数で用いる必要がある場合、バックスラッシュ (\) でエスケープします。もしあなたが、コマンド引数の中でバックスラッシュを含む必要がある場合、それらもバックスラッシュでエスケープしなくてはいけません&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== オンデマンドマクロ On-Demand Macros ==&lt;br /&gt;
通常、コマンド定義でホストとサービスのマクロを使う時、コマンドが実行されているホストやサービスの値を参照します。例えば、ホストチェックコマンドが&amp;quot;linuxbox&amp;quot;という名前に対して実行される時、全ての  [http://nagios.sourceforge.net/docs/3_0/macrolist.html 基本ホストマクロ] はホスト(&amp;quot;linuxbox&amp;quot;) の値を参照します。 &lt;br /&gt;
&lt;br /&gt;
コマンドの中で別のホストやサービス(コマンドを実行していないホスト)の値を参照したいのであれば、 &amp;quot;オンデマンド&amp;quot;マクロと呼ばれるものを使うことができます。オンデマンドマクロは通常のマクロに見えますが、ホストやサービスが得るべき値を含んでいる事だけが違います。以下にあるのは基本的なオンデマンドマクロのフォーマットです: &lt;br /&gt;
&lt;br /&gt;
*$HOSTMACRONAME:host_name$&lt;br /&gt;
*$SERVICEMACRONAME:host_name:service_description$&lt;br /&gt;
&lt;br /&gt;
HOSTMACRONAMEとSERVICEMACRONAMEを[http://nagios.sourceforge.net/docs/3_0/macrolist.html ここで]見つけられる、サービスマクロの標準のホストのひとつの名前に置き替えてください。 &lt;br /&gt;
&lt;br /&gt;
マクロ名がコロン(:)によってホストかサービス識別子と分けられる事に注意してください。またオンデマンドサービスマクロのために、サービス識別子がコロン(:)によって分けられたホスト名とサービス記述の両方から成ります。 &lt;br /&gt;
&lt;br /&gt;
[[ファイル:Hint.gif|bottom]] On-demand service macros can contain an empty host name field. In this case the name of the host associated with the service will automatically be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
オンデマンドホストとサービスマクロの例は次の通り: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$HOSTDOWNTIME:myhost$                        &amp;lt;--- On-demand host macro&lt;br /&gt;
&lt;br /&gt;
$SERVICESTATEID:novellserver:DS Database$    &amp;lt;--- On-demand service macro&lt;br /&gt;
&lt;br /&gt;
$SERVICESTATEID::CPU Load$                   &amp;lt;--- On-demand service macro with blank host name field&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
また、オンデマンドマクロもホストグループ、サービスグループ、コンタクトおよびコンタクトグループマクロに利用可能です。 例えば: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CONTACTEMAIL:john$                          &amp;lt;--- On-demand contact macro&lt;br /&gt;
&lt;br /&gt;
$CONTACTGROUPMEMBERS:linux-admins$           &amp;lt;--- On-demand contactgroup macro&lt;br /&gt;
&lt;br /&gt;
$HOSTGROUPALIAS:linux-servers$               &amp;lt;--- On-demand hostgroup macro&lt;br /&gt;
&lt;br /&gt;
$SERVICEGROUPALIAS:DNS-Cluster$              &amp;lt;--- On-demand servicegroup macro&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== オンデマンドグループマクロ On-Demand Group Macros ==&lt;br /&gt;
あなたは、あなたのオンデマンドマクロ宣言のための特別なフォーマットを使用することによって、特定のグループにおける全てのコンタクト、ホスト、またはサービスのまたがってマクロの値を得ることができます。あなたは以下のように、オンデマンドマクロにおける特定のホストグループ、サービスグループ、またはコンタクトグループ名に参照をつけることによってこれをします。： &lt;br /&gt;
*$HOSTMACRONAME:hostgroup_name:delimiter$&lt;br /&gt;
*$SERVICEMACRONAME:servicegroup_name:delimiter$&lt;br /&gt;
*$CONTACTMACRONAME:contactgroup_name:delimiter$&lt;br /&gt;
&lt;br /&gt;
HOSTMACRONAME、SERVICEMACRONAMEとCONTACTMACRONAMEを、 [http://nagios.sourceforge.net/docs/3_0/macrolist.html ここ]で見つけられる標準のホスト、サービスまたはコンタクトのひとつの名前に置き替えてください。あなたが指定するデリミタは、各グループメンバーのためのマクロ値を切り離すのに使用されます。 &lt;br /&gt;
&lt;br /&gt;
例えば、以下のマクロはhg1ホストグループのメンバーであるホストのための、ホスト状態のidのコンマで切り離されたリストを返すでしょう: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$HOSTSTATEID:hg1:,$&lt;br /&gt;
&lt;br /&gt;
This macro definition will return something that looks like this: &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
このマクロ定義はこれに似ている何かを返すでしょう:&lt;br /&gt;
&lt;br /&gt;
0,2,1,1,0,0,2&lt;br /&gt;
&lt;br /&gt;
== カスタム可変マクロ Custom Variable Macros ==&lt;br /&gt;
Any 「custom object variables」that you define in host, service, or contact definitions are also available as macros. あなたがホスト、サービスまたはコンタクト定義において定義するどんな [http://nagios.sourceforge.net/docs/3_0/customobjectvars.html カスタムオブジェクト変数]もマクロとして利用可能です。カスタム可変マクロは以下の通り指定されます: &lt;br /&gt;
*$_HOSTvarname$&lt;br /&gt;
*$_SERVICEvarname$&lt;br /&gt;
*$_CONTACTvarname$&lt;br /&gt;
&lt;br /&gt;
&amp;quot;_MACADDRESS&amp;quot;と呼ばれているカスタム変数の、以下のホスト定義で取ってください…&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define host{&lt;br /&gt;
&lt;br /&gt;
	host_name		linuxbox&lt;br /&gt;
&lt;br /&gt;
	address		        192.168.1.1&lt;br /&gt;
&lt;br /&gt;
	_MACADDRESS	        00:01:02:03:04:05&lt;br /&gt;
&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre &amp;gt;&lt;br /&gt;
&lt;br /&gt;
_MACADDRESSのカスタム変数は、$_HOSTMACADDRESS$と呼ばれるマクロで利用可能でしょう。カスタムオブジェクト変数と、それらをマクロにどのように使用できるかに関する詳しい情報を[http://nagios.sourceforge.net/docs/3_0/customobjectvars.html ここ]で見つけることができます。 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== マクロ浄化 Macro Cleansing ==&lt;br /&gt;
実行されるべきコマンドに代用する前に、潜在的に危険なシェルメタ文字列をいくつかのマクロから取り去ります。マクロからどのキャラクタを取り去るかは[http://nagios.sourceforge.net/docs/3_0/configmain.html#illegal_macro_output_chars illegal_macro_output_chars]の設定内容に依ります。潜在的に危険な文字列は以下のマクロから取り去られます: &lt;br /&gt;
&lt;br /&gt;
#$HOSTOUTPUT$&lt;br /&gt;
#$LONGHOSTOUTPUT$&lt;br /&gt;
#$HOSTPERFDATA$&lt;br /&gt;
#$HOSTACKAUTHOR$&lt;br /&gt;
#$HOSTACKCOMMENT$&lt;br /&gt;
#$SERVICEOUTPUT$&lt;br /&gt;
#$LONGSERVICEOUTPUT$&lt;br /&gt;
#$SERVICEPERFDATA$&lt;br /&gt;
#$SERVICEACKAUTHOR$&lt;br /&gt;
#$SERVICEACKCOMMENT$&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 環境変数としてのマクロ Macros as Environment Variables==&lt;br /&gt;
ほとんどのマクロを環境変数として簡単に参照できるように、Nagiosによって実行されるスクリプトかコマンドで利用可能にします。セキュリティと健全の目的のために、[http://nagios.sourceforge.net/docs/3_0/macrolist.html#user $USERn$]、「オンデマンド」ホスト、およびサービスマクロは、環境変数として利用可能にされなかったです。 &lt;br /&gt;
&lt;br /&gt;
標準のマクロを含む環境変数は、名前の先頭に&amp;quot;NAGIOS_&amp;quot;を付け加えられて ( [http://nagios.sourceforge.net/docs/3_0/macrolist.html ここ]に記載される)それら一致するマクロ名と同じように命名される。例えば、[http://nagios.sourceforge.net/docs/3_0/macrolist.html#hostname $HOSTNAME$]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://nagios.sourceforge.net/docs/3_0/macrolist.html#hostname 利用可能なマクロ]&lt;br /&gt;
&lt;br /&gt;
Nagiosで利用可能なすべてのマクロのリストおよびそれらを使用できる時の表を[http://nagios.sourceforge.net/docs/3_0/macrolist.html ここ]で見つけることができます。&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>	</entry>

	</feed>