CentOSでLookingGlassをインストールとshowコマンドが出力できるように改造する

ネットワーク上にある各NW機器のステータスをチェックできるWebサーバーです。
pingやtracerouteなどの一般的なコマンドの出力結果をブラウザ上で確認ができ、BGPでのASパスやルートの確認としても使うことができます。

一般では、該当のWebサーバーから自分のパソコンまでのネットワークの状態を確認することで活用されます。

LookingGlassを改造してコマンドを増やす

そんなLookingGlassですが、今回はインストール後にちょいと改造して、インターフェースやCPUの確認もできるように設定します。
LookingGlass自体はインストールが終われば、すぐに使えます。

lg

LG looking glassをインストール実施

設定前にiptablesにて23,2601,2605,80のポートを開けておくようにしてください。(どっかのサイトで書いてあった。)

そいでもって、以下でyumインストールを実施します。

# yum install wget  perl-Net-Telnet perl-Net-Telnet-Cisco perl-XML-Parser httpd

Installed:
  perl-Net-Telnet.noarch 0:3.03-11.el6

Updated:
  wget.x86_64 0:1.12-1.11.el6_5

Complete!
#

lgをインストール後、該当ファイルを”/var/www/html/lg”配下へコピーします。

# cd /var/www/html/lg
# cp /root/lg-1.9/lg.cgi .
# cp /root/lg-1.9/favicon.ico .
# cp /root/lg-1.9/lg.conf .


[root@t-bobo011 lg]# ll
-rw-r--r-- 1 root root  1406  2月 26 19:47 2014 favicon.ico
-rw-r--r-- 1 root root   380  1月  9 18:38 2014 index.html
-rwxr-xr-x 1 root root 37221  2月 28 18:42 2014 lg.cgi
-rw-r--r-- 1 root root 15181  3月  3 11:59 2014 lg.conf
-rw-r--r-- 1 root root  1063  1月  9 18:56 2014 menu.html
-rw-r--r-- 1 root root   447  1月  9 18:39 2014 subtop.html
-rw-r--r-- 1 root root   379  1月  9 18:38 2014 top.html

後は、以下のURLへアクセスすればLookingGlassの画面が表示されます。

https://該当のIPアドレス/lg/index.html

lg.confファイルの設定

それでは、LookingGlassでPingやtraceroute以外のshowコマンドで出力するようにファイルを改造していきます。

今回は、”show interface”と”show process cpu”を出力できるように改造します。

まずは、”lg.conf”ファイルで対象の機器のホスト名および、ログインとパスワードを設定します。

# vi lg.conf
<!-- Test CISCO Router Section  -->

                <Separator>Sample Routers </Separator>

                <Router Name="test011">
                        <Title>test011</Title>
                        <URL>telnet://login:12345@10.1.10.123</URL>  #telnetログインとパスワードを記入
                <!--EXAMPLE   <URL>telnet://login:123456@192.168.1.1</URL> -->
                        </Router>

                <Router Name="Router-2">
                        <Title>Router-2</Title>
                        <URL>telnet://login:password@routerIP</URL>
                        </Router>

                <Router Name="Router-3">
                        <Title>Router-3</Title>
                        <URL>telnet://login:password@routerIP</URL>
                        </Router>

lg.cgiファイルの設定

lg.cgiファイルで、20-21行目、37-38行目を追記します。

# vi lg.cgi

sub print_form {
        print <<EOT;
<FORM METHOD="$httpmethod" ACTION="$lgurl">
<CENTER>
<TABLE BORDER=0 BGCOLOR="#EFEFEF"><TR><TD>
<TABLE BORDER=0 CELLPADDING=2 CELLSPACING=2>
<TR>
<TH BGCOLOR="#000000" NOWRAP><FONT COLOR="#FFFFFF">Type of Query</FONT></TH>
<TH BGCOLOR="#000000" NOWRAP><FONT COLOR="#FFFFFF">Additional parameters</FONT></th>
<TH BGCOLOR="#000000" NOWRAP><FONT COLOR="#FFFFFF">Node</FONT></TH></TR>
<TR><TD>
<TABLE BORDER=0 CELLPADDING=2 CELLSPACING=2>
<TR><TD><INPUT ENGINE="radio" NAME="query" VALUE="bgp"></TD><TD>&nbsp;bgp</TD></TR>
<TR><TD><INPUT ENGINE="radio" NAME="query" VALUE="advertised-routes"></TD><TD>&nbsp;bgp&nbsp;advertised-routes</TD></TR>
<TR><TD><INPUT ENGINE="radio" NAME="query" VALUE="summary"></TD><TD>&nbsp;bgp&nbsp;summary</TD></TR>
<TR><TD><INPUT ENGINE="radio" NAME="query" VALUE="ping"></TD><TD>&nbsp;ping</TD></TR>
<TR><TD><INPUT ENGINE="radio" NAME="query" VALUE="trace" CHECKED></TD><TD>&nbsp;trace</TD></TR>
<TR><TD><INPUT ENGINE="radio" NAME="query" VALUE="interface"></TD><TD>&nbsp;interface</TD></TR>		#インターフェース追加
<TR><TD><INPUT ENGINE="radio" NAME="query" VALUE="cpu"></TD><TD>&nbsp;cpu</TD></TR>			#CPU追加
EOT



---------------------


my %valid_query = (
        "ios"           =>      {
                "ipv4"                  =>      {
                        "bgp"                   =>      "show ip bgp %s",
                        "advertised-routes"     =>      "show ip bgp neighbors %s advertised-routes",
                        "summary"               =>      "show ip bgp summary",
                        "ping"                  =>      "ping %s",
                        "trace"                 =>      "traceroute %s",
                        "interface"             =>      "show ip interface brief",		#インターフェースコマンド
                        "cpu"                   =>      "show proc cpu"				#CPU確認コマンド
                        },
                "ipv6"          =>      {
                        "bgp"                   =>      "show bgp ipv6 %s",
                        "advertised-routes"     =>      "show bgp ipv6 neighbors %s advertised-routes",
                        "summary"               =>      "show bgp ipv6 summary",
                        "ping"                  =>      "ping ipv6 %s",
                        "trace"                 =>      "traceroute ipv6 %s"
                        }
                },

設定が完了すれば、ブラウザを更新すると、新しく”interface”と”cpu”の項目が追加されます。
後は、どの機器で、interfaceやcpuの情報が見たいかをチェックして”Submit”をクリックするだけでブラウザに出力結果が表示されます。

lg1-1

※ブラウザで”show process cpu”を出力した例
lg2

ちなみに”show running-config”ですが、enableモードでないとコマンドは反映されないので、LookingGlassで出力はできません。
もっと詳細な情報をブラウザで管理されたい方は”rancid”をお勧めします。

以上です。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!