]
トップ «前の日(12-09) 最新 次の日(12-11)» 追記

Yukiharu YABUKI の tDiary



このtDiaryを検索します。

2004-12-10

_ おはようございます

所用により,早起き.風呂で寝そうになりました.X-)

_ あさごはん

花の駅(コンビニ)にて,ツナ・サンド と 午後の紅茶(レモン) を会社にて.

_ 有線ブロードバンド

停止がありました.

_ Let's Note W2

リフレッシュ・バッテリーを実行.

_ 机の上

かたずけて,すっきり.

_ ドキュメント

かきかき

_ [Debian] dpkg-sig

Package: dpkg-sig
Priority: optional
Section: devel
Installed-Size: 220
Maintainer: Andreas Barth 
Architecture: all
Version: 0.11
Depends: perl, gnupg, libdigest-md5-perl, libconfigfile-perl
Suggests: ssh, libterm-readkey-perl
Filename: pool/main/d/dpkg-sig/dpkg-sig_0.11_all.deb
Size: 36510
MD5sum: 7e1d94cbf3582eb732f68df49034734d
Description: create and verify signatures on .deb-files
 dpkg-sig is a low-level tool for creation and verification of
 signature on Debian binary packages (.deb-files).
 .
 The created signed packages are strict compatible with dpkg and the
 apt-utils.
 .
 Website is http://dpkg-sig.turmzimmer.net/

_ subversion本

Ashieさんの机の上で見た.出たのか.「Subversion」解説書 <バージョン管理システム> Linux world favorite series(Subversion開発プロジェクト/佐藤 竜一/上平 哲)

_ GPLの例外条項を記述する.

knokさんのところより.(http://www.daionet.gr.jp/~knok/diary/?200412a&to=200412061#200412061),該当するFAQの日本語訳は(http://www.gnu.org/licenses/gpl-faq.ja.html#TOCWritingFSWithNFLibs)

_ 定期更新

一箇月分.1/15まで.

_ おひる

堂島のインデアンカレーにて,ハヤシ・ライス(大)

_ ジュンク堂

本日の成果:

  • 前述のsubversion本. 「Subversion」解説書 <バージョン管理システム> Linux world favorite series(Subversion開発プロジェクト/佐藤 竜一/上平 哲)
  • 李さんに頼まれていた.国際化プログラミング―I18Nハンドブック(清兼 義弘/末広 陽一)
  • komさんが読んでいた. オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―(平澤 章)
  • PM(Project Maengement) Magazine というのがあったので,とりあえず買ってみた.日本初の雑誌らしい.

_ [Debian] メモ:openmcu

saitoさんことよりopenmcu(http://deb.dip.jp/~nao/d/?200412a&to=200412101#200412101)
Package: openmcu
Priority: optional
Section: comm
Installed-Size: 212
Maintainer: Santiago Garcia Mantinan 
Architecture: i386
Version: 1.1.7+cvs04092003-1
Depends: libc6 (>= 2.3.2-1), libexpat1 (>= 1.95.6), libgcc1 (>= 1:3.3.1-1), libldap2 (>= 2.1.17-1), libopenh323-1.12.2 (>= 1.12.2), libpt-1.5.2, libsdl1.2debian (>> 1.2.6-0), libssl0.9.7, libstdc++5 (>= 1:3.3.1-1)
Filename: pool/main/o/openmcu/openmcu_1.1.7+cvs04092003-1_i386.deb
Size: 71044
MD5sum: 1d9977123076cbe7c12c0379c9802cb3
Description: H.323 会議サーバ
 OpenH323 インタラクティブ端末会議サーバにより、2人以上の人々が H.323 
 クライアントを使って、談話室でお互いに話すことができます。サーバは参加
 者全員からの音声を混ぜ、最大4人が見られるように画像を分離します。
 .
 OpenH323 プロジェクトの詳細については、http://www.openh323.org/ で見て
 ください。
Debianが大学院にも作ってあるから,いけるかのぅ

_ [大学院] 論文指導

N先生から、論文の章立ての指導を受ける.

_ だてや

いつもおいしいです.今日もありがとう.

本日のツッコミ(全1件) [ツッコミを入れる]

_ 赤樹将 [オブジェクト指向でなぜつくるのか、買いました。 なかなか言語の入門書では書かれて無い部分がすっきりまとまっていたので..]


2005-12-10

_ 帰国

コロンボからシンガポール経由で関西国際空港.トランジットの時間が30分ほどで,本人はまにあったが,荷物はまにあわず.別送扱い.


2006-12-10

_ [tDiary] 設定変更

つっこみSPAMが酷かったので、コメントを表示してなかったのを、簡易spam対策をしてコメント表示にもどした。

検索キーワードに、SPAMMERが意図するキーワードを埋め込んで referer spamをしかけてくるのでとりあえず、リンク元表示は非表示とした。



2008-12-10

_ GNUPLOTで時間を扱う時のメモ

GNUPLOTの出力するグラフで、時間をグラフの軸に表す場合は、まず(http://t16web.lanl.gov/Kawano/gnuplot/datetime.html)を見て欲しい。使いこなすgnuplot(大竹 敢/矢吹 道郎)は、いい本なんだけど、少なくとも索引および付録のコマンド一覧にset xdataなどの説明がないので、新しい改訂版が出るといいなと思います。

で、PLOT文に指定するデータファイルの内容が、必ず入っていることが重要です。つまりファイルを指定しているのに内容が空の場合は、ケースバイケースですが、ダミーデータでいいから入れましょう。gnuplot FAQ(http://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/gnuplot.html#gp-FAQ-j)に書いてありました。データがない場合は、?などの文字を使うでないと"Need full using spec for x time data"というエラーメッセージを見ることになるでしょう。

参考例How To (NTP時刻を年月日表示へ)(http://groups.google.co.jp/group/network-space-time/browse_thread/thread/a27c8e6aedb2b978)


2009-12-10

_ Accepted

法務局で書類の修正完了した。予定では明日の日付から変更となる予定だ。

_ 大阪市市バス路線

大阪市市バス路線は、(http://www.kotsu.city.osaka.jp/eigyou/route-map/top.html)に載っているが、手元で紙にして手帳に挟んでおきたい。とA4に印刷してみたが、情報が膨大すぎて判じ物になっている。A3ならまだマシかもしれないが。

結局、大阪市交通局の出先機関に出向いて、印刷物の大阪市市バス路線図をもらってきた。


2011-12-10

_ nagios-plugin-nrpe の設定のキモとなりそうないくつかの点

nagiosという監視システムがある。わりと老舗の監視システムで、設定を覚えるまでは、ちょいと苦労するかもしれないが、覚えてしまえば、かなり柔軟なことができるシステムである。

もちろん、Debian GNU/Linux にも収録されており、デフォルトでインストールすると、自分自身を監視するデフォルトの設定ができあがっており、そこから設定例をみて自分で拡張することができる。

今回記事を書こうと思ったのは、Google検索上位で NRPE の設定について、いくつか参照をさせていただいた。その中で読者をミスリーディングさせるような記事もあり、NRPEの設定方法について、いくつかのチェックポイントを書いておきたい。

本来は、NagiosとNRPEの関係など詳しく書くべきだか、リモートホストの資源管理nrpeのインストール(http://anabuki.dip.jp/linkstation/nrpe.html)の図を参照していただきたい。

  1. どのサービスからNRPEが起動されるのか確認しよう。

    私の触っている範囲の、CentOSとDebianでは、DaemonでNRPEを上げているパターンなのだが、世の中には、xinetdで、NRPEを上げる作法もあるようだ。xinetd経由だと、 /etc/nagios/nrpe.cfg の allowed_hosts を参照しないようなのである。だから、allowd_hosts=xxx.xxx.xxx.xxx/24という表記をしているが、xinetd 経由だと一見、動いているように見える。

    だが、それだとdaemonに切り替えた時に動かなくて、「相性」の問題にされている節がある。そこで、提案したいのが、ps auxw コマンドなどで、nrpe が起動している時のオプションを確認すること。manなどを確認するとわかるが、-d が daemon モード -i が inetd または xinetd で起動されている。これをみることで allowed_hosts が有効かどうかを確認するのである。

  2. allowed_hostsの書き方

    上記でも書いたが、allowed_hostsには、xxx.xxx.xxx.xxx/24という表記は使えない。ではどのような表記ができるのか。

    forkで子プロセスが生成されて、シグナルを受け付けるなどの一般的な処理があって...
       871                                  /* is this is a blessed machine? */
       872                                  if(allowed_hosts){
       873  
       874                                          if(!is_an_allowed_host(inet_ntoa(nptr->sin_addr))){
       875  
       876                                                 /* log error to syslog facility */
       877                                                 syslog(LOG_ERR,"Host %s is not allowed to talk to us!",inet_ntoa(nptr->sin_addr));
       878  
       879                                                 /* log info to syslog facility */
       880                                                 if(debug==TRUE)
       881                                                         syslog(LOG_DEBUG,"Connection from %s closed.",inet_ntoa(nptr->sin_addr));
       882  
       883                                                 /* close socket prior to exiting */
       884                                                 close(new_sd);
       885  
       886                                                 exit(STATE_OK);
       887                                                 }
       888                                         else{
       889  
       890                                                 /* log info to syslog facility */
       891                                                 if(debug==TRUE)
       892                                                         syslog(LOG_DEBUG,"Host address is in allowed_hosts");
       893                                                 }
       894                                          }
       896  #ifdef HAVE_LIBWRAP
       897  
       898                                  /* Check whether or not connections are allowed from this host */
       899                                  request_init(&req,RQ_DAEMON,"nrpe",RQ_FILE,new_sd,0);
       900                                  fromhost(&req);
       901  
       902                                  if(!hosts_access(&req)){
       903  
       904                                          syslog(LOG_DEBUG,"Connection refused by TCP wrapper");
       905  
       906                                          /* refuse the connection */
       907                                          refuse(&req);
       908                                          close(new_sd);
       909  
       910                                          /* should not be reached */
       911                                          syslog(LOG_ERR,"libwrap refuse() returns!");
       912                                          exit(STATE_CRITICAL);
       913                                          }
       914  #endif
       915  
       916                                  /* handle the client connection */
       917                                  handle_connection(new_sd);
       918  
       919                                  /* log info to syslog facility */
       920                                  if(debug==TRUE)
       921                                          syslog(LOG_DEBUG,"Connection from %s closed.",inet_ntoa(nptr->sin_addr));
       922  
       923                                  /* close socket prior to exiting */
       924                                  close(new_sd);
       925  
       926                                  exit(STATE_OK);
       927                                  }
       928  
       929                          /* first child returns immediately, grandchild is inherited by INIT process -> no zombies.
    .. */
       930                          else
       931                                  exit(STATE_OK);
       932                          }
    
       952  /* checks to see if a given host is allowed to talk to us */
       953  int is_an_allowed_host(char *connecting_host){
       954          char *temp_buffer=NULL;
       955          char *temp_ptr=NULL;
       956          int result=0;
       957          struct hostent *myhost;
       958          char **pptr=NULL;
       959          char *save_connecting_host=NULL;
       960          struct in_addr addr;
       961          
       962          /* make sure we have something */
       963          if(connecting_host==NULL)
       964                  return 0;
       965          if(allowed_hosts==NULL)
       966                  return 1;
       967  
       968          if((temp_buffer=strdup(allowed_hosts))==NULL)
       969                  return 0;
       970          
       971          /* try and match IP addresses first */
       972          for(temp_ptr=strtok(temp_buffer,",");temp_ptr!=NULL;temp_ptr=strtok(NULL,",")){
       973  
       974                  if(!strcmp(connecting_host,temp_ptr)){
       975                          result=1;
       976                          break;
       977                          }
       978                  }
       979  
       980          /* try DNS lookups if needed */
       981          if(result==0){
       982  
       983                  free(temp_buffer);
       984                  if((temp_buffer=strdup(allowed_hosts))==NULL)
       985                          return 0;
       986  
       987                  save_connecting_host=strdup(connecting_host);
       988                  for(temp_ptr=strtok(temp_buffer,",");temp_ptr!=NULL;temp_ptr=strtok(NULL,",")){
       989  
       990                          myhost=gethostbyname(temp_ptr);
       991                          if(myhost!=NULL){
       992  
       993                                  /* check all addresses for the host... */
       994                                  for(pptr=myhost->h_addr_list;*pptr!=NULL;pptr++){
       995                                          memcpy(&addr, *pptr, sizeof(addr));
       996                                          if(!strcmp(save_connecting_host, inet_ntoa(addr))){
       997                                                  result=1;
       998                                                  break;
       999                                                  }
      1000                                          }
      1001                                  }
      1002  
      1003                          if(result==1)
      1004                                  break;
      1005                          }
      1006  
      1007                  strcpy(connecting_host, save_connecting_host);
      1008                  free(save_connecting_host);
      1009                  }
      1010  
      1011          free(temp_buffer);
      1012  
      1013          return result;
      1014          }
    
    ソースコードnrpe.c 2.12の該当する部分である。libwrapのこと、allwed_hostsのチェック方法などがわかる。上記のチェックさえ通れば、FQDNでもいいわけである。

    apt-get source でソースを取ってきて、すぐに調べるといいのではないだろうか。
  3. あと、NRPEがきちんと設定できれば、CentOSだろうがDebianだろうが、相互に監視できる。
以上、簡単にソースコードを調べるだけで、具体的な設定の書き方がわかるので、apt-get source や、Redhat系でも、それに準じるコマンドで、ソースを確認していただきたい。