SSブログ
エステ

Ubuntuで無線LANアクセスポイントを構築 [Hostapd で無線LAN AP構築]

先日購入したZOTAC ZBOX NANO-VD01を活用して、無線LANアクセスポイントを構築します。

ZOTAC VIA Nano X2 U4025 CPU搭載 コンパクトベアボーンPC ZBOXNANO- VD01

ZOTAC VIA Nano X2 U4025 CPU搭載 コンパクトベアボーンPC ZBOXNANO- VD01

  • 出版社/メーカー: ZOTAC
  • メディア: Personal Computers



無線LANアクセスポイントといっても至ってシンプルで、無線LANと有線LANをブリッジしてあげて、無線LANクライアントからのコネクションを受け付けるようにしてあげます。

Ubuntuのインストールにちょっと癖がありましたが、Ubuntu 12.04LTS をインストール後、2つのソフトウェアをインストールします。

hostapd: アクセスポイント機能を提供してくれます

bridge-utils: アクセスポイントの無線LANと有線LANをブリッジしてくれます

# apt-get install bridge-utils hostapd

まずは、hostapdの設定ですが、設定の詳細はこちら

# vi /etc/hostapd/hostapd.conf

--
interface=wlan0
bridge=br0
driver=nl80211
ssid=AP7
channel=5
hw_mode=g
wpa=2
wpa_passphrase=(your password)

wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

ieee80211n=1
wmm_enabled=1
ht_capab=[HT40+][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40]

macaddr_acl=0
deny_mac_file=/etc/hostapd/hostapd.deny

logger_syslog_level=3
-- 

ついでに、アクセス拒否Macアドレス用ファイルを作成。(空)
# touch /etc/hostapd/hostapd.deny

ht_capabは iw list して得られるCapabilitiesを参考にします。(後述)

# iw list
Wiphy phy0
Band 1:
Capabilities: 0x11ce
HT20/HT40
SM Power Save disabled
RX HT40 SGI
TX STBC
RX STBC 1-stream
Max AMSDU length: 3839 bytes
DSSS/CCK HT40


さらに、起動時にhostapdが起動するように設定します。

# vi /etc/default/hostapd
--
DAEMON_CONF="/etc/hostapd/hostapd.conf"
--

次に、ブリッジの設定です。

# vi /etc/network/interfaces

--
# Loopback network interface
auto lo
iface lo inet loopback

# Wired network interface
auto eth0
iface eth0 inet static
address 0.0.0.0

# Wireless network interface
auto wlan0
iface wlan0 inet static
address 0.0.0.0

# Bridge network interface
auto br0
iface br0 inet static
address 192.168.1.253
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
bridge_ports eth0 wlan0
bridge_stp off
--

eth0とwlan0のIPアドレスは今回設定しません。(設定しても動きますが、意味が無いので。)192.168.1.253をブリッジのIPアドレスとして設定します。

これでOK
# service hostapd start

で無線LANアクセスポイントの構築完了です。


ところで、iw listの結果から、

HT TX/RX MCS rate indexes supported: 0-7

MCS indexは0から7まで対応していることがわかります。

IEEE 802.11n-2009によれば、
MCS
index
Spatial
streams
Modulation
type
Coding
rate
Data rate (Mbit/s)
20 MHz channel40 MHz channel
800 ns GI400 ns GI800 ns GI400 ns GI
01BPSK1/26.507.2013.5015.00
11QPSK1/213.0014.4027.0030.00
21QPSK3/419.5021.7040.5045.00
3116-QAM1/226.0028.9054.0060.00
4116-QAM3/439.0043.3081.0090.00
5164-QAM2/352.0057.80108.00120.00
6164-QAM3/458.5065.00121.50135.00
7164-QAM5/665.0072.20135.00150.00
82BPSK1/213.0014.4027.0030.00
92QPSK1/226.0028.9054.0060.00
102QPSK3/439.0043.3081.0090.00
11216-QAM1/252.0057.80108.00120.00
12216-QAM3/478.0086.70162.00180.00
13264-QAM2/3104.00115.60216.00240.00
14264-QAM3/4117.00130.00243.00270.00
15264-QAM5/6130.00144.40270.00300.00
163BPSK1/219.5021.7040.5045.00
173QPSK1/239.0043.3081.0090.00
183QPSK3/458.5065.00121.50135.00
19316-QAM1/278.0086.70162.00180.00
20316-QAM3/4117.00130.00243.00270.00
21364-QAM2/3156.00173.30324.00360.00
22364-QAM3/4175.50195.00364.50405.00
23364-QAM5/6195.00216.70405.00450.00
244BPSK1/226.0028.8054.0060.00
254QPSK1/252.0057.60108.00120.00
264QPSK3/478.0086.80162.00180.00
27416-QAM1/2104.00115.60216.00240.00
28416-QAM3/4156.00173.20324.00360.00
29464-QAM2/3208.00231.20432.00480.00
30464-QAM3/4234.00260.00486.00540.00
31464-QAM5/6260.00288.80540.00600.00

ですので、最大で150Mbpsまで対応していることがわかりますが、これは、仕様どおりです。

ht_capabの設定ですが、全く設定しないと、65Mbpsが最大です。ちなみに、ieee80211n=1を設定しないと54Mbpsです。

[HT40+]: 40MHz channelになるので、最大135Mbpsとなります。
[SHORT-GI-40]: さらに400ns GIになるので、最大150Mpbsとなります。

ht_capab=[HT40+][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40]

と設定していますが、[TX-STBC][RX-STBC1][DSSS_CCK-40]についてはスピードには効いていないように思います。


アクセスポイントを構築できたのはよいのですが、iPhoneで確認してみるとRSSIが非常に低い。
-90dBmくらい。
えっ?生きてる?って聞きたくなるくらい低い。
MacBook Air/Proから確認しても-70dBmくらい。う〜む。

試しにアンテナを外してみると、ほとんどRSSIは変わらない。つまり、役立たずです。

関係ないですが、ZOTAC ZBOX NANO-VD01を分解してみました。AD10の時みたいに。

image_1.jpeg
ハイ、バラバラです。

image_2.jpeg
グレーのケーブルはBluetoothのアンテナから出てきているものです。


ここで、思いつきました。
このBluetoothのアンテナを無線LAN用に利用できないかと。

bluetoothもIEEE802.11b/gも同じISMバンドで2.4GHz帯を利用するので原理的には使えるはずです。

さっそく選手交代。
(Before)
image.jpeg

(After)
image_4.jpeg

BT/WLAN用のhalfサイズmini PCIモジュールに刺しているアンテナのケーブルを差し替えました。

モジュール的には左が無線LAN、右がBluetoothです。
グレーのケーブルは(本来の)Bluetoothのアンテナに繋がり、黒のケーブルは無線LANのアンテナに繋がります。
(After)の絵ではそれが逆になっています。

偶然にもこの入れ替えでうまくいき、RSSIがかなり改善しました。

AP7が今回構築した無線LANアクセスポイントの名前ですが、

(Before)
スクリーンショット 2012-05-14 15.47.50.png
-66dBmこれは、標準アンテナ使用時。


(After)
スクリーンショット 2012-05-14 15.57.21.png
Bluetoothのアンテナを使用することで、-33dBmに改善。


Max Rateが65Mbpsになっていますが、これは上のhostapd.confをちゃんと設定してあげることで、150Mbpsになります。ネットワークスピードの実測的にはほぼ同じですが。。。
この改善はまた別の話で。

スクリーンショット 2012-05-14 16.10.36.png


ちなみに。iwコマンドで現在のMCS indexやbitrate、オプション設定等を確認できます。

# iw dev wlan0 station dump
Station 00:25:00:4d:f2:2f (on wlan0)
inactive time: 12412 ms
rx bytes: 1158309
rx packets: 6178
tx bytes: 1102416
tx packets: 3873
tx retries: 8961
tx failed: 1
signal:   -63 dBm
signal avg: -64 dBm
tx bitrate: 65.0 MBit/s MCS 7
authorized: yes
authenticated: yes
preamble: short
WMM/WME: yes
MFP: no

あと、iwconfigでtxpowerを設定できるので、出力を変更することで通信品質が向上する可能性があります。
Max16なので、それ以下で設定します。

たとえば、
#  iwconfig wlan0 txpower 12

# iwconfig
lo        no wireless extensions.

br0       no wireless extensions.

wlan0     IEEE 802.11bgn  Mode:Master  Frequency:2.442 GHz  Tx-Power=12 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          
eth0      no wireless extensions.

mon.wlan0  IEEE 802.11bgn  Mode:Monitor  Tx-Power=12 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on




ところで ZOTAC ZBOX NANO-VD01 の無線LANモジュールは

# lspci -vvv

02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
Subsystem: AzureWave Device 2c37
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 28
Region 0: Memory at fe9f0000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2- AuxCurrent=375mA PME(D0+,D1+,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
Address: 00000000  Data: 0000
Capabilities: [60] Express (v2) Legacy Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <64us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis+
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
Capabilities: [140 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
Status: NegoPending- InProgress-
Capabilities: [160 v1] Device Serial Number 00-00-00-00-00-00-00-00
Capabilities: [170 v1] Power Budgeting <?>
Kernel driver in use: ath9k
Kernel modules: ath9k


Mac/LinuxでもBIOSアップデートできるよ! [ZOTAC ZBOX NANO-VD01]

ZOTAC ZBOXNANO-VD01のディスプレイ出力がおかしかった(上下左右切れている)ことから、とりあえずBIOSのアップデートを行おうとしたのですが、提供されているのは、Windows上からアップデートする仕組みと、同じくDOSからアップデートする仕組みです。

OSをインストールしていない状態なので、お手上げですが、手元にあるMacやLinuxのマシンを活用してアップデートする仕組みを模索しました。

Windows7もインストール初期段階で躓いていたので、Windowsを入れてからアップデートというのも難しそうです。

ということで、FreeDOSを活用して、アップデートします。

MacでもLinuxでもFreeDOSのUSBメモリー版をダウンロードします。 
wgetなりして、展開しておいてください。 
 
まだ、USBメモリーは刺しません。 
コンソールから/dev以下を確認して、USBメモリーを刺す前の状態でのディスクの数を確認します。
(Macなら、disk1,disk2,... など、Linuxなら、sda,sdb,... など) 
FreeDOSをインストールしたいUSBメモリーをMac/Linuxマシンに刺し、認識させます。
その際に、/dev以下で増えたディスクを確認します。
 
元々Mac/Linuxマシンに搭載されているディスク等が一つだけなら、disk2やsdbが増えたはずです。
 
USBメモリーがFATなどでフォーマットされていると、Macでは自動的にマウントされてしまうので、unmountします。
 
$ sudo diskutil umount /dev/disk2s1
 
USBメモリ内が一つのパーティションだけなら、disk2s1だけunmountすればOKですが、複数あれば、全てunmountしましょう。しないと、resource busyとなり、ddできません。
 
Linuxでもデスクトップ版などで自動的にマウントされてしまう場合は、同様にunmountしましょう。
 
FreeDOSをダウンロード・展開したディレクトリへ移動し、
 
$ sudo dd if=FreeDOS-1.1-USB-Boot.img of=/dev/disk2
63488+0 records in
63488+0 records out
32505856 bytes transferred in 66.204340 secs (490993 bytes/sec)
 
でUSBメモリ用のFreeDOSイメージをUSBメモリに書き込むことができ、これでFreeDOSが起動できます。
 
イメージを書き込んだUSBメモリーのルートにBIOSのDOS用アップデートトールとBIOSアップデータもおいておきます。
ZOTAC ZBOXNANO-VD01ならzafudos.exeとa1790215.romです。(2012/5/10現在。)
 
あとは、USBメモリをZOTAC ZBOXNANO-VD01に刺して、USBメモリから起動し、FreeDOSを起動します。
 
起動後は、コマンド一つで終了。(ただし、VD01では画面の上下左右が切れているので、キー入力しても何も表示されませんが。。。)
 
>  zafudos a1790215.rom
 
アップデート完了!
 
でも ZOTAC ZBOXNANO-VD01 の問題は変わりませんでした。。とほほ
 
 

ZOTAC ZBOX NANO-VD01 にUbuntu 12.04LTS (Precise Pangolin) server をインストール [ZOTAC ZBOX NANO-VD01]

Apple AirMac Extremeもいいのですが、AirMacユーティリティをVer.6に上げてからユーティリティが滅法使いにくくなってしまい、というか、ちゃんとユーティリティからAirMac Extremeが認識されなかったりで、不便きわまりないので、Ubuntuで無線LANアクセスポイントを構築すれば、いろいろな不便から解放されるのでは?ということで、Ubuntuの入れ先として、ZOTAC ZBOXNANO-VD01 を購入しました。

ZOTAC VIA Nano X2 U4025 CPU搭載 コンパクトベアボーンPC ZBOXNANO- VD01

ZOTAC VIA Nano X2 U4025 CPU搭載 コンパクトベアボーンPC ZBOXNANO- VD01

  • 出版社/メーカー: ZOTAC
  • メディア: Personal Computers
相変わらず、買ってから調べるタイプなので、ハマりました。。。

ZOTAC ZBOX NANO-VD01のスペック。

Model
 ?ModelZBOX nano VD01
Chipset
??ManufacturerVIA
??ChipsetVX900H
??GPUVIA Chrome9[トレードマーク] HCM
CPU Compatibility
??NameVIA Nano[トレードマーク] X2 U4025 (dual-core) (1.2 GHz)
??SocketNA (integrated CPU)
??Frontside busNA
Memory
??Memory TypeDDR3
??Memory Speed1066 Mhz
??Slotsna
??CapacitySupport 1 204-pin DDR3 SODIMM (up to 4GB)
Expansions
??Expansion Slotsna
3D API
??DirectX[レジスタードトレードマーク]DirectX 9
??OpenGL[レジスタードトレードマーク]NA
Networking
??Ethernet10/100/1000Mbps
??WiFi802.11n/g/b + Bluetooth 3.0
Audio
??AnalogHeadphone jack
Microphone jack
??Digital2-ch via HDMI
Storage
??Hard Drive2.5“ drive bay
??Optical Drivena
??Memory Card Reader6-in-1 (MMC/SD/SDHC/MS/MS Pro/xD)
Ports
??DVIna
??HDMI1 (PCM audio)
??DisplayPort1
??SATASATA 3.0 Gb/s compatible
??eSATA1
??IDEna
??PS2na
??Serial Portna
??USB Ports2 USB 3.0 (on back panel) 2 USB 2.0 (on back panel)
??Firewirena
Cooler
??CoolerSmartfan
Form Factor
??Form Factormini-PC
OS Compatibility
??WindowsUser installed (Windows XP Vista 7 and Linux ready)
General
??SLI SupportedNo
??Maximum Resolutionna
Other
??Graphics Output1 DisplayPort / 1 HDMI
Packaging
??Content1 x ZOTAC ZBOX nano VD01
1 x MCE compatible remote
2 x CR2032 batteries (for remote)
1 x USB IR receiver
1 x WiFi antenna
1 x VESA mount
1 x AC adapter
1 x Power cord
1 x Warranty card
1 x User manual
1 x Driver CD


CPU/Chipsetが懐かしのVIAということ以外には、AD10とあまり変わりがありません。

ZOTAC AMD Fusion E350 APU搭載 コンパクトベアボーンPC ZBOXNANO-AD10

ZOTAC AMD Fusion E350 APU搭載 コンパクトベアボーンPC ZBOXNANO-AD10

  • 出版社/メーカー: ZOTAC
  • メディア: Personal Computers
AD10がお兄ちゃんです。

お兄ちゃんはわりと従順で現在はZabbix + ZoneMinderサーバとして活躍中ですが、弟くんのVD01はちょっとお行儀が悪く、ちょっと難儀します。無線LANアクセスポイントとして使いたいので、今回もGUIは必要なく、 Ubuntu Server版で十分です。

GPUのVIA Chrome9の動きが良くないのか、インストールの初期段階で躓きます。

これは、Ubuntu11.10, Windows7 Home Premiumでも同様の現象(インストール初期段階で、HDMI出力が途絶える)が置きます。DVD/CD-ROMドライブを交換しても、発生しますし、そのような報告が他でも散見されるので、個体の問題でもないでしょう。

ちなみに、Displayportでは試していませんので、もしかするとうまくいくかも知れません。

現象としては、電源ONしてから、BIOS起動画面?が写ったり、写らず真っ黒だったり、ちらついたり、写ったとしても、左3文字分くらい、右2文字分くらい画面が切れてます。。 なので、運良く、BIOS設定メニューを起動できても、いきなり、"Main"の頭2文字が切れて、"in"とか表示され、想像力を試されるシチュエーションに突入します。

AMI BIOSなので、なんとなく、わかるので何となく設定します。

はじめ、BIOSをアップデートすれば治るかも!と思い、アップデートしましたが、全く効果なし。
そもそも、WindowsかDOSを持っていること前提でアップデータを配布しているところでちょっと時間を食う。
これはまた別のエントリーで説明します。(Mac/LinuxでもBIOSアップデートできるよ!にて。)

Ubuntu 12.04LTS (Precise Pangolin) のCD-ROMを読み込ませて、最初に言語を選択し、つぎに"Install Ubuntu Server"でエンターを押すが、CD-ROMが読み込まれる気配がした後、しばらくしてモニターには「入力がありません」と表示され先にすすめない。

いろいろ試してみましたが、解決方法はこうです。

まず、先ほどの、Install Ubuntu Server でフォーカスします。
そこで、F6キーを押します。
画面下に、起動オプションが表示されると思いますが、そこで"VGA=788"と記載されているところを消し、代わりに"xforcevesa"(もちろん前後にスペース)と打ち込み、エンター。

これで、次のステップにいけるはずです。

インストール自体はほぼ問題なし。左右と下の画面が切れていますが、辛うじて判別可能。インストールできました。インストール後も切れていますが、勘で乗り切ります。どうせsshでMacBookからログインして、その後の作業は行うので。。

ところで、インストール途中で、"Reserved BIOS boot area"というのに遭遇した。
インストール先のパーティションをルート/とswap二つだけ切って、インストールしようとすると、


image.jpeg

The partition table format in use on your disk normally requires you to create a separate partition for boot loader code. This partition should be marked for use as a "Reserved BIOS boot area" and should be at least 1MB in size. Note that this is not the same s a partition mounted on /boot.

If you do not go back to the partition menu and correct this error, boot loader installation may fail later, although it may still be possible to install the boot loader to a partition.

つまり、

このディスクでご使用のパーティションテーブルフォーマットは通常ブートローダーコードを格納するためのパーティションを別途必要としております。このパーティションは"Reserved BIOS boot area"用としてマークされ、少なくとも1MB必要とされています。

もしパーティションメニューへ戻りこのエラーを修正しない場合は、後のブートローダーのインストールに失敗するかも知れません。ただし、他のパーティションにブートローダーをインストールできる可能性もあります。


不吉なので、戻ってパーティションを切り直します。

Reserved BIOS boot area用に、念のため、100MB奮発します。あと、/とswapに割り当てます。

Reserved BIOS boot areaのパーティション設定では、Use as:でReserved BIOS boot areaを選択します。

image_2.jpeg


他はいじりません。

image_3.jpeg


結果、こんな感じです。

image_4.jpeg


これで、インストール成功。

一段落です。
 
 


ちなみに、今回、Ubuntuは8MBのUSBメモリにインストールしたのですが、VD01には2つのUSB2.0ポートと2つのUSB3.0ポートしかありません。

運用上はこれで問題ないのですが、インストール時には問題になります。

USBメモリといっても、実際はMicro SDカードで、それをUSBメモリのゲタ?を履かせてよく使います。

ゲタ↓
iBUFFALO カードリーダー/ライター microSD対応 超コンパクト ブラック BSCRMSDCBK

iBUFFALO カードリーダー/ライター microSD対応 超コンパクト ブラック BSCRMSDCBK

  • 出版社/メーカー: バッファロー
  • メディア: Personal Computers

キーボードとDVD-ROMドライブをUSB2.0ポートにつなぐと、ゲタを刺す場所がありません。。。
ちなみに、USB3.0ポートはキーボード、DVD-ROMドライブ、ゲタともに認識されません。

仕方なく、新たなゲタ=SDカード・Micro SDカード変換アダプタを用い、VD01前面のSDカードスロットに刺しますが、インストール時にDiskとしてdetectされませんでした。

苦肉の策として、USB3.0ポートを使います。

結果、無事Micro SDカードが認識され、インストールできました。

インストール後は、元のコンパクトなゲタにMIcro SDカードを移動してあげて、USB2.0ポートに刺して、起動しています。今のところ、問題なし。
 
 
 
ところで、resolvconfの動きが微妙に変わったのか、今まで、/etc/network/interfaces に 
 
dns-nameserver 192.168.1.1
 
と書いておけば、192.168.1.1からnameserverアドレスを受け取って、/etc/resolv.confを勝手に更新してくれていたのですが、更新してもらえず、調べてみると、
 
dns-nameservers 192.168.1.1
 
と書けと。。
sだよ、sと。 
 
dns-nameserverでも、一旦受け取って、/etc/resolvconf/resolv.conf.d/originalに書き込んでるみたいなんですけどねぇ。。resolv.confを更新してくれない。

旧Macから新MacへiTunesのデータを引っ越す [iPhone]

MacBook ProにインストールされたiTunesとiPhone4とでデータの同期をしていたのですが、最近はMacBook Airのほうを専ら使っているので、同期先をProからAirに変更しようと思います。

また、iTunesのデータだけで20GB以上あるので、データはファイルサーバ上に置きます。

1.今まで同期していた、MacBook ProとiPhone間で同期します。また、iTunesの[デバイス]-iPhoneアイコン上でControl+クリック(右クリック)し、購入した項目を転送する。

2.MacBook ProのiTunesで [ファイル]-[ライブラリ]-[ライブラリの整理]-[ファイルを統合]にチェックを入れ、[OK]ボタンを押す。

3.iTunesライブラリディレクトリをファイルサーバへコピーする。
  /Users/{user name}/Music/iTunes

4.新しい同期先とするMacBook AirでiTunesを立ち上げる。iTunesを立ち上げる際にOptionキーを押しらながら、iTunesのアイコンをクリックする。

5.iTunesライブラリ選択画面が現れるので、ファイルサーバへコピーしたiTunesライブラリを指定する。
スクリーンショット 2012-04-26 13.51.11.png
6.MacBook AirのiTunesの[Store]-[このコンピュータを認証]する

7.MacBook Airで同期できることを確認する。

8.Airで確認できたことを確認できた後、ProのiTunesの[Store]-[このコンピュータの認証を解除]する。

これで完了。のはず。


Apple MacBook Air 1.4GHz Core 2 Duo/11.6

Apple MacBook Air 1.4GHz Core 2 Duo/11.6"/2G/64G/802.11n/BT/Mini DisplayPort MC505J/A

  • 出版社/メーカー: アップル
  • メディア: Personal Computers

Postfixを使ってGmailアカウントのメールを送る [Server software]

サーバーでPostfixを動かして、自分のGmailアカウントのメールを送るための設定です。
これでローカルでroot宛てに届いたメールをGmailアカウント宛てに転送することもできます。
Zabbixのアラートメールも送れます。

まずは、Postfixのインストールから。ちなみに、サーバーはUbuntu11.10
# apt-get install postfix

Gmailでメールを送るためには、TLS/SSLが必要なので、sasl2-binもインストール。
# apt-get install sasl2-bin


次に設定。
# vi /etc/postfix/main.cf
--
# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
myorigin = localhost.localdomain

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
delay_warning_time = 1h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls=yes

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = ws # サーバー名に書き換えます
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = ws, localhost.localdomain, localhost # サーバー名を追記
relayhost = [smtp.gmail.com]:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = localhost
home_mailbox = Maildir/

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_auth
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain

relay_domains = gmail.com
smtpd_recipient_restrictions = permit_auth_destination,reject
--


sasl_auth を新たに作成します。Gmailアカウントの設定です。
# vi /etc/postfix/sasl_auth
--
[smtp.gmail.com]:587  example@gmail.com:password
--

パスワードファイルの読み書き権限を変更します。
# chmod 600 /etc/postfix/sasl_auth

パスワードファイルをハッシュ化します。
# postfix  /etc/postfix/sasl_auth
最近のpostfixでは、postfixコマンドの代わりに、postmapコマンドを使うようです。(2013/9/16追記)
 

これで、/etc/postfix/sasl_auth.dbが作成されたはずです。

# service postfix restart

これでおわり。

root宛てのメールをexample@gmail.com宛てに転送する設定は/etc/aliasesから。
# vi /etc/aliases
--
root: example@gmail.com
--

ハッシュ化。
# newaliases


これで送れるはずですが。。


ところで、ログが、/var/log/syslogと/var/log/mail.log両方に同じものがはかれているので、設定を変更します。

# vi /etc/rsyslog.d/50-default.conf

--(変更前)
(略)
*.*;auth,authpriv.none     -/var/log/syslog
(略)
--
--(変更後)
(略)
*.*;mail,auth,authpriv.none     -/var/log/syslog
(略)
--

# service rsyslog restart



Done!

タグ:リレー

Zabbixからアラートメールを送る [ZABBIX]

サーバー上で障害発生時にZabbixからアラートメールを送る方法をば。

Administration - Media Types -Emailから設定

スクリーンショット 2012-04-23 13.19.08.png

Zabbixサーバー上ではPostfixが動いています。

SMTP Server: localhost.localdomain
SMTP helo: localhost.localdomain
SMTP email: zabbix@localhost.localdomain

/etc/hosts には localhost.localdomainが含まれていることを確認。なければ追記して、# service networking restart

--/etc/hosts example
127.0.0.1       localhost localhost.localdomain

--

つぎはアラートを知らせる先のユーザーの設定です。
Administration - Usersから、必要なユーザー(下の例ではAdmin)のMediaにEmailアドレスを設定します。

スクリーンショット 2012-04-23 13.20.40.png


あとはアクションの設定です。
Configuration - Action - Action Operationsを追加。

スクリーンショット 2012-04-23 14.43.05.png

これで、アラートメールが送られてくるはずです。




Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

パワーダウン時にZabbixからサーバーをシャットダウンする [ZABBIX]

Zabbixから他のサーバーをシャットダウンできるようにしましたが、Zabbixの動きがところどころおかしく(バグ?)、忘れないように、メモメモ。


以前のエントリでオムロンのBY50SをUbuntu11.10で認識させて、Zabbixから監視できるようにしました。

オムロン 無停電電源装置(常時商用給電/正弦波出力) 500VA/300W BY50S

オムロン 無停電電源装置(常時商用給電/正弦波出力) 500VA/300W BY50S

  • 出版社/メーカー: オムロン
  • メディア: Personal Computers
その時は、VoltageとStatusだけでしたが、充電率を簡易的に得て、特定の容量を下回った場合に、UPSに接続されているサーバーをZabbixからシャットダウンすることにします。

1.BY50Sの充電容量が30%を下回り
かつ
2.BY50Sがオフライン(電源断)
の時にシャットダウンします。


こんな状況です。
                     AC100V
                         |
       -----------[BY50S]---------
       |                                 |
[サーバー:ws]---------------[サーバー:fs]
-Zabbixサーバー                -Zabbixエージェント
-nut



1.充電容量の取得

ここに取得方法が記載されています。

                       battery.voltage - battery.voltage.low
battery.charge =  ------------------------------------------------ x 100 %
                     battery.voltage.high - battery.voltage.low


battery.voltageの最大値と最小値を取得します。

最大値は充電完了後の状態で、battery.voltageを確認します。

# upsc by50s battery.voltage

最小値はBY50Sへの電源供給を止めた状態で、nutが自動的にシャットダウンを実施した時点のbattery.voltageを確認します。

battery.voltage.high=13.6
battery.voltage.low=11.9

これらを、/etc/nut/ups.confに追記します。

[by50s]
driver = blazer_usb
port = /dev/usb/hiddev0
desc = "Omron UPS"
vendorid = 0590
productid = 0081
subdriver = ippon

default.battery.voltage.high = 13.6
default.battery.voltage.low = 10.9

これで、battery.chargeを参照することで、簡易ですが、充電率を取得できます。

# upsc by50s battery.charg
100

# echo 'UserParameter=UPS.charge[*],upsc $1 battery.charge' >> /etc/zabbix/zabbix_agentd.conf

スクリーンショット 2012-04-17 14.49.46.png

これで、ZabbixからUPSの充電率が見えるようになりました。


2.UPSが電源断がZabbixから判るようにします

じつは、battery.statusで判るのですが、Zabbixのトリガーがテキストの変化を検出できない(バグ?)ので、一旦数値型に書き換えて、その変化で電源断を検出します。

/usr/local/bin/ups-statusを新規作成。
これで、一旦、battery.statusを数値型に書き換えます。
--
#! /bin/sh

if [ ! -x /bin/upsc ]; then
        "Couldn't find command upsc"
        exit 1
fi

str="initial"
status="0"

str=`/bin/upsc $1 ups.status`

if [ "$str" = "OL BYPASS" ]; then
        status="1"
elif [ "$str" = "OB" ]; then
        status="2"
elif [ "$str" != "initial" ]; then
        status="3"
fi

echo ${status}

exit 0
--
# /usr/local/bin/ups-status by50s
1

これで、OK
あとは、Zabbixエージェントの設定と再起動

# echo 'UserParameter=UPS.status[*],/usr/local/bin/ups-status $1 ups.status>> /etc/zabbix/zabbix_agentd.conf
# service zabbix-agent restart

これでOK

あとは、

3.Zabbixでトリガーの登録
4.Zabbixでアクションの登録
です。


3.Zabbixでトリガーの登録

Configuration - Template から作りたい先のテンプレートのtriggerを選択し、そこから、[Create Trigger]ボタンから作成。
テンプレートは、Linux_template内に作成。

スクリーンショット 2012-04-17 15.04.05.png

Expressionはこんな感じで。
{Template_Linux:UPS.charge[by50s].last(0)}<30 & {Template_Linux:UPS.status[by50s].last(0)}=2

UPS.charge[by50s].last(0):充電率の直近値
UPS.status[by50s].last(0):ステータスの直近値

SeverityはDisasterで。

4.Zabbixでアクションの登録

Configuretion - Action の [Create Action]から新規作成。

スクリーンショット 2012-04-17 15.13.16.png

Action Conditions と Action Operations を登録します。

Action ConditionsはTrigger SeverityはDisaster にしました。Trigger名とステータスからTriggerとして検出したかったのですが、Triggerを選択後[select]ボタンからtriggerを選択しても反映されないのでSeverityから検出するようにしました。他のTriggerでDisasterを選択している場合は他のTriggerでもシャットダウンが実行されることになってしまうので、注意が必要です。私の場合は、Disaster=サーバー停止が必要な状態という考えで、これでよしとしました。

Action OperationはOperation typeを"Remote command"に変更し、Remote command欄にシャットダウンコマンドを記載します。

fs:sudo /sbin/shutdown -h 0

:の前はシャットダウンしたい(Zabbix内でのサーバー名です。

ただ、Zabbixではshutdownコマンドを実行する権限がないので、シャットダウンしたいサーバーで/etc/sudoerを編集します。

$ sudo visudo

で 
zabbix ALL=NOPASSWD: /sbin/shutdown
を追記して、保存します。

以上。。

あとは実際に、アンプラグしてみて、ちゃんとシャットダウンされるか確認します。

電源断の状態でかつ充電率が30%を下回っていると、シャットダウンされたサーバーの電源をonにしても、zabbix agentが立ち上がった段階で再度シャットダウンが実行されますよ。



Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

AVAHIがうるさいので、だまらせることに [Netatalk]

以前から、Avahi daemonがログでうるさかったのが気になっていたのですが、どうもバグっぽいので、/var/log/syslogから他へ捨てることに。

Apr 16 17:36:51 fs avahi-daemon[836]: Invalid query packet.
Apr 16 17:37:28 fs avahi-daemon[836]: last message repeated 2 times
Apr 16 17:45:06 fs avahi-daemon[836]: Invalid query packet.
Apr 16 17:46:29 fs avahi-daemon[836]: last message repeated 2 times
Apr 16 17:49:45 fs avahi-daemon[836]: Invalid query packet.
Apr 16 17:50:59 fs avahi-daemon[836]: last message repeated 2 times
Apr 16 19:34:10 fs avahi-daemon[836]: Invalid query packet.
Apr 16 19:35:35 fs avahi-daemon[836]: last message repeated 11 times
Apr 16 19:57:38 fs avahi-daemon[836]: Invalid query packet.
Apr 16 19:59:07 fs avahi-daemon[836]: last message repeated 3 times
Apr 16 20:00:57 fs avahi-daemon[836]: Invalid query packet.
Apr 16 20:02:07 fs avahi-daemon[836]: last message repeated 6 times
Apr 16 20:10:58 fs avahi-daemon[836]: Invalid query packet.
Apr 16 20:12:07 fs avahi-daemon[836]: last message repeated 6 times
Apr 16 20:23:32 fs avahi-daemon[836]: Invalid query packet.
Apr 16 20:24:38 fs avahi-daemon[836]: last message repeated 6 times
Apr 16 20:25:38 fs avahi-daemon[836]: last message repeated 7 times
Apr 16 20:40:18 fs avahi-daemon[836]: Invalid query packet.
Apr 16 20:41:39 fs avahi-daemon[836]: last message repeated 2 times



# vi /etc/rsyslog.d/40-avahi.conf

--
:programname, contains, "avahi-daemon" /var/log/avahi/avahi.log
:programname, contains, "avahi-daemon" ~
--
を新規で作成。


# vi /etc/logrotate.d/avahi

--
/var/log/avahi/avahi.log {
        rotate 1
        daily
        missingok
        notifempty
        compress
        delaycompress
}
--
これも新規で作成。

# service rsyslog restart

これで静かになる。対処療法的ですが。。。

apt-cache コマンド [Linux コマンド・設定 Memo]

インストールされているパッケージのバージョンや依存関係を知りたい時に利用します。

便利。

# apt-cache show avahi-daemon

Package: avahi-daemon
Priority: optional
Section: net
Installed-Size: 400
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
Architecture: amd64
Source: avahi
Version: 0.6.25-1ubuntu6.2
Depends: libavahi-common3 (>= 0.6.16), libavahi-core6 (>= 0.6.24), libc6 (>= 2.4), libcap2 (>= 2.10), libdaemon0 (>= 0.12), libdbus-1-3 (>= 1.1.1), libexpat1 (>= 1.95.8), upstart-job, adduser, dbus (>= 1.2.16-0ubuntu3), lsb-base (>= 3.0-6), bind9-host | host
Recommends: libnss-mdns
Suggests: avahi-autoipd
Filename: pool/main/a/avahi/avahi-daemon_0.6.25-1ubuntu6.2_amd64.deb
Size: 65204
MD5sum: 9d3449a755bb55700464eb0db478df5a
SHA1: 23e4310fddacc5707d9ca52c4c4e221e7887c069
SHA256: d3538191f5ae0dbfe76a0de4f02b74c1450b410a007e8a5030ebbbc93447eaa6
Description: Avahi mDNS/DNS-SD daemon
 Avahi is a fully LGPL framework for Multicast DNS Service Discovery.
 It allows programs to publish and discover services and hosts
 running on a local network with no specific configuration.  For
 example you can plug into a network and instantly find printers to
 print to, files to look at and people to talk to.
 .
 This package contains the Avahi Daemon which represents your machine
 on the network and allows other applications to publish and resolve
 mDNS/DNS-SD records.
Origin: Ubuntu
Supported: 5y
Task: ubuntu-desktop, eucalyptus-cloud, eucalyptus-cluster, eucalyptus-node, eucalyptus-storage, eucalyptus-walrus, print-server, kubuntu-desktop, kubuntu-netbook, edubuntu-desktop, xubuntu-desktop, ubuntu-netbook

Package: avahi-daemon
Priority: optional
Section: net
Installed-Size: 392
Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
Architecture: amd64
Source: avahi
Version: 0.6.25-1ubuntu6
Depends: libavahi-common3 (>= 0.6.16), libavahi-core6 (>= 0.6.24), libc6 (>= 2.4), libcap2 (>= 2.10), libdaemon0 (>= 0.12), libdbus-1-3 (>= 1.1.1), libexpat1 (>= 1.95.8), upstart-job, adduser, dbus (>= 1.2.16-0ubuntu3), lsb-base (>= 3.0-6), bind9-host | host
Recommends: libnss-mdns
Suggests: avahi-autoipd
Filename: pool/main/a/avahi/avahi-daemon_0.6.25-1ubuntu6_amd64.deb
Size: 64914
MD5sum: 9f4bb4b08a4c427899b648d7ef5922d7
SHA1: 148bbacf83e21d716250f9524e9e369b5c98e3c5
SHA256: ce31df3aa3d7d383c74ec57ae50e6dde6c73c1360789e72366d3b84d9c723076
Description: Avahi mDNS/DNS-SD daemon
 Avahi is a fully LGPL framework for Multicast DNS Service Discovery.
 It allows programs to publish and discover services and hosts
 running on a local network with no specific configuration.  For
 example you can plug into a network and instantly find printers to
 print to, files to look at and people to talk to.
 .
 This package contains the Avahi Daemon which represents your machine
 on the network and allows other applications to publish and resolve
 mDNS/DNS-SD records.
Origin: Ubuntu
Supported: 5y
Task: ubuntu-desktop, eucalyptus-cloud, eucalyptus-cluster, eucalyptus-node, eucalyptus-storage, eucalyptus-walrus, print-server, kubuntu-desktop, kubuntu-netbook, edubuntu-desktop, xubuntu-desktop, ubuntu-netbook



Windows7にZabbix agentをインストール [ZABBIX]

XBMCをインストールしたWindows7にZabbix agentをインストールしましたが、ちょっと引っかかったので、メモ。

現時点で、Windows版は1.8.11が最新版のようです。

ここからダウンロード。http://www.zabbix.com/downloads/1.8.11/zabbix_agents_1.8.11.win.zip

適当に展開して、32bit版か64bit版か適切なほうをインストールします。

コマンドプロンプトから、

>C:\Users\(user name)\Desktop\zabbix_agents_1.8.11.win\win64\zabbix_agentd.exe --install

あ、これは、デスクトップに展開したフォルダをおいた場合です。

このインストール時に、zabbix_agentd.exeのプロパティの互換性タブから、「□管理者としてこのプログラムを実行する」にチェックを入れてあげないと、Cannot connect to Service Managerといわれて、おこられます。

これでインストール完了なので、あとは最低限の設定。

起動ドライブのルートにconfファイルを置く。

C:\zabbix_agentd.conf

--zabbix_agentd.conf

Server=192.168.1.15
Hostname=ms
ListenIP=192.168.1.16
StartAgents=1
DebugLevel=3
LogFileSize=1
Timeout=3

--

Windows版には不要なパラメータが入っているかも。。

あと、C:\Program Files\Zabbix にもconfがあるので、そっちも一応、修正。

Server=192.168.1.15
 
Hostname=ms

ListenIP=192.168.1.16
 
LogFile=C:\Program Files\zabbix\zabbix_agentd.log

デフォルトではListenIP=127.0.0.1になっているはずです。

次に、10050のポートを空けてあげます。(自動であいていなかったので。) コントロールパネル->Windowsファイアウォール->詳細設定->受信の規制から右側のペインの「新しい規則」でポート10050を追加してあげます。名前は適当に。

 あとは、Zabbix agentが自動的に起動されるように、サービスの設定。 コントロールパネル->管理ツール->サービスでZabbix agentを選んで、スタートアップの種類が「自動」になっていることを確認。

これでOKなはず。。あとは、ZabbixのWeb画面から適当に追加。そっちの設定はぼちぼちと。。。

 

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plusシリーズ)

  • 作者: 寺島 広大
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/04/08
  • メディア: 大型本

 


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。