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_p_w_picpath server.gif
15 statusmap_p_w_picpath 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_p_w_picpath server.gif
27 statusmap_p_w_picpath 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@主机名。
转载于:https://blog.51cto.com/11699422/1831460