前幾天我寫了一篇文章,是關於memcached監控的幾種方法,這幾天開發的同事但願我能把memcached的天天的負載狀況作成圖表發給他們用來作往後的分析。知道了需求那就開始動手吧!
開
始我嘗試用
Nagios+pnp+rrdtool
來生成memcached流量圖表,可是過程當中出現不少問題,最終結果也不太滿意。因此仍是決定改用Cacti來作了。
首先Cacti須要一個memcached的模板,咱們能夠從這裏下載
http://dealnews.com/developers/cacti/memcached.html
不過他須要Python運行環境,讓咱們看一下
rpm -qa |grep python
python-2.4.3-24.el5
python-devel-2.4.3-24.el5
...
python-iniparse-0.2.3-4.el5
gnome-python2-gnomeprint-2.16.0-2.el5
還真裝了很多,不過上面的網頁上說須要一個 Python memcached
Client API
讓咱們把他下載下來裝上他。
wget ftp://ftp.tummy.com/pub/python-memcached/python-memcached-1.45.tar.gz
tar xzvf python-memcached-1.45.tar.gz
cd python-memcached-1.45
python setup.py install
Traceback (most recent call last):
File "setup.py", line 3, in ?
from setuptools import setup
ImportError: No module named setuptools
出錯了...原來我以前沒有裝setuptools模塊。不過不要緊,裝他很快
yum install python-setuptools
安裝成功後再次
python setup.py install 安裝就能夠成功了。
接下來咱們下載 cacti_memcached
wget http://content.dealnews.com/dealnews/developers/cacti-memcached-1.0.tar.gz
tar zxvf cacti-memcached-1.0.tar.gz
cd cacti-memcached
能夠看到下面幾個文件
cacti_memcached_host_template.xml INSTALL memcached.py README
把memcached.py 拷貝到Cacti 的scripts目錄下,而後進入Cacti控制界面點擊
Import Templates
-->
Import Template from Local File
在瀏覽裏面選擇
cacti_memcached_host_template.xml 這個文件,而後點擊save 後能夠看到下圖內容。以後的操做我就不用說了吧。就是增長設備什麼的。
添加好之後不久,圖片就出來了,下圖是運行12小時候的流量圖
不過問題又來了,這個模板默認只能監聽一個端口的流量,雖然能夠經過在模版中用
-p port 來指定端口號監聽,可是像咱們的服務器那樣 一個服務器上面memcached好幾個端口的狀況他就無能爲力了,網上有個朋友修改了一下memcached.py 使用host 後面加 「-」來指定端口號,我試了下好像不行,一加上 「-」就報 snmp error。看來這個方法行不通,後來羣裏有個叫寒號鳥的朋友給了我個地址
http://tag1consulting.com/blog/cacti-memcache-multi-port-templates
讓我用上面的模板試試看,我一看說明 這正是我想要的...
下載到機器上解壓縮看了下,做者修改了原來的模板和memcached.py,版本變成了1.0.2 。導入方法和1.0 同樣,只不過
Host Template變成了 「
Memcached Server - Multiport」並且在添加設備的時候多了一步指定端口 以下圖:
在裏面輸入memcached服務的端口就能夠了。你能夠把這幾個端口加到
Graph Trees 裏面便於查看。
幾分鐘後就能夠看到圖表裏的數據了,不過我遇到個很奇怪的問題。
在其餘模板裏的數據都正常的狀況下,
Memcached Bytes Used 這個模板裏卻只有memcached的上限值,而沒有已用值,觀察了一段時間仍是沒有,用debug模式查看發現 確實接收不到 已用值 已用值都是non。把
Memcached Bytes Used
模板刪掉後從新建了一遍,仍是如此。我仔細觀察了一下 發如今 Graph Templates 的
Memcached Bytes Used
模板裏面 Use Per-Graph Value (Ignore this Value) 這個選項是被勾選的,你們仔細看看上面的圖,在添加Bytes Used 的端口時這兩個彷佛是在一塊兒的,我估計是被他給忽略了。不過不要緊,咱們能夠把他找回來,在 控制界面裏找到
Data Templates 在裏面找到
Custom Data
[data input: Memcached - Statistics - Multiport]
這個選項,並在
Port to query for memcached statistics. 的輸入框裏面 輸入 11213也就是你自定義的端口後點擊 SAVE ,再觀察一段時間,就會發現能收到memcached已用內存的數據了 。
Cacti 的功能很強大,我只用到了其中最簡單的部分,目前還不能本身製做模板,還有不少要學。但願我這篇文章能給剛剛學習Cacti的朋友們提供一些幫助 O(∩_∩)O~