歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> nginx上搭建cacti

nginx上搭建cacti

日期:2017/3/1 17:14:12   编辑:關於Linux
nginx上搭建cacti Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具 www.2cto.com Cacti和Nagios是現在使用比較多的網絡監控軟件了,對於這兩款監控軟件的區別,應該說是側重點的不同。 Cacti比較著重於直觀數據的監控,易於生成圖形,用來監控網絡流量、cpu使用率、硬盤使用率等可以說很在合適不過。 而Nagios則比較注重於主機和服務的監控,並且有很強大的發送報警信息的功能。 把兩者結合起來,既可以使報警機制高效及時,又可以很容易的查看各項數據的情況。 一、在LNMP(linux+nginx+mysql+php)上搭建cacti 1.修改selinux vim /etc/selinux/config 修改為 selinux=disabled 關閉防火牆 service iptables stop chkconfig iptables off 重啟將selinux生效reboot 安裝編譯工具及庫文件 www.2cto.com for i in ` rpm -q make apr* autoconf automake curl-devel gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* php-common php-gd ncurses* libtool* libxml2 libxml2-devel patch |grep 'not installed' | awk '{print $2}' `; do yum -y install $i; done 安裝libmcrypt cd /usr/local/src tar zxvf libmcrypt-2.5.7.tar.gz cd libmcrypt-2.5.7 ./configure make && make install 安裝cmake cd /usr/local/src tar zxvf cmake-2.8.7.tar.gz cd cmake-2.8.7 ./configure make && make install 安裝pcre cd /usr/local/src mkdir /usr/local/pcre #創建安裝目錄 tar zxvf pcre-8.30.tar.gz cd pcre-8.30 ./configure --prefix=/usr/local/pcre make && make install 安裝mysql groupadd mysql #添加mysql組 useradd -g mysql mysql -s /bin/false #創建mysql加入到mysql組,不允許mysql登錄 mkdir -p /data/mysql #創建MySQL數據庫存放目錄 chown -R mysql:mysql /data/mysql #設置MySQL數據庫目錄權限 mkdir -p /usr/local/mysql #創建MySQL安裝目錄 cd /usr/local/src tar zxvf mysql-5.5.21.tar.gz cd mysql-5.5.21 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql-DSYSCONFDIR=/etc #配置 make make install cd /usr/local/mysql cp ./support-files/my-huge.cnf /etc/my.cnf #拷貝配置文件 vim /etc/my.cnf #在 [mysqld] 部分增加datadir = /data/mysql #添加MySQL數據庫路徑 ./scripts/mysql_install_db --user=mysql #生成mysql系統數據庫 cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系統啟動 chmod 755 /etc/init.d/mysqld #增加執行權限 chkconfig mysqld on #加入開機啟動 vim /etc/rc.d/init.d/mysqld #編輯 basedir = /usr/local/mysql #MySQL程序安裝路徑 datadir = /data/mysql #MySQl數據庫存放目錄 service mysqld start #啟動 vim /etc/profile #把mysql服務加入系統環境變量:在最後添加下面這一行 export PATH=$PATH:/usr/local/mysql/bin 使環境變量立即生效 source /etc/profile 下面兩行把myslq的庫文件鏈接到系統默認位置,編譯類似PHP等軟件可不指定mysql的庫文件地址。 ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql ln -s /usr/local/mysql/include/mysql /usr/include/mysql reboot #重啟 mysql_secure_installation #設置Mysql密碼 或者直接修改密碼/usr/local/mysql/bin/mysqladmin -u root -p password "123456" #修改密碼 service mysqld restart #重啟 (6)、安裝 nginx groupadd www #添加組 useradd -g www www -s /bin/false #創建賬戶www並加入到組,不允許www直接登錄 cd /usr/local/src tar zxvf nginx-1.0.14.tar.gz cd nginx-1.0.14 ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/local/src/pcre-8.30 #--with-pcre=/usr/local/src/pcre-8.30指源碼包解壓的路徑,不是安裝的路徑,否則會報錯 make && make install /usr/local/nginx/sbin/nginx #啟動nginx 設置nginx開啟啟動 vim /etc/rc.d/init.d/nginx #編輯啟動文件添加下面內容 #!/bin/bash # nginx Startup script for the Nginx HTTP Server # it is v.0.0.2 version. # chkconfig: - 85 15 # description: Nginx is a high-performance web and proxy server. # It has a lot of features, but it's not for everyone. # processname: nginx # pidfile: /var/run/nginx.pid # config: /usr/local/nginx/conf/nginx.conf nginxd=/usr/local/nginx/sbin/nginx nginx_config=/usr/local/nginx/conf/nginx.conf nginx_pid=/usr/local/nginx/logs/nginx.pid RETVAL=0 prog="nginx" # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -x $nginxd ] || exit 0 # Start nginx daemons functions. start() { if [ -e $nginx_pid ];then echo "nginx already running...." exit 1 fi echo -n $"Starting $prog: " daemon $nginxd -c ${nginx_config} RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx return $RETVAL } # Stop nginx daemons functions. stop() { echo -n $"Stopping $prog: " killproc $nginxd RETVAL=$? echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid } reload() { echo -n $"Reloading $prog: " #kill -HUP `cat ${nginx_pid}` killproc $nginxd -HUP RETVAL=$? echo } # See how we were called. case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) stop start ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $prog {start|stop|restart|reload|status|help}" exit 1 esac exit $RETVAL chmod 775 /etc/rc.d/init.d/nginx #賦予執行權限 chkconfig nginx on #設置開機啟動 /etc/rc.d/init.d/nginx restart service nginx restart 安裝php cd /usr/local/src tar -zvxf php-5.3.10.tar.gz cd php-5.3.10 mkdir -p /usr/local/php5 #建立php安裝目錄 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-gd --with-iconv --with-freetype --with-jpeg --with-png --with-zlib --with-libxml --enable-xml --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-mime-magic --enable-suhosin --enable-session --with-mcrypt --with-curl make && make install cp php.ini-production /usr/local/php5/etc/php.ini #復制php配置文件到安裝目錄 rm -rf /etc/php.ini #刪除系統自帶配置文件 ln -s /usr/local/php5/etc/php.ini /etc/php.ini #添加軟鏈接 ln -s /usr/local/php5/bin/php /usr/bin/php cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf #拷貝模板文件為php-fpm配置文件 vim /usr/local/php5/etc/php-fpm.conf #編輯 user = www #設置php-fpm運行賬號為www group = www #設置php-fpm運行組為www pid = run/php-fpm.pid #取消注釋 設置 php-fpm開機啟動 cp /usr/local/src/php-5.3.10/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷貝php-fpm到啟動目錄 chmod +x /etc/rc.d/init.d/php-fpm #添加權限 chkconfig php-fpm on #設置開機啟動 vim /usr/local/php5/etc/php.ini #編輯配置文件 找到:;date.timezone = 修改為:date.timezone = PRC #設置時區 找到:expose_php = On 修改為:expose_php = OFF #禁止顯示php版本的信息 找到:display_errors = On 修改為:display_errors = OFF #關閉錯誤提示 配置nginx支持php vim /usr/local/nginx/conf/nginx.conf 修改/usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改 user www www; #首行user去掉注釋,修改Nginx運行組為www www;必須與/usr/local/php5/etc/php-fpm.conf中的user,group配置相同,否則php運行出錯 index index.php index.html index.htm; #添加index.php # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } /etc/init.d/nginx restart #重啟nginx cd /usr/local/nginx/html/ #進入nginx默認網站根目錄 rm -rf /usr/local/nginx/html/* #刪除默認測試頁 chown www.www /usr/local/nginx/html/ -R #設置目錄所有者 chmod 755 /usr/local/nginx/html/ -R #設置目錄權限 重啟nginx、mysqld、php-fpm服務 安裝配置Cacti Web服務 (1)安裝rrdtool、net-snmp以及相關依賴包 for i in ` rpm -q rrdtool net-snmp rrdtool-devel net-snmp-devel net-snmp-utils net-snmp-python net-snmp-perl lm_sensors-devel file-devel rpm-devel file intltool libart_lgpl libart_lgpl-devel elfutils pango-devel* cairo-devel* mysql-devel Mod_auth_mysql php-mysql cairo dejavu-fonts-common.noarch dejavu-lgc-sans-mono-fonts.noarch dejavu-sans-mono-fonts.noarch fontpackages-filesystem.noarch libXft libXrender libthai pango pixman perl-rrdtool net-snmp net-snmp-utils tcp_wrappers-devel |grep 'not installed' | awk '{print $2}' `; do yum -y install $i; done 修改snmpd配置文件, vim /etc/snmp/snmpd.conf 找到先對應的行修改,修改為下面內容 com2sec notConfigUser 127.0.0.1 public #127.0.0.1為cacti監控服務器 #view systemview included .1.3.6.1.2.1.25.1.1 access notConfigGroup "" any noauth exact all none none view all included .1 80 啟動snmpd service snmpd start chkconfig snmpd on 安裝Cacti cd /usr/local/src tar zxvf cacti-0.8.7i.tar.gz cd cacti-0.8.7i cp -r * /usr/local/nginx/html chown www.www /usr/local/nginx/html/ -R #設置目錄所有者 chmod 755 /usr/local/nginx/html/ -R #設置目錄權限 配置Cacti數據庫 mysql -u root -p #輸入密碼進入MySQL控制台 create database cactidb; #創建數據庫cactidb insert into mysql.user(Host,User,Password) values('localhost','cactiuser',password('123456')); #創建數據庫用戶cactiuser 密碼 123456 grant all on cactidb.* to 'cactiuser'@'%' identified by '123456' with grant option; #授權用戶cactiuser對數據庫cactidb完全訪問 flush privileges; #刷新系統授權表,使設置生效 use cactidb source /usr/local/nginx/html/cacti.sql #導入cacti數據庫文件 vim /usr/local/nginx/html/include/config.php #配置數據庫連接 $database_type = "mysql"; $database_default = "cactidb"; #數據庫名稱 $database_hostname = "localhost"; #主機名稱,默認即可 $database_username = "cactiuser"; #數據庫用戶名 $database_password = "123456"; #數據庫密碼 $database_port = "3306"; #MySQL數據庫默認連接端口 $database_ssl = false; 打開http://Cacti-IP/ 出現安裝界面 點擊一步 每個選項下面都是[OK: FILE FOUND],表示配置文件路徑全部正確 完成之後出現登錄界面 默認的用戶名和密碼都是admin 第一次需要密碼修改,修改後點save 因為cacti主要是通過poller.php來觸發數據的采集,在crontab設置cacti每隔5分鐘采集一次數據 crontab -e */5 * * * * php /usr/local/nginx/html/poller.php &> /dev/null 重啟crond /usr/bin/php /usr/local/nginx/html/poller.php #手動刷新數據
Copyright © Linux教程網 All Rights Reserved