天天看点

整理系列-20161117-nfdump-nfsen_cacti_nagios(我只是大自然的搬运工)

nfdump-nfsen

参考:

  • Centos5/Linux安装Nfdump和Nfsen图形界面分析netflow数据

centos_6.5上实现安装

# 安装 rrdtool 及所需组件:
yum install -y perl-rrdtool rrdtool rrdtool-devel rrdutils flex byacc
# 安装 rrdtool 及所需组件:
yum install -y perl-Socket6 perl-MailTools perl-Mail-Sender
# 安装 GCC :
yum install -y gcc

# 安装 Nfdump 工具:
cd /usr/local/src/
wget http://downloads.sourceforge.net/project/nfdump/stable/nfdump-1.6.6/nfdump-..tar.gz
tar zxvf nfdump-..tar.gz 
cd nfdump-./
./configure --enable-nfprofile --with-rrdpath=/usr/bin # --enable-nfprofile 为重新生成,--with-rrdpath= 为启用rddtool支持
make
make install
cd ../

# 下载配置 Nfsen :
mkdir -p /usr/local/nfsen
wget http://downloads.sourceforge.net/project/nfsen/stable/nfsen-1.3.6p1/nfsen-.p1.tar.gz
tar zxvf nfsen-.p1.tar.gz 
cd nfsen-.p1/
cp etc/nfsen-dist.conf etc/nfsen.conf

# 修改Nfsen配置文件:
cat etc/nfsen.conf
#http://www.haiyun.me
$BASEDIR = "/usr/local/nfsen";
$HTMLDIR    = "/var/www/html/nfsen/";
$USER    = "apache";
$WWWUSER  = "apache";
$WWWGROUP = "apache";
%sources = (
    'upstream1'    => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
);
           

以上部分参考:

  • Linux下is not in the sudoers file解决方法
  • 在CentOS上搭建PHP服务器环境
# 安装apache:
yum install httpd httpd-devel 
# 启动apache:
/etc/init.d/httpd start

# 安装mysql:
yum install mysql mysql-server
# 启动mysql:
/etc/init.d/mysqld start

# 安装php
yum install php php-devel
# 重启apache使php生效
/etc/init.d/httpd restart

# 安装php的扩展
yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
# 安装完扩展之后需要再次重启apache
/etc/init.d/httpd restart
           
# 安装Nfsen:
./install.pl etc/nfsen.conf 
# 启动Nfsen:
/usr/local/nfsen/bin/nfsen start
           
  • 开启后可以通过 http://serverip/nfsen/nfsen.php WEB页面访问,不过访问会报错:
    • ERROR: nfsend connect() error: Permission denied!
    • ERROR: nfsend - connection failed!!
    • ERROR: Can not initialize globals!
# 这是因为权限不足,需要给 /data/nfsen/var/run/nfsen.comm 增加 rw 的权限:
chmod a+rw /usr/local/nfsen/var/run/nfsen.comm # Remark:每次NFSEN服务重启都需要重新加权限!

# 关闭防火墙
setenforce 
           
  • frontend and backend mismatched.

    修改 /var/www/html/nfsen/nfsen.php

交换机配置

需要在支持NETFOLW功能的交换机上进行相关配置

ip flow ingress infer-fields
ip flow ingress layer2-switched
ip flow-export version 
ip flow-export destination X.X.X.X.     (要和NFSEN.CONF里面的埠号一致)
ip route-cache flow infer-fields
           

以上部分参考:

  • NFSEN NetFlow工具安裝與使用

Cacti

参考:

  • 中文版:Centos/Linux下安装配置Cacti中文版 「 镜像 Lost ,改用下面的方案 2 」
  • spine版:Cacti使用安装详解
# 建立cacti用户
useradd -m cacti
passwd cacti

# 安装相关软件:
yum  -y install net-snmp net-snmp-libs net-snmp-utils net-snmp-devel

# 安装gcc和libtool
yum install libtool -y

# 下载cacti-spine
wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8b.tar.gz

# configure: error: Cannot find MySQL header files
yum install mysql-devel

# 解压:
tar -xf cacti-spine-..8b.tar.gz

# 编译安装:
cd cacti-spine-..8b
aclocal
libtoolize --force
autoheader
autoconf
automake
./configure
make
make install

# 配置
cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
chown cacti.cacti /etc/spine.conf
vim /etc/spine.conf

    DB_Host localhost
    DB_Database cacti
    DB_User cactiuser
    DB_Pass cactiuser
    DB_Port 

mysql -uroot -p

    CREATE USER 'cactiuser'@'localhost' IDENTIFIED BY 'cactiuser';

    create database cacti;
    grant all on cacti.* to cactiuser@localhost

tar -xvf cacti-..8b.tar.gz
cd cacti-..8b
mysql -u cactiuser -pcactiuser cacti < cacti.sql

mv cacti-..8b /var/www/html/cacti

vim /var/www/html/cacti/include/config.php

    $database_type = \"mysql\";
    $database_default = \"cacti\";
    $database_hostname = \"localhost\";
    $database_username = \"cactiuser\";
    $database_password = \"cactiuser\";
    $database_port = \"3306\";
    $database_ssl = false;

# 添加计划任务(使cacti每5分钟获得一次数据)
crontab -e 
    */1 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1 # 让系统每1分钟收集

           
  • 默认登录用户名密码是admin
  • 最后,等cacti安装完之后在cacti的web配置界面选择setting
    • settings->paths->Spine Poller File Path [/usr/local/spine/bin/spine]
    • settings->poller->Poller Type [spine]
    • console->settings->poller->Maximum Threads per Process [5]
    • save完成

以上部分参考:

  • configure: error: Cannot find MySQL header files:cacti 安装配置方法 总结(1)
  • MySQL创建用户与授权方法

未做:(其他)

# Cacti监控mysql报表流量图:

wget https://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz

tar –xvf better-cacti-templates-.tar.gz

cd better-cacti-templates-
# 将better-cacti-templates-1.1.8\scripts下的 ss_get_mysql_stats.php 这个脚本 这个脚本需要放在cacti的服务端。

# 比如cacti部署在/var/www/html目录下,那么就cp到/var/www/html/cacti/scripts/下
cp /root/better-cacti-templates-/scripts/ss_get_mysql_stats.php /var/www/html/cacti/scripts/

# 修改ss_get_mysql_stats.php 文件 第30行
    $mysql_user = 'cacti_user'; 
    $mysql_pass = 'cacti_user05161610'; 
    $cache_dir = "/xok.la/cacti/cache/"; 

chown -R apache.apache /var/www/html/cacti/scripts
chmod -R  /var/www/html/cacti/scripts
# 使用 http 访问 cacti主机 导入
/opt/mysql-cacti-templates-/cacti_host_template_x_db_server_ht_0i.xml 

# 然后创建mysql用户:
grant process,super on *.* to 'cacti_user'@'%' identified by 'cacti_user05161610';
           

Nagios

参考:

  • Linux/Centos安装nagios监控服务器
useradd nagios
groupadd nagcmd
usermod -G nagcmd nagios
usermod -G nagcmd apache
cd /usr/local/src/

# 安装主程序
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-.tar.gz
tar zxvf nagios-.tar.gz 
cd nagios
./configure --with-command-group=nagcmd --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios 
make all
make install

# 安装主程序
make install-init               # 安装init管理脚本
make install-config             # 安装示例配置文件
make install-commandmode        # 配置目录权限
make install-webconf            # 安装Apache配置文件
make install-classicui          # 安装经典黑色主题
cd ../

# 安装插件
wget https://nagios-plugins.org/download/nagios-plugins-.tar.gz
tar zxvf nagios-plugins-.tar.gz
cd nagios-plugins
./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios
make
make install
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

# 生成nagiosadmin验证密码,用于web界面验证
/etc/init.d/httpd restart
/etc/init.d/nagios start
chkconfig nagios on
setsebool -P httpd_disable_trans  # 关闭selinux对httpd的防护,不然会出现权限问题 「这句我失败了==」
           

继续阅读