CactiでLVS(keepalived)のコネクション数をグラフ化する

こんにちは。渡辺です。

今回はLVS(keepalived)のコネクション数をCactiでグラフ化する方法を紹介します。

昨今のインフラはクラウドが多く、それに伴いクラウド事業者が機能として提供するロードバランサーを多く使う機会が増えてきていると感じます。

しかし、オンプレミスやクラウドでもちょっと込み入った状況の場合は自前でLVS構築という話もよく聞きます。

LVSは相当数のセッションをさばけるように感じていますが、やはりきちんと計測したいところです。

ちなみにSNMPがサポートされ始めたのは、バージョン1.2.5(2012-08-13 Release) のようです。

http://www.keepalived.org/changelog.html

check: SNMP support for IPVS stats. IPVS stats are exported with SNMP. A cache is used to avoid to query the kernel too much.

 keepalivedのインストール

snmp機能を有効にしてkeepalivedをビルドする必要があります。

数年前はyum install keepalivedで入れるとsnmpがenableでないものがインストールされましたが、
最近のEPEL版なら有効になっているかもしれません。

SNMPを有効にしてkeepalivedを起動する

/etc/sysconfig/keepalived を下記のように変更します。

-x を付けるとsnmpが有効になって起動します。

 AgentXを有効にしてsnmpdを起動する

/etc/snmp/snmpd.confに下記を追記します。

その他にコミュニティ名等の設定も必要ですが、ここでは省略します。

 SNMPでkeepalivedのどんな値が取れるのか?

KEEPALIVED-MIB

MIBツリー上は、.1.3.6.1.4.1(enterprises).9586(debian).100(project).5(keepalived) に位置しています。

KEEPALIVED-MIBは、こちらで確認できます。

テスト環境

今回は、下記のようにLVSのテスト設定をしているので、これに関する情報が取れればいいことになります。

  • virtualServer・・・1台
  • realServer・・・2台

 snmpwalkでデータ取得

snmpwalkで上記のデータを取得してみます。

トラフィックカウンター値

“.1″となっているのがvirtualServerのインデックス値であり、”.1.1″や”.1.2″はその配下にあるrealServerのことであることが想像できます。

この数字を使えば、virtualServerとrealServerの通信料(パケット数、バイト数)を取得できます。

コネクション数

virtualServer”.1″とrealServer”.1.1″と”.1.2″の現在のコネクション数が表示されます。

 Cactiテンプレート

上記のようなMIBを見ながら、テンプレート作成しました。

cacti_host_template_keepalived

導入手順

  1. 上記のzipファイルをダウンロードし、解凍
  2. CactiのWEB-UIでcacti_host_template_keepalived.xmlをimport
    • もし、「Cacti Error XML hash version does not exist」が出たら、XMLファイルを開いて、Cactiバージョンに合わせて修正してください。http://docs.cacti.net/howto:determine_cacti_template_version
  3. /var/www/cacti/resource/snmp_queries/ にkeepalived_real.xmlとkeepalived_virtual.xmlを設置

グラフサンプル

realServerのコネクション数です。keepalived_current

virtualServerのコネクション数です。

keepalived_statsconn

まとめ

実はこの記事の内容は、1年前に試したものです。

keepalivedもCactiも新しいトピックではないですが、まだまだ使っている方は多そうなのでまとめてみました。

コネクション数のテンプレートは作りましたが、トラフィックカウンター値の方は手を抜いてテンプレートを作っていないので、どなたかどうですか。

 

Share on LinkedIn
LINEで送る
Pocket

claraer

claraer