いがいと、続いています。
前回は、基本設定でしたが
今回は、実際に「ほにゃらら」が起こったらメールを送信する
みたいなことを、syslog-ngにやらせてみます。
前回の設定だと、destinationが fileってなっています。
source net { udp(ip(0.0.0.0) port(514)); };
destination d_hogesrv { file(”/var/log/hogesrv.log”); };
ここのfileの部分を programに変更して、シェルスクリプトにすると
出力先をシェルスクリプトにすることができます。
(もちろんperlとかでもいいよ)
destination d_hoge_sh { program(”/usr/local/bin/hoge_script.sh”); };
さらに、「ほにゃらら」を httpdに何かが起こったときとして
filterをもう一個作ります。
filter f_httpd { match (”httpd”); };
新しく作った材料を組み合わせ、こんなカンジで設定完了です。
log { source(net); filter(f_hogesrv); filter(f_httpd); destination(d_hoge_sh); };
いや、もちろん /usr/local/bin/hoge_script.sh は
手作りでスクリプトを書かなくちゃいけません。
ちなみに、スクリプトがないと syslog-ng はエラーになります。
もう少し続く(次回はスクリプトの例)
12月 13
さてさて、その2の続きを。
オプションはだいたい前回で。
今回から、やっとログの出力の設定ファイルです。
ログの出力に必要な材料!?は3つです。
source ログの入力元
filter ログのフィルター
destination ログの出力先
あとは、3つの材料を組み合わせて
log
って、そのまんまの書き方で構成を決めます。
とりあえず、例として
source net { udp(ip(0.0.0.0) port(514)); }
filterに、サーバのipアドレスを指定して($を付けないと、100なんかも引っかかってしまうよ)
出力先に、/var/log/hogesrv.logを指定するという設定に
それぞれ、source net、filter f_hogesrv、destination d_hogesrvを名前を付けてます。
3つの材料を組み合わせて、こんなカンジで設定完了です。
log { source(net); filter(f_hogesrv); destination(d_hogesrv); };
基本はここまでです。続くかも
12月 12
前回、インストール、起動までで終わってしまいました。
ので、今回は設定です。
/etc/syslog-ng.conf の中身を書き換えます。
オプションから。
options {
sync (0);
time_reopen (10);
log_fifo_size (1000);
use_fqdn (no);
sync、time_reopen、log_fifo_size とか、ログ受信が失敗するようだと
設定値を変えたほうがいいかもしれませんが、
とりあえず、そのままで。
longhostnameは、onにすると
ホスト名が2個出てきて、うっとうしくなります。
(longhostnameは、Windowsのログを受け取るときに、すごく役に立ちます 後述)
use_dnsを onにすると、hostsファイルを読み込んでからsyslog-ngが受け取るようになります。
他は・・・いいや。
あああ、大事なことがあった。
stats(0);
をオプションに書き込まないと、ものすごくうっとうしいログを吐き出します。
長くなったので、続く
12月 11
syslogもログの転送とかできて、それなりにいいんですが
ログの結果から、アクションを起こすとか、そのへんの機能がないのがいまいちです。
SWATCHというperlスクリプトで、ファイルをチェックすればいいんですが
バリバリperlを書く人でもないので、気が乗りません。
というわけで、syslog-ngを使ってみます。
いつもどおり、
yum -y install syslog-ng
でインストールできると思ったんですが、CentOS(RedhatEnterprise)のレポジトリにはないみたいです。
(Fedoraにはあるのに・・Debianにはあるのに)
仕方がないので、rpm searchで探します。
あれ、syslog-ng-2.0.3-2.el4.i386.rpm と eventlog-0.2.5-1.el4.i386.rpm が普通にあった。
とりあえず、インストールします。
rpm -ivh syslog-ng-2.0.3-2.el4.i386.rpm eventlog-0.2.5-1.el4.i386.rpm
syslog-ng屋さんから、ソースコードをもらってビルドしてもいいんですが、ローテーション回りの設定が面倒なのでパッケージをオススメします。
んで
service syslog stop
service syslog-ng restart
続く
12月 10
sshのポートフォワーディングですが、
自サーバのlocalhostしか叩けないとばかり思っていました。
そうじゃなくて、受け入れポートをフォワーディングすることも
やればできました。
まず、オプションの -g をつける。
でも、-gだけじゃだめで
/etc/sshd/sshd_configの
#GatewayPorts no を
GatewayPorts yes に変更。
service sshd restart
そんなこんなで、
ssh -f -N -g -L 自分の受け入れポート:行きたいアドレス:行きたいポート root@踏み台サーバ
これで、外から、ポートフォワーディングしたサーバの受け入れポートを叩けば
行きたいところに行くことができます。
というか、こういうこと知らなかった自分にショック・・・・
12月 05