2009-11-21 Sat

PentBox はてぶ

http://www.pentbox.net/

PenTBox is a Security Suite with programs like Password Crackers, Denial of Service testing tools (DoS and DDoS), Secure Password Generators, Honeypots and much more. Destined to test security/stability of networks and more.

PenTBox


ということで,PenTBox は Ruby で書かれた,
ネットワークなどのテストツール.

pentbox.rb を実行すると次のような対話型のインターフェイスが起動する.

pentbox

via: PenTBox « にわか鯖管の苦悩日記
     http://kikuz0u.x0.com/blog/?p=309

2009-10-16 Fri

monit で MyDNS を監視 はてぶ

とりあえず,以下のような感じで監視は可能

/etc/monit.d/mydns.conf

check process mydns with pidfile /var/run/mydns.pid
    start program = "/etc/init.d/mydns start"
    stop program = "/etc/init.d/mydns stop"
    if failed port 53 type udp then restart
    if 5 restarts within 5 cycles then timeout


port を監視しているだけなので,port は開いているけど,
反応が返ってこないという場合が考えられるので,いまいち.

調べたら,monit は DNS のプロトコルを理解できるようなので,
以下のように,protocol を指定.

check process mydns with pidfile /var/run/mydns.pid
    start program = "/etc/init.d/mydns start"
    stop program = "/etc/init.d/mydns stop"
    if failed port 53 use type udp protocol dns then restart
    if 5 restarts within 5 cycles then timeout


これだと,

[JST Oct 16 16:54:35] error    : 'mydns' failed protocol test [DNS] at INET[localhost:53] via UDP


という風に,エラーが出る.

DNS protocol test は BIND 以外だめらしい.

- Monit
  http://mmonit.com/monit/
- monit を使ってみた [2009-10-16-1]

2009-10-16 Fri

monit を使ってみた はてぶ

メモしていなかった…….
ちょっと試してみただけなので,たいした内容でもないけど.

monit は daemon の死活を監視して,死んでいた場合には再起動してくれる daemon です.

rpmforge に rpm があるので,それを利用してインストールします.

とりあえず,動かすには
/etc/monit.conf

set daemon 120                  # 監視間隔
set logfile /var/log/monit.log  # ログの出力先.syslog も可能.
set mailserver mx.ftnk.jp       # alert の通知に使うメールサーバ
include /etc/monit.d/*.conf


くらいを設定して,/etc/monit.d/ 以下に監視対象ごとの設定ファイルを置きます.

/etc/monit.d/httpd.conf(httpd の監視)

check process httpd with pidfile /var/run/httpd.pid
   start program = "/etc/init.d/httpd start" with timeout 60 seconds
   stop program  = "/etc/init.d/httpd stop"
   if failed host www.ftnk.jp port 80 protocol http and request "/" then restart


/etc/monit.d/postfix.conf(postfix の監視)

check process postfix with pidfile /var/spool/postfix/pid/master.pid
   start program = "/etc/init.d/postfix start"
   stop  program = "/etc/init.d/postfix stop"
   if failed port 25 protocol smtp then restart


monit が理解できる protocol は man に書かれている.

APACHE-STATUS
DNS
DWP
FTP
HTTP
IMAP
CLAMAV
LDAP2
LDAP3
LMTP
MYSQL
NNTP
NTP3
POP
POSTFIX-POLICY
RDATE
RSYNC
SIP
SMTP
SSH
TNS
PGSQL


ssl のサポートを付けてコンパイルすると,以下のプロトコルにも対応.

HTTPS
FTPS
POPS
IMAPS


- Monit
  http://mmonit.com/monit/

Referrer (Inside):
[2009-10-16-2] monit で MyDNS を監視

2009-10-13 Tue

Rails で 1,000 万/日のリクエストをさばく はてぶ

High Scalability に ravelry というサイトの事例があったのでメモ.

- How Ravelry Scales to 10 Million Requests Using Rails
  http://highscalability.com/blog/2009/9/22/how-ravelry-scales-to-10-million-requests-using-rails.html

[ Read More... ]

2009-09-09 Wed

Puppet で特定のファイルが更新されたら任意のコマンドを実行する はてぶ

/etc/aliases や /etc/postfix/{canonical,transport} あたりが
更新されたら newaliases や postmap を実行したい.

と思ったら,そのままな例が
http://reductivelabs.com/trac/puppet/wiki/TypeReference#exec
にあった.

# Pull down the main aliases file
file { "/etc/aliases":
    source => "puppet://server/module/aliases"
}

# Rebuild the database, but only when the file changes
exec { newaliases:
    path => ["/usr/bin", "/usr/sbin"],
    subscribe => File["/etc/aliases"],
    refreshonly => true
}


コマンドに引数をとらせたい時は,
上の「newaliases」の行に引数まで書けばいい.

2009-07-06 Mon

ralsh はてぶ

puppet のバージョンを上げようと思い,
rpm を作っている時に,ralsh の存在に気づいたのでメモ.

Puppet の RAL(って何?)を直接扱うためのコマンド.

ralsh --help


すると説明がでるんだけど,そこには以下のような例がある.

EXAMPLE
===
This example uses ``ralsh`` to return Puppet configuration for the user
``luke``::

$ ralsh user luke
user { 'luke':
  home => '/home/luke',
  uid => '100',
  ensure => 'present',
  comment => 'Luke Kanies,,,',
  gid => '1000',
  shell => '/bin/bash',
  groups => ['sysadmin','audio','video','puppet']
}


どうやら,Puppet の設定を吐いてくれるみたい.

他にも,package

# ralsh package puppet-server
package { 'puppet-server':
  ensure => '0.24.5-1.el5'
}


service

# ralsh service puppet-server
service { 'puppet-server':
  ensure => 'running',
  enable => 'false'
}


等の設定を吐いてくれるっぽい.

また,
- Digg the Blog » Blog Archive » Master of Puppets #1: ralsh
  http://blog.digg.com/?p=335
によると,以下のように引数を渡してやると,
ユーザ newuser を作成し,その設定を吐いてくれるみたい.
# 以下の例では managehome がないので /home/newuser は作られない.

~$ ralsh user newuser uid=9999 gid=9999 home=/home/newuser shell=/bin/bash ensure=present
notice: /User[newuser]/ensure: created
user { ‘newuser’:
  uid => ‘9999′,
  gid => ‘9999′,
  home => ‘/home/newuser’,
  shell => ‘/bin/bash’,
  password => ‘!’,
  ensure => ‘present’
}



また,以下のように cron の設定もできるみたい.

~$ ralsh cron check_my_mail command="/usr/bin/fetchmail mail.my.mail.server" user=plathrop hour='*' minute='*/30' ensure=present
notice: /Cron[check_my_mail]/ensure: created
cron { ‘check_my_mail’:
  command => ‘/usr/bin/fetchmail mail.my.mail.server’,
  monthday => ‘absent’,
  hour => ['*'],
  environment => ”,
  target => ‘plathrop’,
  special => ”,
  minute => ['*/30'],
  user => ‘plathrop’,
  ensure => ‘present’,
  weekday => ‘absent’,
  month => ‘absent’
}


Puppet で cron を扱えるというのは知らなかったんだけど,
これは /etc/cron.d にでもファイルを書いてくれるのだろうか.

/etc/cron.d 以下にファイルを書いてくれるなら,
source を使って直接ファイルを配布した方が簡単な気もする.

このへんはどうなってるか,あとで試す.

- puppet - Trac
  http://reductivelabs.com/trac/puppet

ref.
- puppet-mode [2009-07-04-3]
- puppet を使ってみる [2009-04-03-1]
- Puppet による変更をメールで通知する [2008-08-29-7]
- Puppet を使って client にパッケージをインストールする [2008-08-28-3]
- CentOS 5.2 に puppet を rpm でインストールする [2008-08-28-1]

2009-04-03 Fri

puppet を使ってみる はてぶ

以前にも機能を試す程度には puppet を使ってみたけど,
今回は実際の運用を視野にいれつつ使ってみました.

mizzy さんによる puppet の記事
- 連載:オープンソースなシステム自動管理ツール Puppet|gihyo.jp … 技術評論社
  http://gihyo.jp/admin/serial/01/puppet
を読みながらごにょごにょする.

なんとなくそれっぽいマニフェストは書けたけど,
こういう感じでいいのか自信はないというか,
もっとうまい書き方があるような気がしてしょうがない.

puppetmaster が動いてるサーバで,
puppet の動いてる設定ファイルなどを一元管理できるのは便利.
運用で使っていきたいので,しっかりと調べていく方向で.

- puppet - Trac
  http://reductivelabs.com/trac/puppet

ref.
- Puppet による変更をメールで通知する [2008-08-29-7]
- Puppet を使って client にパッケージをインストールする [2008-08-28-3]
- CentOS 5.2 に puppet を rpm でインストールする [2008-08-28-1]

Referrer (Inside):
[2009-07-06-1] ralsh

2008-11-17 Mon

GroundWork Monitor を使ってみた はてぶ

[email protected]静岡([2008-10-25-1])の懇親会での話にでてきた,
GroundWork Monitor を使ってみました.

第 1 回静岡 IT Pro 勉強会のお題がネットワーク監視で,
このあたりの話もでることになりそうなので,予習もかねて.

インストールは,基本的に,
groundwork-ce-5.2.1-52.rhel5.i386.tar.gz
を取ってきて,展開,その中にあるインストールスクリプトを実行するだけです.

いくつか準備することがありますが,
- インストール前の準備
  http://www.praesentia.co.jp/community/modules/tinyd2/
- GWMCEのインストール
  http://www.praesentia.co.jp/community/modules/tinyd2/index.php?id=2
の通りやれば,問題なくインストールできます.
インストールスクリプトが環境のチェックとかしてくれるし.

インストールできたら,

http:// サーバーのIPアドレス


にアクセスするだけです
(確認しなかったけど,起動してた Apache はどうなったんだろう?).

デフォルトで設定されているアカウントは
id: admin,password: admin
(Firefox,chrome ではログインできなかった.
IE7 はログインできたが,ログアウト->再ログインしようとすると
ログインできなかったり,なんかあやしい).

あとは
- GroundWork Monitor 日本語コミュニティーサイト - 1.ログイン
  http://www.praesentia.co.jp/community/modules/tinyd4/
以降を参照.

と言っても,上記の情報では,Nagios の監視対象サーバの登録方法くらいしか
わからない.それ以上は
- 管理者ガイド
  http://www.praesentia.co.jp/community/modules/mydownloads/GWMOS_v4_admi.pdf
- オペレーターガイド
  http://www.praesentia.co.jp/community/modules/mydownloads/GWMOS_v4_ope.pdf
を参照するしかないっぽい.まあ,翻訳されているだけましか.

- GroundWork Monitor [2008-11-09-2]

Referrer (Inside):
[2009-01-22-2] オープンソース統合監視ツールGroundWork無償版の日本語化モジュール公開

2008-11-09 Sun

GroundWork Monitor はてぶ

第14回 Admintech.jp 勉強会([2008-10-25-1])の懇親会でちょっと話に出たのに,(酒のせいか)グラウンド〜までしか思い出せなかった統合監視ソフト.

- GroundWork Monitor Product Line :: GroundWork Open Source
  http://www.groundworkopensource.com/products/

- GroundWork Monitor 日本語コミュニティーサイト
  http://www.praesentia.co.jp/community/modules/tinyd3/

- GroundWork Monitor とは?
  http://www.praesentia.co.jp/community/modules/tinyd0/
によると

GroundWork Monitorは、GroundWork社が提供しているシステム監視ソフトです。
Nagiosなどの定評のあるオープンソースソフトを統合し、一元的に管理できるようにされています。
ということで,
- Nagios(オープンソースのネットワーク監視ソフトの定番: http://www.nagios.org/
- cacti(監視データのグラフ化ツール: http://www.cacti.net/
- RRDtool(監視データのグラフ化ツール)
- Ganglia(ネットワーク監視ツール: http://ganglia.info/
- NeDi(ネットワーク検出ツール: http://nedi.sourceforge.net/
などを一元管理できるようにしたものらしいです.

時間と環境が用意できたら試してみます.

via: TATSUYA.info [Diary](2008-11-08) - 監視系
     http://www.tatsuya.info/tdiary/?date=20081108#p03

Referrer (Inside):
[2009-01-22-2] オープンソース統合監視ツールGroundWork無償版の日本語化モジュール公開
[2008-11-17-4] GroundWork Monitor を使ってみた

2008-08-29 Fri

Puppet による変更をメールで通知する はてぶ

puppetmaster 側に以下の 2 つの設定をする.

/etc/puppet/puppet.conf

[puppetmasterd]
    reports = tagmail,daily,security

    sendmail = /usr/sbin/sendmail
    reportfrom = [email protected]
    smtpserver = mx.example.com


/etc/puppet/tagmail.conf

all: [email protected]


puppet 側は /etc/puppet/puppet.conf に

[puppetd]
    report = true


を追加.

この状態で,

user { testuser:
  ensure => present
}


というマニフェストを実行させると,以下のようなメールが届く.

Subject: Puppet Report for test2

Fri Aug 29 17:57:39 +0900 2008 //Node[test2]/User[testuser]/ensure (notice): created


- Puppet を使って client にパッケージをインストールする [2008-08-28-3]
- CentOS 5.2 に puppet を rpm でインストールする [2008-08-28-1]

2008-08-28 Thu

Puppet を使って client にパッケージをインストールする はてぶ

マニフェストに以下のような設定を加える.

node 'test1' {
  package { 'cft':
    ensure => latest,
  }
}


クライアント側(CentOS 5.2)では以下のような感じで処理される.

Aug 28 17:34:35 test2 puppetd[4373]: Starting Puppet client version 0.24.5
Aug 28 17:34:37 test2 puppetd[4373]: Starting catalog run
Aug 28 17:34:47 test2 yum: Installed: ruby-fam - 0.2.0-4.el5.i386
Aug 28 17:34:48 test2 yum: Installed: ruby-rpm - 1.2.3-3.el5.i386
Aug 28 17:34:49 test2 yum: Installed: cft - 0.2.2-1.el5.noarch
Aug 28 17:34:49 test2 puppetd[4373]: (//Node[test2]/Package[cft]/ensure) created
Aug 28 17:34:49 test2 puppetd[4373]: Finished catalog run in 11.67 seconds


- CentOS 5.2 に puppet を rpm でインストールする [2008-08-28-1]

Referrer (Inside):
[2009-07-06-1] ralsh
[2009-04-03-1] puppet を使ってみる
[2008-08-29-1] Puppet による変更をメールで通知する

2008-08-28 Thu

Cft でシステムに対する変更を監視する はてぶ

http://cft.et.redhat.com/

Cft(シフト)は
- オープンソースなシステム自動管理ツール Puppet:第12回 Puppet関連ツールの紹介(Cft)|gihyo.jp … 技術評論社
  http://gihyo.jp/admin/serial/01/puppet/0012
によると

Cft(「シフト」と読みます)はシステムに対する変更を監視して,記録するためのRubyでできたコマンドラインツールです。

Cftは記録された変更をPuppetマニフェスト形式で出力することができますので,既にPuppetを利用している場合には,あるシステムで行った変更を記録してPuppetマニフェスト形式で出力,それをそのまま他のシステムに適用する,といったことができます。

また,Puppetを利用していない場合でも,Cftを利用することでシステムに対する変更を自動的に漏れなく記録することができますし,記録のための統一フォーマットとしてPuppetマニフェストを流用することで,人手による作業にありがちな記録漏れやミス,フォーマットの不統一を防ぐことができます

というものです.

インストールは puppet([2008-08-28-1])同様,
David Lutterkort さんのレポジトリ
- http://people.redhat.com/dlutter/yum/dlutter.repo
から行なえます.

Cft は変更を監視する期間(セッション)を指定し,
その後 Puppet のマニフェスト形式で出力可能.

session のスタートは

# cft begin セッション名


session の終了は

# cft finish セッション名


Puppet のマニフェスト形式での書き出しは

# cft manifest セッション名


記録したセッションの削除

# cft erase セッション名


- オープンソースなシステム自動管理ツール Puppet:
  第12回 Puppet関連ツールの紹介(Cft)|gihyo.jp … 技術評論社
  http://gihyo.jp/admin/serial/01/puppet/0012

2008-08-28 Thu

CentOS 5.2 に puppet を rpm でインストールする はてぶ

puppet のダウンロードページに David Lutterkort さんの
yum repository のファイル
- http://people.redhat.com/dlutter/yum/dlutter.repo
があるので,これを /etc/yum.repos.d にダウンロードし,
enable を 1 にする.

あとは

yum install puppet puppet-server


で OK.



puppetmaster の起動

とりあえず,空のマニフェストを用意して起動.

$ sudo mkdir -p /etc/puppet/manifests
$ sudo touch /etc/puppet/manifests/site.pp
$ sudo /etc/init.d/puppetmaster start




puppet の起動

/etc/sysconfig/puppet に "PUPPET_SERVER" という設定項目があるので,
これに puppetmasterd のサーバを指定し,/etc/init.d/puppet を起動.



参照

- puppet - Trac
  http://reductivelabs.com/trac/puppet
- puppet-mode
  http://reductivelabs.com/redmine/repositories/entry/puppet/ext/emacs/puppet-mode.el?format=raw
- 連載:オープンソースなシステム自動管理ツール Puppet|gihyo.jp … 技術評論社
  http://gihyo.jp/admin/serial/01/puppet
- puppet wiki (パペウィキ) - Trac
  http://trac.mizzy.org/puppet

Referrer (Inside):
[2009-07-06-1] ralsh
[2009-04-03-1] puppet を使ってみる
[2008-08-29-1] Puppet による変更をメールで通知する
[2008-08-28-3] Puppet を使って client にパッケージをインストールする
[2008-08-28-2] Cft でシステムに対する変更を監視する
ChangeLog 最新ページ