在linux的運維中對服務器的監控,時刻了解服務器的狀態是確保服務能夠正常允許的條件,linux的服務監控平台有很多,
cacti
下面對cacti(仙人掌),一種比較流行的開源監控軟件做安裝配置
具體到工作原理如下:
Cacti 是用 php 語言實現的一個軟件,它的主要功能是用 snmp 服務獲取數據,然后用
rrdtool 儲存和更新數據,當用戶需要查看數據的時候用 rrdtool 生成圖表呈現給用戶。因
此,snmp 和 rrdtool 是 cacti 的關鍵。
Snmp 關系着數據的收集,rrdtool 關系着數據存儲和圖表的生成。snmp 抓到數據不是
存儲在 mysql 中,而是存在 rrdtool 生成的 rrd 文件中(在 cacti 根目錄的 rra 文件夾下,
一般以 rra 為后綴名稱)。簡單原理圖如下:
下面主要講解其配置:
1) Cacti 服務器端安裝
官網下載 cacti 相關軟件,一共需要三個軟件,下載地址分別如下:
http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz
http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz
http://www.cacti.net/downloads/spine/cacti-spine-0.8.8a.tar.gz
2) 安裝 LAMP 系統環境
這里采用 yum 安裝方式,安裝命令:
yum install httpd mysql mysql-server php php-mysql ph
p-json php-pdo -y
3) 安裝 rrdtool 采集工具
安裝 rrdtool 之前需要安裝相應的 lib 庫,如下安裝:
yum install cairo-devel libxml2-devel pango pango-devel –y
tar xzf rrdtool-1.4.5.tar.gz ;cd rrdtool-1.4.5 ; ./configure --prefix=
/usr/local/rrdtool/
make &&make install ;ln -s /usr/local/rrdtool/bin/* /usr/local/bin/
在make rrdtool采集工具過程中可能會有如下依賴報錯
報錯1:
make[3]: *** [perl-piped/Makefile] 錯誤 2
make[3]: Leaving directory`/home/skyboy/tools/cacti_tools/rrdtool-1.2.30/bindings'
make[2]: *** [all-recursive] 錯誤 1
make[2]: Leaving directory`/home/skyboy/tools/cacti_tools/rrdtool-1.2.30/bindings'
make[1]: *** [all-recursive] 錯誤 1
make[1]: Leaving directory`/home/skyboy/tools/cacti_tools/rrdtool-1.2.30
[root@sky9896 tools]#yum -y install perl-ExtUtils-MakeMaker
#解決問題
報錯2:
configure: error: Please fix the library issues listedabove and try again.
[root@sky9896 tools]#yum-y install pango*
報錯3:
configure: error: Please fix thelibrary issues listed above and try again.
[root@sky9896 tools]#yum –y install pango-devel*cairo-devel*
4) 安裝 SNMP 服務
yum install net-snmp net-snmp-utils –y
5) 安裝 cacti 主程序
tar xzf cacti-0.8.8a.tar.gz && mv cacti-0.8.8a /var/www/html/cacti/
6) 創建 cacti 數據庫
mysql -uroot –p 輸入你的密碼進入數據庫,然后創建數據庫:
create database cacti;創建數據庫
grant all on cacti.* to cacti@'localhost' identified by "123456";創建用戶並授權
flush privileges; 刷新權限
mysql 配置完畢后,把 cacti 數據導入 cacti 數據庫
mysql -ucacti -p123456 cacti </var/www/html/cacti/cacti.sql
配置完 mysql 后,我們需要設置 cacti rra、log 目錄的權限,這里設置為 777:
chmod -R 777 /var/www/html/cacti/rra/
chmod -R 777 /var/www/html/cacti/log/
7) 修改 cacti 全局配置文件
vi /var/www/html/cacti/include/config.php 為如下配置:
8) 添加 Rrdtool 抓圖任務計划
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php >>/tmp/cacti_rrdtool.log
2 >&1
9) Cacti 安裝完畢,測試訪問
通過 http://ip/cacti/ 訪問出現如下界面
,點擊 NEXT 下一步。
默認一直點擊下一步:
進入登錄界面,第一次需要修改密碼:
進入 Cacti 配置管理界面
點擊 device,可以添加設備,默認可以看到 127.0.0.1 這台服務器。右上角 Add 可以增加
設備。
點擊 localhost 可以看到具體的設置,包括采用的 snmp 協議版本,監控的名稱等:
如果出現 snmp error,檢查 snmp 服務是否已啟動,或者是否有權限。出現如上信息則表示
正常。
點擊左上角第二個按鈕,graphs 查看 cacti 圖像—選擇 localhost 主機—右邊會顯示 cacti
每 5 分鍾的監控圖像。
nagios
能夠做到和cacti一樣的監控作用,甚至可以把二者進行整合:
Nagios 是一款開源的免費網絡監視工具,能有效監控 Windows、Linux 和 Unix 的主機
狀態,交換機路由器等網絡設置,打印機等。
在系統或服務狀態異常時發出郵件或短信報警
第一時間通知網站運維人員,在狀態恢復后發出正常的郵件或短信通知。
其原理圖如下:
下面介紹其安裝
1) Nagios 服務端安裝
同樣安裝 nagios 服務需要安裝 LAMP 環境,這里省略,可以參考之前的 cacti PHP 環境
安裝方法:官網下載 nagios 相應版本和插件:
wget
http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.2.1/nagios-3.2.
1.tar.gz/download
http://down1.chinaunix.net/distfiles/nagios-plugins-1.4.14.tar.gz
/ usr/sbin/useradd nagios
tar zxvf nagios-3.2.1.tar.gz
cd nagios-3.2.1
./configure --prefix=/usr/local/nagios --with-command-group=nagios
make all
make install //來安裝主程序,CGI 和 HTML 文件
make install-init //在/etc/rc.d/init.d 安裝啟動腳本
make install-config //來安裝示例配置文件,安裝的路徑是/usr/local/nagios/etc
make install-commandmode //來配置目錄權限
make install-webconf // 配置 nagios 跟 apache 整合
2) 安裝 Nagios-plugins
tar zxvf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.14
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios
--with-nagios-group=nagios
make && make install
3) nagios 訪問控制設置
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
輸入兩次密碼即可,登錄頁面的時候會用到這個密碼.
4) Nagios 測試訪問
重啟 nagios ,/etc/init.d/nagios restart ;/etc/init.d/httpd restart ;
http://localhost/nagios/ 如下圖:
點擊左側的 Hosts 可以看到右側默認 localhost 主機的監控,UP 表示主機目前運行正常:
點擊左側的 Services 可以看到右側默認 localhost 監控的各個服務的狀態,綠色 OK 表示正
常:
默認安裝完 nagios,配置文件主目錄在/usr/local/nagios/下,目錄各種的功能如下:
bin Nagios 可執行程序所在目錄
etc Nagios 配置文件所在目錄
sbin Nagios CGI 文件所在目錄,也就是執行外部命令所需文件所在的目錄
share Nagios 網頁文件所在的目錄
libexec Nagios 外部插件所在目錄
var Nagios 日志文件、lock 等文件所在的目錄
var/archives Nagios 日志自動歸檔目錄
var/rw 用來存放外部命令文件的目錄