最近用cacti 實現(xiàn)了對幾臺服務器的監(jiān)控,期間遇到很多問題,通過借鑒網(wǎng)友的方法都一個個的解決了,我把具體的配置過程發(fā)在這里,希望對大家有所幫助。
安裝用到的 源碼包有 cacti-memcached-1.0.tar.gz mysql-cacti-templates-1.1.3.tar.gz php-5.2.10.tar.gz cgilib-0.5.tar.tar httpd-2.2.14.tar.gz
rrdtool-1.3.6 cacti-nginx.tar.gz cacti-0.8.7e.tar.gz
RPM
還需要一些 rpm包 我是用yum 安裝的,如果你能連接公網(wǎng)的話最好找個快點的 yum源 用yum 把他們都裝上(省心又省力)
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers pango-devel net-snmp-devel net-snmp net-snmp-utils net-snmp-libs php-snmp
上面這些就差不多了,呵呵該升級的升級該安裝的安裝
pango-devel 這個包是裝rrdtool 用的,現(xiàn)在先把他裝上省的一會兒出錯。
Mysql
好了首先是mysql,我用的是二進制包,所以直接解壓就能用了
tar zxvf mysql-5.1.38-linux-x86_64.tar.gz
mv mysql-5.1.38-linux-x86_64-icc-glibc23 /usr/local/mysql
cd /usr/local/mysql
groupadd mysql
useradd -g mysql mysql
scripts/mysql_install_db --user=mysql #初始化數(shù)據(jù)庫
chown -R root .
chown -R mysql data
chgrp -R mysql .
./bin/mysqld_safe --user=mysql & #啟動
./bin/mysqladmin -u root password admin #給root用戶設置密碼
cp ./support-files/mysql.server /etc/init.d/mysqld
# 使用ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql建立一個軟連接,使得可以在命令行下直接使用mysql命令
# 使用ln -s /usr/local/mysql/bin/mysqladmin /usr/local/bin/mysqladmin建立一個軟連接,使得可以在命令行下直接使用mysqladmin命令
# 使用ln -s /usr/local/mysql/bin/mysqldump /usr/local/bin/mysqldump建立一個軟連接,使得可以在命令行下直接使用mysqldump命令
# 使用ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/local/lib/建立一個軟連接,是其他軟件可以找到編譯和運行時的庫
/usr/local/mysql/bin/mysql -u root -padmin
讓我們進入數(shù)據(jù)庫并給cacti建立一個專用的庫cactidb 下面這段授權我從bleach的無廢話弄過來的,他寫的很好,就是缺東西太多了。
mysql> create database cactidb;
mysql> grant all on cactidb.* to root;
mysql> grant all on cactidb.* to
root@localhost;
mysql> grant all on cactidb.* to cactiuser;
mysql> grant all on cactidb.* to
cactiuser@localhost;
mysql> set password for
cactiuser@localhost=password('admin');
mysql> exit
好了,到這里mysql的設置就告一段落,下面該apache了
Apache
tar zxvf httpd-2.2.14.tar.gz
cd httpd-2.2.14
./configure --prefix=/usr/local/apache --enable-so
make
make config
apache安裝沒什么好說的,下面就該php了,在編譯php的時候經(jīng)常會報錯,不過因為上面yum安裝那些包就有針對php的所以這里我沒遇到任何錯誤
如果您遇到了一些錯誤,請參考博客里的文章《安裝php、rrdtool、phpmyadmin時遇到的問題及解決辦法》
PHP
cd ..
tar zxvf php-5.2.10.tar.gz
cd php-5.2.10
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs
--enable-sockets --with-zlib-dir=/usr/include --with-gd
make
make install
cp php.ini-dist /usr/local/php/php.ini
vim /usr/local/apache/conf/httpd.conf #修改apache的配置文件加入下面幾行 用來對php進行支持
<Directory /> #一些安全的設置
# Options FollowSymLinks
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
DirectoryIndex index.php index.html index.html.var
保存退出
啟動 apache
/usr/local/apache/bin/apachectl start
lsof -i:80 #查看apache是否已經(jīng)啟動
好了,讓我們做個測試頁面來驗證apache是否已經(jīng)支持php
vim /usr/local/apache/htdocs/ceshi.php
<?php
phpinfo( );
?>
SNMP
如果有的話我們就進行下一步,配置 snmp 。因為我在上面把需要的幾個包都已經(jīng)裝好了(net-snmp-devel net-snmp net-snmp-utils net-snmp-libs)
所以直接修改配置文件即可
vim /etc/snmp/snmpd.conf
找到下面幾行并修改
#com2sec notConfigUser default public
com2sec notConfigUser 127.0.0.1 public #default 改為127.0.0.1
(注意這里:如果你以后想往cacti里添加其他機器,只要在被監(jiān)控的主機上把127.0.0.1改為cacti服務器的地址就行了)
#access notConfigGroup "" any noauth exact systemview none none
access notConfigGroup "" any noauth exact all none none #systemview 改為all
#view all included .1 80
view all included .1 80 #去掉注釋
好了保存退出后
service snmpd restart
讓我們測試一下,看看snmp是否已經(jīng)正常工作 ,下面的命令 應該會得到本機的ip地址信息
snmpwalk -c public -v 1 -m ALL 127.0.0.1 .1.3.6.1.2.1.4.20
如果你添加了遠程主機就用下面的命令測試
snmpwalk -c public -v 1 -m ALL 192.168.1.118 .1.3.6.1.2.1.4.20
ok如果成功,咱們就進入下一步,安裝rrdtool 這個東西以前裝他的時候費了好多功夫,后來他裝上后才發(fā)現(xiàn)一切竟然如此簡單...
rrdtool
tar zxvf rrdtool-1.3.6.tar.tar
cd rrdtool-1.3.6
./configure
可能會報下面這個錯誤
configure: error: Please fix the library issues listed above and try again.
解決方法
ls /usr/lib/pkgconfig/freetype2.pc #查看freetype是否已裝好,如果裝好就直接裝pango-devel這個包,我也不知道為什么,反正是解決問題了。
/usr/lib/pkgconfig/freetype2.pc
yum install pango-devel
現(xiàn)在再./configure
make
make install
應該就不會報錯了
Cacti
最后我們來安裝和配置 cacti
useradd cactiuser -s /sbin/nologin
tar zxvf cacti-0.8.7e.tar.gz
mv cacti-0.8.7e /usr/local/apache/htdocs/cacti
cd /usr/local/apache/htdocs/cacti
chown -R cactiuser rra/ log/
cd scripts
chown cactiuser:users *
這幾步權限設置很重要,改完權限后修改配置文件
vim /usr/local/apache/htdocs/cacti/include/config.php
$database_type = “mysql”;
$database_default = “cactidb”;
$database_hostname = “l(fā)ocalhost”;
$database_username = “cactiuser”;
$database_password = “admin”;
只需要修改上面幾行即可。
對了,不要忘記把cacti目錄下的cacti.sql 導入cactidb數(shù)據(jù)庫
/usr/local/mysql/bin/mysql -u root -padmin cactidb < cacti.sql
好了,讓我們測試一下吧
http://192.168.1.163/cacti/選擇全新安裝,路徑要數(shù)據(jù)絕對路徑
/usr/local/rrdtool-1.3.6/bin/rrdtool
/usr/local/php/bin/php
這兩個路徑一般cacti找不到,要手動填進去。
還有要注意的是,在Settings 選項里有個rrdtool的版本選項,一定要選擇你當前使用的版本,要不沒有圖像
現(xiàn)在進去應該是看不到圖像的因為還要用php去執(zhí)行腳本
現(xiàn)在以 cactiuser用戶身份添加一條計劃任務 ,最好讓他每分鐘執(zhí)行一次
crontab -u cactiuser -e
*/1 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
先手動執(zhí)行一下,看rrd目錄是否生成圖像
su cactiuser
/usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php
ls /usr/local/apache/htdocs/cacti/rra/
如果有文件生成表示執(zhí)行成功了,再用瀏覽器打開
http://192.168.1.163/cacti/ 看一下
OK,到這里安裝就結束了。
Mysql 監(jiān)控
至于 cacti的插件,我用了 mysql-cacti-templates 來監(jiān)控mysql
需要注意的是數(shù)據(jù)庫權限 ,要在被監(jiān)控的mysql數(shù)據(jù)庫里面給cacti授權
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請
點擊舉報。