Nagios
Cacti比較着重於直觀數據的監控,易於生成圖形,用來監控網絡流量、cpu使用率、硬盤使用率,cacti偏重於繪畫圖,在流量與圖形展示較好。
而Nagios則比較注重於主機和服務的監控,並且有很強大的發送報警信息的功能。Nagios偏重與系統服務的正常與否,可以用郵箱,短信,電話等多種方式報警。
在做nagios時有用到Ganglia
Ganglia是一個開源集羣監控項目,用於測量大量的節點,它的核心包括gmond,和gmetad和一個web前端,主要是用來監控系統的性能,如cpu,mem,disk,網絡流量等。然後gmetad週期行的輪詢gmod收集的信息,然後存入 rrdtool數據庫,由RRDTOOL工具處理數據,並生成相應的圖形顯示出來每臺主機的情況.
實驗機:是兩臺純淨的虛擬機內存2048 cpu4
Server8 nagios服務
server9
[root@server8 nagios]# tar jxfnagios-cn-3.2.3.tar.bz2
[root@server8 nagios-cn-3.2.3]# ./configure
[root@server8 nagios-cn-3.2.3]# yum installgcc -y
[root@server8 nagios-cn-3.2.3]# ./configure
[root@server8 nagios-cn-3.2.3]# yum install-y gd-devel
[root@server8 nagios-cn-3.2.3]# ./configure
[root@server8 nagios-cn-3.2.3]# useradd -u900 -M -d /usr/local/nagios nagios
[root@server8 nagios-cn-3.2.3]# make all
[root@server8 nagios-cn-3.2.3]# make install-init
[root@server8 nagios-cn-3.2.3]# make install-commandmode
[root@server8 nagios-cn-3.2.3]# makeinstall-config
[root@server8 nagios-cn-3.2.3]# makeinstall-webconf
[root@server8 nagios-cn-3.2.3]# cd/usr/local/nagios/
[root@server8 nagios]# /etc/init.d/nagiosstart
[root@server8 nagios-cn-3.2.3]# cd/etc/httpd/conf.d/
[root@server8 conf.d]# vim nagios.conf
[root@server8 conf.d]# cat/usr/local/nagios/etc/htpasswd.users
nagiosadmin:gCWSDnqEHR45c
[root@server8 conf.d]# htpasswd/usr/local/nagios/etc/htpasswd.users nagiosadmin 修改nagios的密碼
[root@server8 conf.d]# /etc/init.d/httpd restart
[root@server8 conf.d]# /etc/init.d/nagiosrestart
登陸名是nagiosadmin 密碼我之前設的westos
[root@server8 nagios-plugins-2.1.1]# tarzxf nagios-plugins-2.1.1.tar.gz
[root@server8 nagios-plugins-2.1.1]#./configure
編譯完之後mysql openssl後面應該顯示的是yes 如果是no 要yum install
Mysq-devel openssl-devel
[root@server8 nagios-plugins-2.1.1]#make
[root@server8 nagios-plugins-2.1.1]#makeinstall
[root@server8 libexec]#/usr/local/nagios/libexec
[root@server8 libexec]# chownnagios.nagios.* nagios
當出現這種錯誤的時候
[root@server8 etc]# pwd
/usr/local/nagios/etc
[root@server8 etc]# vim nagios.cfg
34cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
35cfg_file=/usr/local/nagios/etc/objects/services.cfg
38#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
[root@server8 objects]# pwd
/usr/local/nagios/etc/objects
[root@server8 objects]# cp -p localhost.cfghosts.cfg
[root@server8 objects]# cp -p localhost.cfgservices.cfg
[root@server8 objects]# vim hosts.cfg
1############################################################################ ###
2############################################################################ ###
3 #
4 #HOST DEFINITION
5 #
6############################################################################ ###
7############################################################################ ###
8define host{
9 use linux-server
10 host_name server8.example.com
11 alias Manager
12# parents MainSwitch
13 address 172.25.137.8
14 icon_image server.gif
15 statusmap_image server.gd2
16 2d_coords 500,200
17 3d_coords 500,200,100
18 }
28 # Define an optional hostgroup for Linuxmachines
29
30define hostgroup{
31 hostgroup_name linux-servers ;The name of the hostgroup
32 alias Linux Servers ;Long name of the group
33 members * ;Comma separated list of hosts that belong to this group
34 }
[root@server8 objects]# vim services.cfg
1 #Define an optional hostgroup for Linux machines
2define servicegroup{
3 servicegroup_name 系統負荷檢查
4 alias 負荷檢查
5 membersserver8.example.com,進程總數,server8.example.com,登錄用戶數, server8.example.com,根分區,server8.example.com,交換空間利用率
6 }
###########################這個配置文件的後面不變#####################
[root@server8 objects]#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 檢測配置文件正確於錯誤當出現下圖就說明修改配置文件正確
如果http是警告則給他加一個測試頁就ok
[root@server8 objects]# /etc/init.d/nagiosreload
遠程連接mysql
[root@server9 ~]# yum install mysql-server-y
[root@server9 ~]# /etc/init.d/mysqld start
進入mysql
mysql> create database test;
mysql> grant select on test.* tonagios'@172.25.137.8' identified by 'westos'; 給遠端監控的nagios授權mysql
[root@server8 libexec]# ./check_mysql -H172.25.137.9 -u nagios -p westos 測試
Uptime: 4684 Threads: 2 Questions: 36 Slow queries:0 Opens: 16 Flush tables: 1 Open tables: 9 Queries per second avg:0.7|Connections=14c;;; Open_files=18;;; Open_tables=9;;;Qcache_free_memory=0;;; Qcache_hits=0c;;; Qcache_inserts=0c;;;Qcache_lowmem_prunes=0c;;; Qcache_not_cached=0c;;; Qcache_queries_in_cache=0;;;Queries=36c;;; Questions=36c;;; Table_locks_waited=0c;;; Threads_connected=2;;;Threads_running=1;;; Uptime=4684c;;;
[root@server8 objects]# vim commands.cfg
213 # 'check_nt' command definition
214 define command{
215 command_name check_mysql
216 command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $ ARG2$
217 }
Vim hosts
20define host{
21 use linux-server
22 host_name server9.example.com
23 alias Manager
24# parents MainSwitch
25 address 172.25.137.9
26 icon_image server.gif
27 statusmap_image server.gd2
28 2d_coords 400,200
29 3d_coords 400,200,100
30 }
[root@server8 objects]# vim services.cfg
112 define service{
113 use local-service
114 host_name server9.example.com
115 service_description mysql
116 check_command check_mysql!nagios!westos
117 }
[root@server8 objects]#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
沒報錯就正確
[root@server8 objects]# /etc/init.d/nagiosreload
在nagios監控平臺就看到了遠程監控的server9
遠程檢測磁盤信息:server9
tar zxf nrpe-2.15.tar.gz
tar zxf nagios-plugins-2.1.1.tar.gz
cd nagios-plugins-2.1.1
./configure --with-nagios-user=nagios--with-nagios-group=nagios 在編譯的時候可能要下gcc
再次編譯如果出現以下就說明要下載openssl-devel mysql-devel
useradd -u 900 -M -d /usr/local/nagiosnagios
./configure --with-nagios-user=nagios--with-nagios-group=nagios
make
makeinstall
編譯完後在 /usr/local/nagios/生成
cdnrpe-2.15
./configure --with-nrpe-user=nagios--with-nrpe-group=nagios
makeall
yuminstall -y xinetd
makeinstall-plugin
makeinstall-daemon
makeinstall-daemon-config
mkaeinstall-xinetd
vim /us/local/nagios/eets
221command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
vim /etc/xinetd.d/nrpe
15 only_from = 172.25.137.8
vim /etc/services
22 nrpe 5666/tcp
/etc/init.d/xinetd start
scp check_nrpe172.25.137.8:/usr/local/nagios/libexec/
Server8# ./check_nrpe -H 172.25.137.9 -c check_disk
[root@server8 objects]# vim/usr/local/nagios/etc/objects/services.cfg
119 ###########check_nrpe
120 define service{
121 use local-service ; Name ofservice template to use
122 host_name server9.example.com
123 service_description 根分區
124 check_command check_nrpe!check_disk
125 }
126
127
128 define service{
129 use local-service ; Name of service template to use
130 host_name server9.example.com
131 service_description 登錄用戶數
132 check_command check_nrpe!check_users
133 }
[root@server8 objects]# vim/usr/local/nagios/etc/objects/commands.cfg
219 # 'check_nrpe' command definition
220 define command{
221 command_name check_nrpe
222 command_line $USER1$/check_nrpe-H $HOSTADDRESS$ -c $ARG1$
223 }
[root@server8 objects]# /etc/init.d/nagiosreload
[root@server8 nagios]# yum install -yrpm-build
[root@server8 nagios]# yum installlibart_lgpl-devel gcc-c++ python-devel libconfuse-devel pcre-devel autoconflibtool expat-devel rrdtool-devel apr-devel -y
[root@server8 nagios]# yum installlibconfuse-* rrdtool-devel-1.3.8-6.el6.x86_64.rpm -y
[root@server8 nagios]# rpmbuild -tbganglia-3.4.0.tar.gz
[root@server8 ~]# cd rpmbuild/ RPMS/x86_64/
[root@server8 x86_64]# yum installganglia-gmetad-3.4.0-1.x86_64.rpm libganglia-3.4.0-1.x86_64.rpm -y
[root@server9 ~]# yum installganglia-gmond-3.4.0-1.x86_64.rpm lib* -y 如果用rpm安裝有依賴性解決不了的話就用yum安裝
[root@server9 ~]# rpm -ivhganglia-gmond-modules-python-3.4.0-1.x86_64.rpm
[root@server8 x86_64]# cd /etc/ganglia/
[root@server8 ganglia]# vim gmetad.conf
44 data_source "my cluster1"localhost 172.25.137.9
[root@server8 ganglia]# vim gmond.conf
24 name = "my cluster1"
[root@server8 ganglia]# /etc/init.d/gmondstart
[root@server8 ganglia]# /etc/init.d/gmetadstart
[root@server9 ganglia]# vim gmond.conf
24 name = "my cluster1"
[root@server9 ganglia]# /etc/init.d/gmondstart
[root@server8 server9.example.com]#rpmbuild-tb ganglia-web-3.4.2-1.x86_64
[root@server8 nagios]# cd/root/rpmbuild/RPMS/
[root@server8 noarch]# rpm -ivh ganglia-web-3.4.2-1.noarch.rpm
error: Failed dependencies:
php-gdis needed by ganglia-web-3.4.2-1.noarch
[root@server8 noarch]# yum intsall php-gd-y
[root@server8 noarch]# rpm -ivhganglia-web-3.4.2-1.noarch.rpm
[root@server8 my cluster1]# du -shserver8.example.com/
[root@server8 nagios]# tar zxfganglia-3.4.0.tar.gz
[root@server8 nagios]# cd ganglia-3.4.0/contrib/
[root@server8 contrib]# cp check_ganglia.py/usr/local/nagios/libexec/
[root@server8 libexec]# chown nagios.nagioscheck_ganglia.py
[root@server9 ganglia]# vim /etc/ganglia/gmond.conf
[root@server8 objects]# vim hosts.cfg 因爲是對server9加服務所以就不用在加主機了
[root@server8 objects]# vim services.cfg 這個v主機組一定是在上面,不要寫在下面了
[root@server8 objects]# vim commands.cfg
[root@server8 objects]#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
[root@server8 objects]# /etc/init.d/nagiosreload
還可以做報警比如郵件,微信短信等
郵件報警,如果虛擬機能和外網連通,然後在自己的反垃圾的白名單設置裏添加nagios@主機名。