舊的rsyslog,對於Cisco ASR的支援很差,因此直接裝上新版。
過程有點麻煩,記錄備查。
先安裝libestr:
wget http://libestr.adiscon.com/files/download/libestr-0.1.9.tar.gz
tar xvzf libestr-0.1.9.tar.gz
cd libestr-0.1.9
./configure
make && make install
再安裝json:
wget https://github.com/json-c/json-c/archive/json-c-0.11-20130402.tar.gz --no-check-certificate
tar xvzf json-c-0.11-20130402
cd json-c-json-c-0.11-20130402
./configure
make && make install
接著安裝docutils:
wget https://pypi.python.org/packages/source/d/docutils/docutils-0.11.tar.gz --no-check-certificate
tar xvzf docutils-0.11.tar.gz
cd docutils-0.11
python setup.py install
ln -s /usr/bin/rst2man.py /usr/bin/rst2man
再來安裝liblogging,我們要的是裡面的libstdlog.h和libstdlog.so
wget http://ftp5.gwdg.de/pub/linux/archlinux/community/os/x86_64/liblogging-1.0.0pre-1-x86_64.pkg.tar.xz
tar xvf liblogging-1.0.0pre-1-x86_64.pkg.tar.xz
cd /usr/src/usr/lib/
mv * /usr/lib
cd ../include/
mv * /usr/include/
再安裝uuid相關套件
yum -y install uuid uuid-devel libuuid libuuid-devel
再補一下libgrcypt套件與發展程式:
yum -y install libgcrypt libgcrypt-devel
最後回到重頭戲:
wget http://www.rsyslog.com/files/download/rsyslog/rsyslog-7.4.9.tar.gz
tar xvzf rsyslog-7.4.9.tar.gz
cd rsyslog-7.4.9
./configure --prefix=/opt/rsyslog --enable-mysql PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ LIBLOGSTD_CFLAGS=/usr/local/include/liblogging LIBLOGSTD_LIBS=/usr/lib/libstdlog.so
make && make install
停掉原有的rsyslog,再執行新的就ok了。
理論上 LD_LIBRARY_PATH要把剛剛的libstdlog.so所在的目錄export出去,不然會找不到。
但這樣做的時候service rsyslog restart會找不到so檔。
因此最後的解法是:
cp /opt/rsyslog/lib/rsyslog/libstdlog.so* /lib64/
正規的解釋如下:
Libraries have been installed in:
/opt/rsyslog/lib/rsyslog
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
參考網頁:http://www.07net01.com/storage_networking/Rsyslog__loganalyzerrizhifuwuqidajian_586293_1379322838.html
2014年1月27日 星期一
2014年1月13日 星期一
rrdtool 出小圖時資料會變動?
有一個新案子。需求大概是這樣。
1、測試某幾個特殊網頁的access time和ping latency
2、測試ftp網站的上傳及下載速度
3、將之輸出為pdf檔。
所以我的作法是
1、用rrdtool來處理儲存及繪圖的部份
2、用fpdf來出pdf檔。將前述的圖及表包起來。
但作完後有一個問題。同一個時間區段的資料,用大圖和小圖竟然會有不同的輸出結果:
例如:
大圖727x233
可以看出,Maximum是115.64,
小圖267x121,Maximum竟然變成了89,
猜想是因為x軸沒有辦法畫到最右邊的關係。但...取值時是損讀取RRD檔,怎麼會和graph有關?
似乎沒有什麼好解法,使用--full-size-mode 可以暫時排除,並且只保留Y軸的大小。(圖變成了400x80)
但這樣圖會變的很醜...像這樣。我如果出這種圖應該會被打死吧。
所以不得不找其它解,其中一個解法就是先產出大圖,再用imagemagic來把它轉成小圖,但這樣會變的很小很糊...
語法如下: ( 727x205 to )
convert facebook-latency.png -resize 20% facebook-latency.png
或者圖型會變的很胖,即使把Y軸的說明文字拿掉也一樣難看。
嵌入PDF檔後,更是失敗。
試了一個小時,沒有什麼好辦法。只好從其它方面著手。
就是從pdf的產出程式來動手,最後在輸出image檔時,強制指定尺寸為95*40,順利結案。
看來fpdf縮圖的功力不錯。
$pdf->Image("$PATH/facebook-latency.png",10,110,95,40,'PNG');
最後貼一下出的pdf檔。其實因為+8的問題也弄了很久。
之後是直接說這個報表是昨天08:00 到今天08:00的就好。
否則如果真的圖檔也要從00:00到00:00,那我就必需直接讀rrd作運算,而不能使用rrdfetch的功能來直接讀檔了。
1、測試某幾個特殊網頁的access time和ping latency
2、測試ftp網站的上傳及下載速度
3、將之輸出為pdf檔。
所以我的作法是
1、用rrdtool來處理儲存及繪圖的部份
2、用fpdf來出pdf檔。將前述的圖及表包起來。
但作完後有一個問題。同一個時間區段的資料,用大圖和小圖竟然會有不同的輸出結果:
例如:
大圖727x233
可以看出,Maximum是115.64,
小圖267x121,Maximum竟然變成了89,
猜想是因為x軸沒有辦法畫到最右邊的關係。但...取值時是損讀取RRD檔,怎麼會和graph有關?
似乎沒有什麼好解法,使用--full-size-mode 可以暫時排除,並且只保留Y軸的大小。(圖變成了400x80)
但這樣圖會變的很醜...像這樣。我如果出這種圖應該會被打死吧。
所以不得不找其它解,其中一個解法就是先產出大圖,再用imagemagic來把它轉成小圖,但這樣會變的很小很糊...
語法如下: ( 727x205 to )
convert facebook-latency.png -resize 20% facebook-latency.png
或者圖型會變的很胖,即使把Y軸的說明文字拿掉也一樣難看。
嵌入PDF檔後,更是失敗。
試了一個小時,沒有什麼好辦法。只好從其它方面著手。
就是從pdf的產出程式來動手,最後在輸出image檔時,強制指定尺寸為95*40,順利結案。
看來fpdf縮圖的功力不錯。
$pdf->Image("$PATH/facebook-latency.png",10,110,95,40,'PNG');
最後貼一下出的pdf檔。其實因為+8的問題也弄了很久。
之後是直接說這個報表是昨天08:00 到今天08:00的就好。
否則如果真的圖檔也要從00:00到00:00,那我就必需直接讀rrd作運算,而不能使用rrdfetch的功能來直接讀檔了。
訂閱:
意見 (Atom)





