mod_proxy@Ubuntu10.04
ユーザ認証付きのフォワードプロキシサーバを作る
mod_proxyを読み込む
$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
Digest認証のアカウントファイルを作る
$ sudo htdigest -c /etc/apache2/.htdigest "
(パスワードを入力)
proxyの設定
$ sudo vi /etc/apache2/mods-enabled/proxy.conf
<IfModule mod_proxy.c> Listen 8080 # 公開しないのなら変えたほうがいい ProxyRequests On <Proxy *> AuthType Digest AuthName "<AuthName>" AuthUserFIle /etc/apache2/.htdigest Require valid-user Satisfy any Order deny,allow Deny from all </Proxy> ProxyVia On </IfModule>
proxyの開始
$ sudo apache2ctl restart
※iptablesで許可するのを忘れずに
Google Analyticsのカスタムレポート
今までいまいち使い方がよく分からなかったけど
分かるとなんちゅう便利な機能だったんだ…
基本的な設定方法
- 指標ってとこに表示させたいグラフを選択 (「利用状況」→「セッション」でも「ユニークユーザ数」でも
- ディメンションってことに最初に表示させたいモノを登録
- そのモノをクリックした際に表示させたいモノをサブディメンションに登録してく
このページはどこの地域に人気があるのかが知れるレポート
- ディメンションに「コンテンツ」→「ページタイトル」
- サブディメンションに「ユーザ」→「都市」
○○大生とか××会社の人がこんなのに興味あんのかとかが知れるレポート
- ディメンションに「システム」→「ドメイン」
- サブディメンションに「コンテンツ」→「ページタイトル」
自分の名前で検索した人があの友達かな?何見たのかな?とか想いを馳せるレポート
- ディメンションに「トラフィック」→「キーワード」
- サブディメンションに「ユーザ」→「都市」
- サブサブディメンションに「コンテンツ」→「ページタイトル」
mrtgでスクリプトの返り値を差分で返してくれない
DNSのクエリログやhttpアクセスログのカウントを出そうと思ったけど
スクリプト等の場合差分値リターンが出来ないみたい…というか出来なかった
http://www.mrtg.jp/doc/reference.html#item__O_X_N_v_g
ということで差分を返すスクリプトでどうにかする
#!/bin/sh file1="/usr/local/www/apache22/data/mrtg/http-a.hoge" file2="/usr/local/www/apache22/data/mrtg/http-e.hoge" log1="/var/log/httpd-access.log" log2="/var/log/httpd-error.log" tmp=`cat $file1` now=`wc -l $log1 | awk '{print $1}'` diff=`echo $now - $tmp | bc` if [ $diff -lt 0 ]; then diff=now fi echo $now > $file1 echo $diff tmp=`cat $file2` now=`wc -l $log2 | awk '{print $1}'` diff=`echo $now - $tmp | bc` if [ $diff -lt 0 ]; then diff=now fi echo $now > $file2 echo $diff uptime | awk '{print $3$4}' | sed -e "s/,//g" echo "HTTPd"
うまくでけたー
FreeBSDのライブラリで困ったら
portsの「*** Error Code 1」やアップグレード時によくあるトラブル
↓な感じのこと言われたら
/libexec/ld-elf.so.1: Shared object "libjpeg.so.9" not found
# ln -s /usr/local/lib/libjpeg.so.10 /usr/local/lib/libjpeg.so.9
とかでごまかせばなんとかなることが多い
SNMP
net-snmp(v5.5)
- snmpd.conf(外部からも取得可能にする)
... agentAddress udp:161,udp6:[::1]:161 ... # Full access from the local host rocomunity public localhost ... # Full access from an example network rocomunity secret 192.168.1.0/24 ... disk / 10000 disk /var 5% disk /usr 10% includeAllDisks 10%
※右端の数値は正常な値の下限(省略可)
- 起動
# snmpd
- 動作確認
# snmpwalk -v 2c -c public localhost
MRTGで使いそうなMIBオブジェクト
- CPU負荷
1分間平均 | .1.3.6.1.4.1.2021.10.1.5.1 | laLoadInt.1 |
5分間平均 | .1.3.6.1.4.1.2021.10.1.5.2 | laLoadInt.2 |
- メモリ
スワップ合計(kB) | .1.3.6.1.4.1.2021.4.3 | memTotalSwap |
空きスワップ(kB) | .1.3.6.1.4.1.2021.4.4 | memAvailSwap |
実メモリ合計(kB) | .1.3.6.1.4.1.2021.4.5 | memTotalReal |
空き実メモリ(kB) | .1.3.6.1.4.1.2021.4.6 | memAvailReal |
- HDD
容量(kB) | .1.3.6.1.4.1.2021.9.1.6.x | dskTotal.x |
空き容量(kB) | .1.3.6.1.4.1.2021.9.1.7.x | dskAvail.x |
使用量(kB) | .1.3.6.1.4.1.2021.9.1.8.x | dskUsed.x |
使用率 | .1.3.6.1.4.1.2021.9.1.9.x | dskPercent.x |
xはsnmpd.confのdiskとして設定した順番("/"は1)
受信オクテット | .1.3.6.1.2.1.2.2.1.10.x | ifInOctets.x |
送信オクテット | .1.3.6.1.2.1.2.2.1.16.x | ifOutOctets.x |
xはNICの順番(.1.3.6.1.2.1.2.2.1.2で確認可)
- ネットワーク
現在の確立済コネクション数 | 1.3.6.1.2.1.6.9 | tcpCurrEstab |
受信セグメント数 | 1.3.6.1.2.1.6.10 | tcpInSegs |
送信セグメント数 | 1.3.6.1.2.1.6.11 | tcpOutSegs |
受信データグラム数 | 1.3.6.1.2.1.7.1 | udpInDatagrams |
送信データグラム数 | 1.3.6.1.2.1.7.4 | udpOutDatagrams |
受信ICMPメッセージ数 | 1.3.6.1.2.1.5.1 | icmpInMsgs |
送信ICMPメッセージ数 | 1.3.6.1.2.1.5.14 | icmpOutMsgs |
受信ICMPエラー数 | 1.3.6.1.2.1.5.2 | icmpInErrors |
こちらに色々
http://homepage3.nifty.com/sony/sd/contents/aix_mib.htm
MRTGでSNMPから取得する設定例
- mrtg.cfg
# CPU負荷(1分間平均,5分間平均) Target[cpu]: laLoadInt.1&laLoadInt.2:public@localhost ... # メモリ使用量(空きスワップ,空き実メモリ) Target[mem]: memAvailSwap.0&memAvailReal.0:public@localhost ... # HDD使用量(/の使用率,/usrの使用率) Target[hdd]: dskPercent.1&dskPercent.3:public@localhost ... # トラフィック(受信パケット,送信パケット) Target[net]: ifInOctets.1&ifOutOctets.1:public@localhost
※絶対値で表示させたい場合はOptions[]にgaugeかabsolute(gaugeを計測時間で割ったver.)をセットすべし
DHCP
概要
フロー
宛先とか
(トランザクションIDによってクライアントは識別されるので通信が可能)
パケットフォーマット
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | op (1) | htype (1) | hlen (1) | hops (1) | +---------------+---------------+---------------+---------------+ | xid (4) | +-------------------------------+-------------------------------+ | secs (2) | flags (2) | +-------------------------------+-------------------------------+ | ciaddr (4) | +---------------------------------------------------------------+ | yiaddr (4) | +---------------------------------------------------------------+ | siaddr (4) | +---------------------------------------------------------------+ | giaddr (4) | +---------------------------------------------------------------+ | | | chaddr (16) | | | | | +---------------------------------------------------------------+ | | | sname (64) | +---------------------------------------------------------------+ | | | file (128) | +---------------------------------------------------------------+ | | | options (variable) | +---------------------------------------------------------------+
※
xid:トランザクションID
ciaddr:クライアントIP
yiaddr:割り当てるIP
siaddr:サーバIP
giaddr:DHCPリレーエージェントIP
chaddr:クライアントMAC
options:サブネットマスクやらデフォルトGWやらDNSサーバやら
サスペンド復帰時に無線LANを再接続させる方法@Ubuntu10.04
無線LANのドライバにndiswrapperを使ってますが
サスペンド復帰時に自動で再接続されない(モジュールが見えない
いろいろ調べて
$ sudo vi /etc/pm/config.d/local (chmod +xしとく
SUSPEND_MODULES=ath_pci
とかやってみたけどうまく行かない
また調べて
$ sudo modprobe -r ndiswrapper
$ sudo modprobe ndiswrapper
で無線LANが復活するのが解ったので
$ sudo vi /etc/pm/config.d/local
modprobe -r ndiswrapper sleep 1 modprobe ndiswrapper
としたらサスペンド復帰時にうまく自動で復活するようになりました