運維監(jiān)控/Zabbix/Ansible自動化運維/云撥測
netflow和sflow可以幫助我們分析網(wǎng)絡(luò)中的流量構(gòu)成葫笼,抓取實施帶寬使用情況祝闻,幫我們找出"hog"。作為collector的軟件一般都是收費的草添,例如solarwinds NTA酪劫,sflowTrend-Pro,ntopng商業(yè)版等珊蟀。不過也有開源的解決方案菊值,例如ntopng社區(qū)版和nfsen。
以下是基于cenos7.5部署nfsen的過程:
一、安裝nfsen 需要以下依賴:
rrdtool和perl模塊及所需組件
使用以下yum命令安裝:
yum -y install httpd php perl-rrdtool rrdtool rrdtool-devel rrdutils flex byacc perl-Socket6 perl-MailTools perl-Mail-Sender perl-Sys-Syslog perl-Module-Install.noarch
perl-Mail-Sender-0.8.23-1.el7.noarch.rpm和rrdutils-5.2.1-1.el6.rf.noarch.rpm 這兩個文件為rrdutils和perl-Mail-Sender腻窒,yum源無法安裝這兩個的時候使用昵宇,rpm -ivh 安裝即可。
二儿子、Web環(huán)境的部署:
vi /etc/httpd/conf/httpd.conf #修改apache配置文件
添加以下語句:
AddType application/x-tar .tgz #查找AddType
AddType application/x-httpd-php .php
index.php nfsen.php #查找index.html將index.php和nfsen.php加至句末
編寫測試頁面:
vi /var/www/html/index.php
內(nèi)容如下:
<?php
phpinfo();
?>
關(guān)閉防火墻或放通80端口瓦哎,關(guān)閉selinux
systemctl stop firewalld
setenforce 0
重新啟動httpd使配置生效
systemctl restart httpd
打開瀏覽器輸入該服務(wù)器的IP地址,可查看到界面為php測試界面即apache+php環(huán)境配置完畢典徊。
三杭煎、安裝Nfdump工具----用于抓包主要軟件
wget?http://downloads.sourceforge.net/project/nfdump/stable/nfdump-1.6.11/nfdump-1.6.11.tar.gz?下載
或使用附件:nfdump-1.6.11.tar.gz
使用以下命令安裝:
tar -zxf nfdump-1.6.11.tar.gz
cd nfdump-1.6.11
./configure --enable-nfprofile --enable-nftrack --with-rrdpath=/usr/local/rrdtool
make
make install
cp bin/nftrack /usr/local/bin/ #后面配置Portracker插件的時候需用到
使用nfdump -V命令能看到版本信息,表示安裝完成:
四卒落、安裝并配置Nfsen
wget?http://iweb.dl.sourceforge.net/project/nfsen/stable/nfsen-1.3.6p1/nfsen-1.3.6p1.tar.gz
下載
或使用附件:nfsen-1.3.6p1.tar.gz
mkdir -p /usr/local/nfsen
tar zxvf nfsen-1.3.6p1.tar.gz
cd nfsen-1.3.6p1/
cp etc/nfsen-dist.conf etc/nfsen.conf
修改Nfsen配置文件:
vi etc/nfsen.conf
內(nèi)容如下:
$BASEDIR = "/usr/local/nfsen";
$HTMLDIR = "/var/www/html/nfsen/";
$USER = "apache";
$WWWUSER = "apache";
$WWWGROUP = "apache";
%sources = (
'upstream1' => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
'peer1' => { 'port' => '9996', 'IP' => '172.16.17.18' },
'peer2' => { 'port' => '9996', 'IP' => '172.16.17.19' },
); #9995為接收網(wǎng)絡(luò)設(shè)備netflow的端口
修改完成后羡铲,保存并退出。
安裝Nfsen:
./install.pl etc/nfsen.conf
執(zhí)行安裝命令后儡毕,回車使用默認配置安裝即可也切。
安裝時若報一個204行限制訪問的錯誤,需要修改install.pl腰湾,注釋掉203-205這三行:
vi install.pl
if ( scalar @out != 2 ) {
die "Error getting nfdump version";
}
然后重新執(zhí)行安裝即可雷恃。
五、Nfsen插件PortTracker配置
新建PortTracker數(shù)據(jù)存放目錄:
mkdir /usr/local/nfsen/ports-db
chown -R apache:apache /usr/local/nfsen/ports-db/
編輯PortTracker.pm修改$PORTSDBDIR目錄:
注意:該目錄為解壓nfsen-1.3.6p1.tar.gz后cd nfsen-1.3.6p1的目錄费坊。
vi contrib/PortTracker/PortTracker.pm
修改的內(nèi)容如下:
my $PORTSDBDIR = "/usr/local/nfsen/ports-db";
復(fù)制PortTracker插件至相應(yīng)目錄:
cp contrib/PortTracker/PortTracker.pm /usr/local/nfsen/plugins/
cp contrib/PortTracker/PortTracker.php /var/www/html/nfsen/plugins/
修改Nfsen配置文件添加插件信息:
vi /usr/local/nfsen/etc/nfsen.conf
內(nèi)容如下:
@plugins = (
[ 'live', 'PortTracker' ],
);
生成PortTracker測試數(shù)據(jù):
(執(zhí)行完此命令后倒槐,需要等待一段時間)
sudo -u apache /usr/local/bin/nftrack -I -d /usr/local/nfsen/ports-db/
執(zhí)行完成后如下圖所示:
啟動Nfsen:
/usr/local/nfsen/bin/nfsen start
ps -ef | grep nfsen 可以看到nfsen的進程
讓apache加載nfsen:
vi /etc/httpd/conf/httpd.conf #修改apache配置文件
修改后的內(nèi)容如下:
DocumentRoot "/var/www/html/nfsen"
修改完成后,保存并退出附井。
重新啟動httpd使配置生效
systemctl restart httpd
打開瀏覽器輸入該服務(wù)器的IP地址讨越,可查看到界面為nfsen的界面。
部署nfsen完成永毅。
六把跨、附加:使用flowexport把cenos網(wǎng)卡的流量發(fā)到9995端口就行監(jiān)控
https://www.flowtraq.com/?flowtra官網(wǎng),可下載flowexport
附件:flowexport_linux_x86_64.bin
上傳flowexport_linux_x86_64.bin 到任意目錄下
chmod +x flowexport_linux_x86_64.bin 授權(quán)
執(zhí)行以下命令:把網(wǎng)卡ens160的流量發(fā)到127.0.0.1的9995端口沼死,發(fā)送間隔最小30秒最大60秒:
./flowexport_linux_x86_64.bin -i ens160 -nf5 127.0.0.1 9995 -a 30 -e 60
ping ens160網(wǎng)卡的IP着逐,即可產(chǎn)生一些icmp的流量,大概1分鐘后意蛀,可在nfsen界面上看到流量圖有流量了耸别。
七、附加:安裝HostStats插件
用hoststats,可以根據(jù)時間來顯示流量狀況.
安裝編譯需要的環(huán)境
yum -y install gcc gcc-c++ gcc-g77
附件:libnfdump.tar.gz 和hoststats-1.1.5.tar.gz
tar zxvf hoststats-1.1.5.tar.gz
cd hoststats-1.1.5
上傳libnfdump.tar.gz到該目錄下
./install-libnfdump.sh
mkdir /var/www/html/hoststats/
./configure
make
make install
這個時候會提示要確認安裝路徑,輸入/var/www/html/hoststats/
chown apache:apache -R /var/www/html/hoststats
啟動
/var/www/html/hoststats/hoststats start
重新啟動Nfsen:
/usr/local/nfsen/bin/nfsen stop
/usr/local/nfsen/bin/nfsen start
如要添加到/etc/rc.local,開機啟動:
echo ‘/var/www/hoststats/hoststats start‘ >> /etc/rc.local
以上步驟完成后,稍等幾分鐘,即可在plugins菜單上看到界面.
如出現(xiàn)提示錯誤:Fatal error: Call to undefined function mb_convert_encoding() in /var/www/html/nfsen/plugins/HostStats/libs/Nette/Utils/Strings.php on line 61
解決方法:
1.首先安裝 php-mbstring庫文件:
yum install php-mbstring
2.之后县钥,修改/etc/php.ini文件太雨,在里面加一句
extension=mbstring.so
3.保存后重啟httpd服務(wù)。
service httpd restart
關(guān)于界面操作教程魁蒜,以下網(wǎng)址參考:
http://blog.sina.com.cn/s/blog_704836f40102w9xa.html
//////////////////////////////////////////////////////////////////////////////////////////////
11囊扳、若需修改時間顯示粒度及設(shè)置filter輸入框字符限制(默認50字符)可修改如下:
vim /var/www/html/nfsen/details.php
1277行 <textarea name="filter" id="filter" multiline="true" wrap="phisical" rows="6" cols="50" maxlength="100"><?php
vim /var/www/html/nfsen/nfsenutil.php
430行 ( time() - $_SESSION['PluginListUpdate'] < 600 ) ) {
456行 ( time() - $_SESSION['ProfileListUpdate'] < 600 ) ) {
633行 ( time() - $_SESSION['DefaultFiltersUpdate'] < 600 ) ) {
12吩翻、web頁面如需設(shè)置用戶名密碼登陸可按如下配置:
vim /etc/httpd/conf/httpd.conf
在最后添加如下(開啟http的訪問驗證功能):
<Directory /var/www/html/nfsen>
Options Indexes FollowSymLinks
allowoverride authconfig
order allow,deny
allow from all
</Directory>
然后設(shè)置訪問限制配置文件:
vim /var/www/html/nfsen/.htacces
編寫如下內(nèi)容:
Authname "Authorized users only. All activity may be monitored and reported!"
Authtype basic
Authuserfile /etc/httpd/conf/.htpasswd
require valid-user
配置訪問用戶名及密碼:
htpasswd -bc /etc/httpd/conf/.htpasswd 用戶名 密碼
其他插件安裝參考:
http://www.mamicode.com/info-detail-1331877.html
附件: