Windows10 で動かす Zabbix2

タイトルこそ "Windows10 で動かす Zabbix2" ですが、実際は"Windows10 の Hyper-V で動かす Zabbix2 アプライアンス"が正解です。

何かと Linux を使うという事は「専門性」が要求されるわけですが、自称"オープンソース専門家"ではなくても使えるオープンソースという考え方は重要だと思います。

ここでは Zabbix 2.2 仮想アプライアンスを Windows10 の Hyper-V 環境で動かすことを前提としています。

※ 最新の Zabbix 3.0 は Ubuntu ベースで、死ぬほど苦労したにも関わらず、動作させたところ不安定なところがいくつか見受けられました。また致命的な変更点は、通信の暗号化程度で、インターフェースがコスメティックに変化していた程度でした。ここでは 2.2 の利用方法を説明しています。まぁ現在 openSUSE が leap 版だという事もあり Zabbix 3.0 がUbuntu でも仕方がないでしょう。

- Zabbix アプライアンスの入手 -

Zabbix アプライアンスはこちらから入手します。ここでは Hyper-V を使用しましたが、仮想環境があるのであれば、 XEN でも KVM, VMware のイメージでも構いません。
または

※ここでは Zabbix2.2 の説明をしています。ダウンロードするアプライアンスも 2.2 を取得してください。また、Zabbix アプライアンスは小規模ネットワークでの評価目的ですので、数千台のサーバーがあるデータセンターでの導入だとか、詳細なサポートは Zabbix LLC. のサポートを強くお勧めします。

アプライアンスの詳細はこちらのドキュメントをご参考ください。デフォルトのパスワードなどが記載されています。

-Zabbix アプライアンスの実装-

VHD の圧縮イメージを入手したら、任意のディレクトリに解凍します。

Hyper-V ウィザードから Zabbix アプライアンスの VHD イメージを実装します。
「新規仮想マシン」を作成します。ここでは Hyper-V の細かな導入、設定、操作方法は説明していませんのであしからずご了承ください。Hyper-V のデフォルトでネットワーク構成が「なし」(笑)なので、必ず、ブリッジを指定します。
ただし、仮想ハードディスクは「既存の仮想ハードディスクを使用する」から、解凍した VHD イメージを指定します。
a0056607_08162890.jpg

これがサマリです。必ず"ネットワーク"はブリッジ接続しましょう。デフォルトは "なし"です。
a0056607_08171013.jpg

Hyper-V マネージャから仮想アプライアンスに接続して起動すると openSUSE が起動して、仮想アプライアンスが起動します。root/zabbix のデフォルトでコンソールに接続できます。
a0056607_08193228.jpg

仮想アプライアンスは SUSE Linux で作られているため、あらかじめMicrosoft 製 Hyper-V 用の仮想ドライバが組み込まれています。

zabbixhv:~ # cat /var/log/messages | grep Microsoft
2016-03-22T02:13:06.804337+00:00 zabbixhv kernel: [ 0.000000] DMI: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006 05/23/2012
2016-03-22T02:13:06.804340+00:00 zabbixhv kernel: [ 0.000000] Hypervisor detected: Microsoft HyperV
2016-03-22T02:13:06.806502+00:00 zabbixhv kernel: [ 13.505447] input: Microsoft Vmbus HID-compliant Mouse as /devices/virtual/input/input4
2016-03-22T02:13:06.806505+00:00 zabbixhv kernel: [ 13.505490] hid 0006:045E:0621.0001: input: <UNKNOWN> HID v0.01 Mouse [Microsoft Vmbus HID-compliant Mouse] on
zabbixhv:~ #

-IP の固定化-

openSUSE の yast ツールを使って、DHCP アドレスから固定 IP に変更します。

# yast

から Network Devices > Network Setting を開き
a0056607_08202214.jpg

DHCPだった IP の設定をEdit から Static/SubnetMask に変更します。
その他 'Hostname/DNS' タブと 'Routing' タブの DNS と Default Route を変更して OK を押します。
ついでに DNS 名、ホスト名が linux-xxxxx.site となっているので、例えば zabbix22.yourcompany.com などに変更します。変更結果は再起動した後、プロンプトに設定したホスト名に変更されます。
a0056607_08240357.jpg
※ ちなみに Zabbix Appliance には yast に必要なメニューしかバンドルされていません。 # zypper install yast2* を実行すると、様々な楽し気でナイスなメニューが出てきます。使えないものもありますが ......

-NTP の変更-

NTP は公共の ntp プールを使っているので、できれば、LAN内部の NTP サーバーを使用するようにしましょう。
a0056607_08243787.jpg

yast > Network Service > NTP servivce の Add メニューから "Server"、 イントラネット内部の NTP サーバーを指定します。実際通信できているかは TEST ボタンを押して確認します。
a0056607_08250863.jpg

これが出来上がった ntp の状態です。デフォルトで Hardware Clock が指定されていますが、これは削除するのがよいでしょう。
a0056607_08255976.jpg
-PHP.ini の書き換え-

php.ini の書き換えはタイムゾーンの変更だけです。ここだけは vi を使います

# vi /etc/php5/apache2/php.ini

で php.ini を開き

# date.timezone = 'UTC'
の部分をコメントアウトして
date.timezone = Asia/Tokyo
に変更します。

zabbixhv:/etc/php5/apache2 # ls php.ini
php.ini
zabbixhv:/etc/php5/apache2 # cat php.ini | grep timezone
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
#date.timezone = 'UTC'
date.timezone = Asia/Tokyo
zabbixhv:/etc/php5/apache2 #

なお、PHP は Zabbix アプライアンス内部で最適化されているようです。百台程度のデバイスの評価目的ならメモリなどのチューニングはデフォルトのままで結構でしょう。ソースから導入する場合は、 php.ini を書き換える必要があるそうです。

HOSTNAME の変更が反映されるよう、サーバーを再起動して、NTP や Apacheなどが起動したら、ブラウザのフロントエンドからブラウザのアドレスバーに、固定したアドレスをセットして Admin/zabbix でログインします。
a0056607_08264524.jpg
Monitoring > Graphs の右端の時刻が日本時間になっていれば php.ini のタイムゾーンの設定はOKです。
a0056607_08273906.jpg
※ここでのキャプチャ画面は英語ですが、右上のプロファイルメニューから日本語に変更できます。

- 監視対象ホストの設定 -

Configuration > Host から "Create Host" ボタンを押して、監視対象のホストを登録します。
a0056607_08290076.jpg
"Host Name", "Visual Name" をセットして
- "Agent Interface" -- エージェントがなければ空欄でも構いません。
- "SNMP Interface" に Add ボタンで監視対象のコンピュータの "DNS名"、もしくは IP を設定します。DNS名を設定した場合、IP アドレスは空欄でも構いません。一旦 "Save" しましょう。
a0056607_08293183.jpg
次にHost の "Template" タブを開き Link new Template から Template SNMP OS Linux を選びます。空欄に "snmp" と入れると、テンプレート snmp のリストが出るので、一番近いテンプレートを選び 'Add' し、'Save' します。
a0056607_08300907.jpg
監視対象が Windows や NAS, スイッチング HUB などの場合は "SNMP Generic" など近いものを選ぶと良いでしょう。


ここから5分ほど置いてからホスト一覧を再読み込みしてください。 Availability のところが"緑色" になっていれば、 SNMP 監視が始まっています。登録した当初は Grafhs(x) の値が0になっていますが、 Zabbix がデータを収集し始めると、設定されたアイテムに従って、グラフデータを収集し始めます。
a0056607_08313099.jpg

SNMPの監視が始まってから約1時間待つと、"Graph" の数値が 0 からいくつかのグラフ数が入り、描画が始まります。
Monitoring > Graph を選び、右のトグルボタンから"Group"、"Host"、"Graphの対象(Eth0など)" を選ぶとグラフが表示されます。
a0056607_08323381.jpg
※ここはとにかく1時間じっくり待ちます。とにかく慌てないこと。

-監視対象は SNMP が動いているか-

監視対象デバイスで snmp が動いているかどうかは snmpwalk を使って確認します。一般的な NAS やスイッチングHUB などの場合、 バージョンは version '2c' コミュニティ名は Read Only(RO) の 'public' を指定すればよいでしょう。この記事では Trap の機能までは説明しません。

ちなみに SUSE Linux はデフォルトでは正しく動作しません。net-snmp パッケージを導入して snmpd.conf の Community 行の書き換えが必要です。snmpwalk に使用する OID .1.3.6.1.2.1.1 などは、MIB 関連のドキュメントを読んで勉強してください。(と逃げる)

zabbixhv:~ # snmpwalk -v 2c -c public dns2.intra .1.3.6.1.2.1.1
Created directory: /var/lib/net-snmp/mib_indexes
SNMPv2-MIB::sysDescr.0 = STRING: Linux dns2 3.0.101-63-xen #1 SMP Tue Jun 23 16:02:31 UTC 2015 (4b89d0c) x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

: 略

zabbixhv:~ #

とズラズラ帰ってくれば、Zabbix の snmp での状態監視はできるようです。帰ってこない場合は、コミュニティストリングが違うとか、snmp が disable になっているとか、snmp なんて機能ないよ、という SOHO 機器の場合に起こりえます。諦めましょう。


- デスクトップPCでも試せる Zabbix -

実際、この体験はデスクトップPCではなく、一般的なモバイルPCで行いました。特別なサーバーハードウェアを用意しなくても Zabbix の "体験"ができるのは貴重なことです。

この体験を通じて本格的なネットワークモニタリングツールの導入、運用、トレーニングができればと思います。


あわせて読みたい
まぁ、長期運用はやめた方がいいようですね。




[PR]
by islandcenter | 2016-03-23 08:33 | プライベートクラウド | Trackback | Comments(0)

Zabbix 3.0 のリリースと同時に Zabbix Appliance も公開されました。利用した「顛末記」です。

※ 追記 顛末記なので最新版 3.2 で試してみました。この記事よりマズマスなのでこちらをご参考ください。

Zabbix Download 3.0 LTS KVM, Parallels, QEMU, USB stick, VirtualBox, Xen (.raw) ダウンロードはこちら

Zabbix appliance

-なんで Ubuntu ????? -

今までの Zabbix Appliance は openSUSE で構成されていたため、ほとんどの作業をroot で入って yast コマンドで、メニュー形式から変更することができました。vi 使うのは php.ini のタイムゾーン書き換える程度だったんですけどね。なぜこんなに使いづらい Ubuntu にしたのか納得できない。何かというと "access denied" とか "command not found" となるンですね。

お、出たか sudo しろって事だな。という事で、システム設定のほとんどを yast メニューで出来た openSUSE 版ではなく、地獄の sudo と sudo vi との闘いが、zabbix 以前の問題としてアプライアンス導入へのハードルを上げてくれました。

まぁ好みと慣れの問題なんですけどね。

※つくづく申し上げますが、vi で設定を編集するときは綴りを間違えないでくださいね。SUSE の yast の様にパッケージのインストールから設定まで自動化されていません。ubuntu では全部手書きです。

zabbix 2.x での実際のアプライアンス版の導入はこちらをご参考下さい。

頼む、openSUSE 版の Appliance 出すか、SUSE 版の zabbixの rpm 作ってくれ。
openSUSE で 1 Click インストールできる様にしてくれ。
と言っても無料で使っているわけだから文句は言えませんね。
まぁ、openSUSE leap 42 は安定板じゃないからなぁ、13.1 あたりの安定板を使ってほしい。

- 環境 -

動作環境は SLES12 の XEN 環境から行いました。Zabbix Appliance 3.0 は KVM/XEN と同じイメージファイルです。SLES12 の環境では XEN/KVM 両方サポートしているので、どちらでも、実装そのものはあまり変わりないでしょう。おそらく RedHat 系の KVM のみの環境でも同じように実装できると思います。

まず解凍します。
sles12:/var/lib/xen/images/zabbix # tar xvzf zabbix_appliance_3.0.1_x86_64.raw.tar.gz
./
./zabbix_appliance_3.0.1.raw
sles12:/var/lib/xen/images/zabbix # ls -al
total 81061244
drwxr-xr-x 3 root root 4096 Feb 16 18:35 .
drwx------ 19 root root 4096 Mar 10 08:34 ..
-rw-r--r-- 1 root root 10485760000 Feb 16 18:56 zabbix_appliance_3.0.1.raw
-rwxr--r-- 1 root root 1370095336 Mar 10 12:03 zabbix_appliance_3.0.1_x86_64.raw.tar.gz
sles12:/var/lib/xen/images/zabbix #

そりゃ、openSUSE だと思っていましたよ。でもドキュメント読むと

"Ubuntu version 14.04.3"

って書いてあるわけですね。そりゃぁ手慣れた手順で、アプライアンス実装しても動く訳がない。

その罠に気が付いて virt-manager を起動して、SLES12 では、次の様なパラメータで仮想マシンを実装します。

a0056607_11165514.jpg
最近はハードウェアの性能が仮想化前提で設計されているため、あまり XEN/KVM の性能差や機能差がなくなってきました。起動して初めて「何じゃこれ」という事になったわけです。

- OS Type が Ubuntu なので full virtual(完全仮想化)です。
- メモリ、vcpu はデフォルトのまま
- 仮想ディスクに解凍したイメージ raw ファイルをセット
- VM 名を任意に zabbix3 などにセット

これで OK ボタンを押すと Zabbix アプライアンスが起動します。
a0056607_11174281.jpg
DHCP なので ifconfig で ip を確認してから Ubuntu に SSH 接続してみます(メンドクサイ)ちなみに ubuntu には root というユーザがいないため、デフォルトの "appliance"/zabbix で ssh 接続します。 -l なんてオプション初めて知った。
a0056607_11181045.jpg
- IP を固定する -

yast が使えないため、まず DHCP から ip を固定するため sudo vi と闘います。
/etc/network/interfaces /etc/resolv.conf を修正します。

appliance@zabbix:/etc/network$ cat interfaces <--- デフォルトの確認
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
appliance@zabbix:/etc/network$

# sudo vi /etc/network/interface <--- 編集、/etc/resolv.conf も編集

appliance@zabbix:/etc/network$ sudo vi interfaces
[sudo] password for appliance: 間違えちゃった....
Sorry, try again.
[sudo] password for appliance: <--- vi で編集します。

: 編集中(SUSE + yast じゃないので、綴りを間違えないように......)

appliance@zabbix:/etc/network$ cd ..
appliance@zabbix:/etc$ sudo vi resolv.conf
appliance@zabbix:/etc$ cat network/interfaces <--- 変更後の確認
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static <--- dhcp から static に、綴り間違えるなよ。

address 192.168.1.206 <--- 以下追加
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.2

<--- ここまで

resolv.conf も修正

appliance@zabbix:/etc$ cat resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.2
nameserver 192.168.1.3
search intra
appliance@zabbix:/etc$

appliance@zabbix:~$ sudo ifdown eth0 && ifup eth0 <-- auchi!! あちゃーsudo忘れた
appliance@zabbix:~$ sudo ifdown eth0 && sudo ifup eth0 <-- 正しくはこっち do not forget "sudo"
appliance@zabbix:~$ ということでコンソールから(from console)
appliance@zabbix:~$ sudo ifup eth0
appliance@zabbix:~$ ping www.yahoo.co.jp
PING www.g.yahoo.co.jp (182.22.72.251) 56(84) bytes of data.
64 bytes from 182.22.72.251: icmp_seq=1 ttl=51 time=182 ms
^C
--- www.g.yahoo.co.jp ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 182.758/193.811/204.865/11.062 ms (<---- it seems fine !)
appliance@zabbix:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:3e:5e:7a:61
inet addr:192.168.1.206 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::216:3eff:fe5e:7a61/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19487 errors:0 dropped:4 overruns:0 frame:0
TX packets:1337 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:903775 (903.7 KB) TX bytes:202727 (202.7 KB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1620 errors:0 dropped:0 overruns:0 frame:0
TX packets:1620 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:92110 (92.1 KB) TX bytes:92110 (92.1 KB)

appliance@zabbix:~$

どうやら、IP の固定と、dns の設定が出来たようです。SUSE なら yast で1分の作業ですが、ここまで3時間かかりました。やっぱり SUSE 利用者には ubuntu は手ごわい。

- NTP のインストール -

なんと ntp がないじゃないか、という事で NTP をインストール、JST 設定します。SUSE の yast ならインストールから設定まで 30 秒の作業ですが、ここでもまた30分間の死闘が始まります。

appliance@zabbix:/etc$ sudo apt-get install ntp

またパスワードだ

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libopts25
Suggested packages:
ntp-doc apparmor
The following NEW packages will be installed:
libopts25 ntp
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 474 kB of archives.
After this operation, 1,677 kB of additional disk space will be used.
Do you want to continue? [Y/n] y <---- yes する
Get:1 http://us.archive.ubuntu.com/ubuntu/ trusty/main libopts25 amd64 1:5.18-2ubuntu2 [55.3 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main ntp amd64 1:4.2.6.p5+dfsg-3ubuntu2.14.04.8 [419 kB]

: 略

Processing triggers for ureadahead (0.100.0-16) ...
appliance@zabbix:/etc$

ntp の設定をし直します。

appliance@zabbix:/etc$ sudo vi ntp.conf <--- vi で編集して
appliance@zabbix:/etc$
appliance@zabbix:/etc$ cat ntp.conf

: 略

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
#server 0.ubuntu.pool.ntp.org <---- Comment out
#server 1.ubuntu.pool.ntp.org <---- Comment out
#server 2.ubuntu.pool.ntp.org <---- Comment out
#server 3.ubuntu.pool.ntp.org <---- Comment out

# Use Ubuntu's ntp server as a fallback.
#server ntp.ubuntu.com <---- Comment out

server ntp1.intra <---- Add my NTP server(s)
server ntp2.intra <---- Add my NTP server(s)

: 略

appliance@zabbix:/etc$

-UTC から JST に(?)-

appliance@zabbix:/etc$ cat timezone
Etc/UTC <--- Default UTC
appliance@zabbix:/etc$ sudo vi timezone
appliance@zabbix:/etc$ cat timezone
#Etc/UTC
Asia/Tokyo <--- JST にしてみる。
appliance@zabbix:/etc$

リスタートしてみる
appliance@zabbix:/etc$ sudo /etc/init.d/ntp restart
* Stopping NTP server ntpd [ OK ]
* Starting NTP server ntpd [ OK ]
appliance@zabbix:/etc$

何じゃこれ?
appliance@zabbix:/etc$ date
Sun Mar 13 04:24:36 UTC 2016 <--- JST じゃないけど ....
appliance@zabbix:/etc$

なんか違う様です。SUSE の yast の様にタイムゾーンとNTPを一発で設定できないので、何か他のテキストを書き換えないといけない様ですね。

※補足 sudo dpkg-reconfigure --frontend noninteractive tzdata とやるようです。


- グラフが表示されない -

/etc/zabbix/web/zabbix.conf.php の末尾にゴミが入っている(なんとデフォルト)とグラフは表示されないようだ。

ちなみに

Database passwords are randomly generated during the installation process.
Root password is stored to /root/.my.cnf file, (嘘ですit is not required to input a password under the “root” account.

とあるように、実際には /etc/zabbix/web/zabbix.conf.php ファイルに PHP の root パスワードが隠されています。

appliance@zabbix:~/home/temp$ cat /etc/zabbix/web/zabbix.conf.php | grep PASSW
$DB['PASSWORD'] = 'vO1xUgwjzh';

※追記 /root/.my.conf はこれで確認できました。

appliance@zabbix:~$ sudo su
root@zabbix:/home/appliance# cd /root
root@zabbix:~# ls -al
total 28
drwx------ 3 root root 4096 Mar 14 03:21 .
drwxr-xr-x 22 root root 4096 Feb 28 20:07 ..
drwx------ 2 root root 4096 Feb 28 20:03 .aptitude
-rw------- 1 root root 46 Mar 14 03:21 .bash_history
-rw-r--r-- 1 root root 3106 Feb 20 2014 .bashrc
-rw-r--r-- 1 root root 31 Feb 28 20:01 .my.cnf
-rw-r--r-- 1 root root 140 Feb 20 2014 .profile
root@zabbix:~# cat .my.cnf
[client]
password="19qfvjQngR"
root@zabbix:~#

<--- 追記終わり

- 顛末 -

本当は、Zabbix2 のDBを移行したかったのですが、 MySQL のデータのエクスポートとインポートに失敗しました。失敗した事は隠しようがないので、dns の書き換えは諦めて、とりあえず 2.2 と 3.0 の平行運用して違いを楽しんでいます。ドキュメント通りに行かないのが怖いところです。データの移行はもう少し研究しないといけませんね。

中小規模の数十台の仮想化システムのデバイスであれば、 Zabbix アプライアンスはネットワーク管理に必要十分な「見える化効果」があり、実装も楽なのですが、Ubuntu では、とても客に「使ってくれ」とは口が裂けても言えません。という事で、私の顧客では無理しないで、当分は 2.2 環境でも問題なさそうです。

また、アプライアンス固有の問題なのかも知れませんが、ビール買いに行っている間に、データの取得ができなくなって、全く機能しなくなってしまいました。再起動してもだめ。

まだ不安定ですね。こういう状況があると、2.x 系と比べても、とても実用には堪えない。やっぱり次の安定板が欲しくなります。やはり「新しいからまともに動く」と言う事よりも「うまく使えているバージョンを徹底的に使い倒す」という姿勢が必要な様です。私の目的はイベントでのトリガーでもなく、アラートでもありません。一般的なトレンドが見えればいい。そういう単純な目標であれば、あえて Zabbix3 を選ぶ理由はありません。

確かに 2.x より 3.x の方がコスメティックな部分では「違い」があるのですが、せいぜいトラフィックをグラフ化する程度であれば、無理して 3.x を導入するつもりにはなれません。SUSE 版 Appliance が出ないのなら、せめて rpm 化するか、1 Click インストール用のパッケージか susestudio で仮想アプライアンスを作るしかないな、という無理な私の希望です。

Zabbix3 アプライアンスに関しては、随分否定的な評価となりました。







- Key Word-


Zabbix SUSE openSUSE Zabbix Appliance 3.0 XEN KVM 使えない。だめだこりゃ。SUSE 版出せ。

[PR]
by islandcenter | 2016-03-14 11:32 | プライベートクラウド | Trackback | Comments(0)

SLES12sp1 ベースの "SUSE Linux Enterprise Server for SAP Application" がリリースされました。

https://www.suse.com/ja-jp/company/press/2016/newest-suse-linux-enterprise-server-for-sap-applications-now-available.html

インストーラの改善や、フルロールバックなどの機能が追加されているようです。

islandcenter.jp
[PR]
by islandcenter | 2016-03-02 12:01 | SUSE | Trackback | Comments(0)