2012-01-01から1年間の記事一覧

2012年の振り返り

すごいやっつけですが1年の最後なのでまとめてみよう。今年はプライベートで色々あったり、職場の同僚が4人ぐらい一気に辞めて急に忙しくなったり、バタバタした年でした。ソウル傾向だいぶ黒いです。 Perlについて 今年もYAPC参加できて楽しかったし、id:ke…

mysql コマンドのpagerとtee

show global status が一気に表示されすぎて困るのでless使いたい、grepしたい、sqlの記録とかをログを残したい等を思ってたけど(mysqlに入る前にscript叩けばできるけど) mysql内で出来るの初めて知った。 mysql> \h (略) pager (\P) Set PAGER [to_pager]…

tomcatの起動中の統計情報をsnmpで監視する設定と監視しておくと良いかもしれないoid

tomcat にsnmp応答をさせる設定 CATALINA_OPTSに追加 tomcat 7.0はsnmp.acl.fileではなくてsnmp.aclの模様。listen するinterfaceやfile, acl file は適当に設定。tomcat 7.0 -Dcom.sun.management.snmp.interface=0.0.0.0 \ -Dcom.sun.management.snmp.port…

名前付きlocation内でproxy_pass しているサーバが落ちているときの502 Bad Gatewayの時にerror_page で指定したエラーページを表示する

普通にerror_page 502を設定しているだけだと、proxy_passで指定しているサーバが落ちた場合はnginx defaultの502が表示されるので、recursive_intercept_errors on; も必要。 error_page 502 /502.html; recursive_intercept_errors on;追記 もはや記憶の彼…

dmesg, syslog に "nf_conntrack: table full, dropping packet." とエラーが出るのを回避する

haproxyを検証しようとしていて起きた。 LB: os: centos6 httpd: haproxy epel 1.4.22 server os: centos6 httpd: nginx epel 1.0.15 仮想OS上のCentOS6のhaproxy目掛けてhttp_load をぶっこんだところ、syslogに大量のエラーが出た。 __ratelimit: 10662 ca…

メール送信時にenvelope-from を指定した際のX-Authentication-Warning ヘッダを消す

mailを送信するユーザ、(apache経由で実行するwebアプリケーションの場合はapache 等)を /etc/mail/trusted-users に追加する。

vim でファイルの暗号化

vim

bash -x hoge.sh とやるつもりが、間違ってvim -x hoge.sh と実行したところ暗号化できるオプションだということを知った。一度-x で暗号化したらその後は普通にvimで開けばいい。 $ vim -x hoge.sh 暗号化用のキーを入力してください: ****もしくは、vimで…

percona toolkit (旧maatkit)でmysql クエリ解析

http://www.percona.com/doc/percona-toolkit/2.1/ percsona toolkit には色んなブツがあるけど、そのなかでもpt-query-digest が良いですね。tcpdump でパケットをキャプチャしてそのまま食わせられるので、mysql 5.0未満で細かい分解能でslowログを出せな…

iptables で NAT

nic 2枚 持ってるlinuxをLoad Balancerとして動かしたかったので久々にやろうとしたら結構忘れていたのでメモ。 LBじゃなくて普通のrouterにしたいなら、vyattaを使えばNATの設定入れたら裏でiptablesも設定してくれて楽ですけど。 eth0: 192.0.2.1 (グロー…

nginx wikiのproxy_redirect の順番が間違っている気がする件

http://wiki.nginx.org/LikeApache http://wiki.nginx.org/HttpProxyModule#proxy_redirect proxy_redirect apacheのProxyPassRervese のようなことをする設定。defaultの設定は proxy_redirect default;で、これはLocationヘッダのHostとportの書き換えまで…

pam_tally2 で一定回数ログインに失敗したアカウントをロックする

http://www.fprog.org/~mura-masa/diary/?date=20111130 man pam_tally2 /etc/pam.d/password-auth authの冒頭部分に追記。(pam_env.soの次?) 下の例は合計失敗3回するとロックされる。(ロックされるまでの途中に一度でも認証成功したら失敗回数はクリアさ…

nginxでfavicon.icoが存在する場合はファイルを返して、存在しない場合はempty_gifを返す

404の時に名前付きlocationで設定したempty_gifを使えばいけますね。下の設定はついでにlog捨てている。 nginx.conf location = /favicon.ico { error_page 404 = @favicon; access_log off; log_not_found off; } location @favicon { empty_gif; access_lo…

tcp wrapper で/etc/hosts.allow を使って特定のhost/networkを拒否する

https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-Server_Security.html#sect-Security_Guide-Server_Security-Securing_Services_With_TCP_Wrappers_and_xinetd man hosts.allow hosts…

Linux, Network 系の資格取得

資格なんて大学のときに取った初級シスアド以外持ってなくて興味もなかったんだけど、やはり客観的にアピールする指標の一つにはなるよね、と今更思い始めたので取ってみようと思い8月末から勉強始めました。目標はLPIC Level3 とCCNP ぐらいはいけたらいい…

linux でtap deviceで仮想インタフェースを作成する

通常1つのnic上に仮想IPを割り当てる場合はifconfig eth0:0 のようにaliasで設定すればいいけど、L2レベルでの仮想デバイスが欲しかったのでtapを使ってみた。 # yum install tunctl # tunctl ==> tap0 が出来るあとはいつものように/etc/sysconfig/network-…

tapデバイスを利用してdynagen/dynamips 上のcisco routerとIPで直接接続する

dynagenでcisco routerを動かすのはいいけど、アクセスするにはコンソール用のポートに接続しないといけなくてポート番号忘れたりするしやきもきするので、直接接続したくなったのでやった。 dynagenのrouterの設定で、F1/0 = NIO_tap:tap0 のように記述すれ…

mysqldump --tab を使う場合、ディレクトリにはmysql ユーザの書き込み権限が必要

mysqldumpコマンドを叩いているユーザの権限かと思っていたけど、mysqlプロセス上からSELECT ... OUTFILE で書き出すからmysqlの権限が必要ということ?テーブルのschemaの.sql は実行したユーザで作成されていたけどデータの.txt はmysqlユーザだった。 $ c…

Dynagen/Dynamips linux上でCisco Router のemulatorを動かす

dynagen dynamips 何か会社の自席から半径2メートルぐらいでにわかに盛り上がっていたのでやってみた。GUIが使えるならGNS3というのも使うと、トポロジーが簡単に作れるので良い。エミュレートするマシンにCatalystはないけど、routerにNM-16ESW モジュール…

分散ファイルシステム glusterfs を試してみた

http://www.gluster.org/download/ http://www.gluster.org/wp-content/uploads/2012/05/Gluster_File_System-3.3.0-Administration_Guide-en-US.pdf レッドハットに買収されたとかで、RHEVやovirtとも絡んできそうなので試してみた。実験用に仮想化環境で動…

vyatta - cluster

clusterを設定すると内部的にはheartbeat が動き出す。というわけでheartbeatがわかっていれば、設定値も見たことある感じでわかりやすい。clusterはvrrpのようにinterfaceごとではなくて、vyatta system全体の設定。↓のtimeout等は適当 $ configure # set c…

vyatta - vrrp

vrrpはclusterと違ってinterfaceごとに設定。vrrpを有効にすると内部ではkeepalivedが動き出す。 というわけでkeepalivedがわかっていれば(rypriority は大きいほど優先度が高い。preempt (割り込み) はdefaultではtrueになってるけど、勝手にtakeoverとかさ…

vyatta - nat

interface external: eth0 internal: eth1 source nat vyattaをgatewayとして利用する場合、LAN内のprivate IP をNATする設定。vyattaのeth0側が上位のネットワークに接続しているinterfaceとする。 $ configure # set nat source rule 10 # set nat source …

vyatta - vpn

interface external: eth0 internal: eth1 (ここで使ったnetwork構成だと、eth0が同一のsubnetなのでvpnしなくてもrouting設定するだけでいいんだけど、実験のためにvpnやってみてる) vyatta vyatta1 vyatta2 eth0 192.168.0.254/24 192.168.0.253/24 eth1 1…

vyatta - static routing

$ configure # set protocols static route 192.168.0.0/24 next-hop 192.168.1.1 # commit # save # exit $ show ip route

vyatta debian package 追加

# set system package repository squeeze components main # set system package repository squeeze url http://packages.vyatta.com/debian/ # set system package repository squeeze distribution squeeze # exit $ sudo apt-get update $ sudo apt-get…

nginx + php + fastcgi

あらかじめphpをcgi用(--with-apxs をつけずに)でインストールしておくこと(php-cgi バイナリが必要)。fastcgiはepelにspawn-fcgi があるのでこれを使う。 # yum install --enablerepo=epel spawn-fcgi # vim /etc/sysconfig/spawn-fcgi #### socket, php-cg…

nginx + perl + fastcgi

http://www.ruby-forum.com/topic/145858 http://library.linode.com/web-servers/nginx/perl-fastcgi/ http://library.linode.com/web-servers/nginx/perl-fastcgi/centos-5 http://d.hatena.ne.jp/Kmusiclife/20111107/1320678141 install fastcgi # yum i…

nginx fastcgi で PATH_INFO を取得する

fastcgi などを設定した際に location . \.cgi$ と設定すると、/index.cgi/foo/bar などのURLに対応できないのでやった。 nginx.conf location ~ \.cgi($|/) { include fastcgi_params; fastcgi_pass 127.0.0.1:8999; fastcgi_index index.cgi; fastcgi_spli…

tarとncを使って簡単にディレクトリごと他のサーバに転送

http://d.hatena.ne.jp/hogem/20101115/1289827270 続き tarと組み合わせればファイルだけじゃなくてディレクトリごといけますね。ncの入出力にtar の"-" で標準入出力を使えば良い。 portは適当(ここでは10000) 送信サーバ tar zcvf - ./directory | nc -l …

通常transport_maps では設定できない静的配送先のsmtpサーバを冗長構成で設定する

http://miyatech.blog.so-net.ne.jp/2011-10-01-1 久々にやったらど忘れしてた。sendmailのmailertableと違って、postfixのtransport_mapsはsmtpサーバを1つしか指定できないため、静的配送先のサーバを冗長構成で指定できない。(配送先サーバが死んだとき…