皆さん、こんにちは。
タイトルの通りlogstashのconfigファイルに引数を渡して 
filterプラグインを制御、実行したいと考えています。
コマンドライン又は別の方法でconfファイルへ引数を渡すことは可能なのでしょうか? 
可能であれば引数の渡し方とconfファイル内の記述例をご提示いただければ嬉しく思います。
例ですが、現在は下記のようにconfを指定し、logstashを起動しています。 
bin\logstash.bat agent -f logstash.conf"
よろしくお願い致します。
             
            
               
               
               
            
            
           
          
            
              
                nxhack  
                
               
              
                  
                    February 9, 2016,  3:49am
                   
                   
              2 
               
             
            
            
               
               
               
            
            
           
          
            
              
                johtani  
                (Jun Ohtani)
               
              
                  
                    February 22, 2016, 12:55am
                   
                   
              3 
               
             
            
              「filterプラグインの制御」と言われているのはどんな感じなんでしょうか? 
例えば、configファイルを別々にするという方法ではダメですか? 
引数をどういう形で利用するのかがよくわからないので。
Filterの切り替えなどという意味であれば、configファイルを個別にするのが一つかと。 
あとは、すでに提案がありますが、environment filterの利用もありかと。
あとは、別途、configをテンプレート化しておいて、スクリプト(batファイル)で、 
読み込んだテンプレート化されたconfigから、config文字列を作って、"-e"オプションで、設定を文字列で渡す方法もあるかと。
             
            
               
               
               
            
            
           
          
            
            
              nxhack様
立て込んでましてお返事遅れました。 
ありがとうございます。
環境変数というのは 
%{host}     ※マシン名 
とか、このことでしょうか?
もし任意に 
%{GroupNo} 
などを宣言してconf内で利用できるのであれば 
環境変数を1つの解決策として確認してみたいと思います。
ただ、logstashは個人様のサイトで紹介されている手法を見ながらなので 
使い方の勉強が追い付いていません。 
公式ドキュメントを見てみました。 
見落としがあったかもしれませんが、環境変数の記述を見つけきれませんでした。
可能であれば記述されているURLか 
サンプルコード等ありましたら教えていただけると大変助かります。
順序がおかしくなりましたが、 
今回お伺いしたのは下記のようにPCごとに任意の情報をログ情報に付与し 
elasticsearch側で判別したいためです。 
※任意の情報はレジストリやテキストなど、別の媒体でPC内に保持し、 
logstash起動時にテンプレート化したconfに任意情報を設定したい。
 filter {
 	mutate {
 	  add_field => {
 	    "GroupNo" => "%{GroupNo}"
 	  }
 	}
 } 
             
            
               
               
               
            
            
           
          
            
            
              Jun Ohtani 様
立て込んでましてお返事遅れました。 
ありがとうございます。
filterプラグインの使いたい内容については[nxhack様]へのレスに書かせてもらいましたが、 
mutateの値をconfigに直接設定ではなく、logstash呼び出し時に動的に値を渡したかったです。
解決策としては 
nxhack様から教えていただいた環境変数か
あとは、別途、configをテンプレート化しておいて、スクリプト(batファイル)で、 
読み込んだテンプレート化されたconfigから、config文字列を作って、"-e"オプションで、設定を文字列で渡す方法もあるかと。
 
上記内容を試してみたところ 
教えていただいた内容とやり方が違うかもしれませんが、下記方法でやりたいことが出来ました。
rem コマンドで logstash.bat "1" で実行
rem 
SET GroupNo=%1
cd "logstash.batがあるディレクトリ"
logstash.bat -e " input {stdin{}}  filter {mutate {add_field => {"GroupNo" => %GroupNo%}}} output {stdout {codec =>rubydebug }}"
 
上記スクリプトで
io/console not supported; tty will not be manipulated
Logstash startup completed
test
{
       "message" => "test\r",
      "@version" => "1",
    "@timestamp" => "2016-02-25T03:19:20.056Z",
          "host" => "sample",
       "GroupNo" => "1"
}
 
という結果を得られました。
本来は、 
"input ~~~~rubydebug }}" 
の部分をconfigファイルとして別に管理したかったのですが、 
その形にして、スクリプトから読み込み実行すると下記エラーがでます。 
Error: Expected one of #, ", ', -, [, { at line 1, column 61 (byte 61) after filter { mutate { add_field => { test =>
もう少し試してみようかと思います。
             
            
               
               
               
            
            
           
          
            
            
              実現したい形に近づいたのですが、上手くいかなかったので 
整理も兼ねて具体的に説明と質問をしたいと思います。
現在の環境はlogstash実行batを実行してlogstashを起動しています。
logstash実行bat 
bin/logstash.bat agent -f logstash.config
logstash.config
input{
file など
}
filter{
  mutate{
    add_field => {
      "GroupID" => aaaa-bb
      "GroupNo" => 1
    }
  }
}
output{
file など
}
 
実現したいポイントは 
logstash.config内のmutateでadd_fieldしている  
GroupNoの値をconfigファイル内に直接記述するのではなく  
今の提案でいうところの環境変数を記述し、設定値を固定化したい。  
イメージとしてはconfigファイルで  
"GroupNo" => 環境変数  
というようにしたい。
理由は 
サーバ上で管理しているlogstash.configの内容を変更したら  
全PCにlogstash.configを配布上書きし、同じ設定を反映させたいためです。 
ただし、そのまま上書きしてしまうと 
PC個別に管理している"GroupNo"の値も上書きされてしまうため、 
上書きされても問題がないよう、 
レジストリなどで別管理している"GroupNo"の値を設定したいためです。 
※configファイルの"GroupNo"ごとに個別管理は運用上無理がある。
もしこれを実現できるのが「環境変数 」であれば 
やり方をお教えいただければと思います。
現在Windows上で行っているのですが 
環境変数がWindowsの環境変数なのか、違う環境変数のことなのかもわかっていません。
お手数かけますが、よろしくお願いします。
             
            
               
               
               
            
            
           
          
            
              
                nxhack  
                
               
              
                  
                    March 3, 2016,  7:34am
                   
                   
              7 
               
             
            
              コードは無検証ですが、ruby  filter を使うのはどうでしょうか。
 ruby {
     code => "
         require 'win32/registry'
 
 
         key = 'Software\aurantiacus\somevalue' 
         reg = Win32::Registry::HKEY_LOCAL_MACHINE.open(key) 
         event['GroupID'] = reg["GroupID"] 
         event['GroupNo'] = reg["GroupNo"] 
    "
  }