监控服务之nagios服务搭建
Nagios是一款开源的监控软件,与cacti,zabbix等开源监控软件并驾齐驱,它能够有效监控windows,linux,unix,交换机和路由器的主机状态和相关运行的服务,在系统或者服务异常时发出邮件或者短信报警,通知运维人员解决问题。ngios本身并没有监控功能,他是通过nagios-plugin插件完成的,插件将结果返回给nagios,然后nagios再以web界面的方式将信息呈现出来,出错了就告警,通过轻量级服务nrpe和nagios-plugin可以实现对远程服务器主机状态和网络服务的监控。
准备材料:
nagios-cn-3.2.3.tar.bz2 nagios-plugins-2.1.1.tar.gz gd-devel-2.0.35-11.el6.x86_64.rpm
步骤:
第一步:(nagios服务安装) --server端
#yum install -y gcc gcc-c++ 编译环境
#yum install -y gd-devel-2.0.35-11.el6.x86_64.rpm 解决nagios服务的依赖项。
#yum install -y httpd 安装apache服务
#/etc/init.d/httpd start
#groupadd nagcmd 新建nagcmd组,主要是方便后续文件的访问
#useradd -M -d /usr/local/nagios -G nagcmd nagios
#usermod -G nagcmd apache 添加apache用户到nagcmd组里面,方便访问
#tar -jxf nagios-cn-3.2.3.tar.bz2 解压文件
#./configure --with-command-group=nagcmd 配置文件,指定命令组为nagcmd
#make all 编译
#make install 安装
#make install-init
#makeinstall-commandmode
#makeinstall-config
#makeinstall-webconf
#vim /etc/hosts
172.25.45.20 server20.example.com (真机,便于解析)
#/etc/init.d/nagios start nagios服务启动
#/etc/init.d/httpdrestart (注意:此时apache服务一定要重起,否则web页面无法访问,重起的目的是加载nagios服务的一些配置文件)
#Firefox--->172.25.10.100/nagios
第二步:(nagios插件的安装) --server端
#tar zxf nagios-plugins-2.1.1.tar.gz
#yum install -y mysql-devel openssl-devel 进行数据传输加密的依赖项
#cd nagios-plugins-2.1.1
#./configure ----> make -----> make install 源码编译三部曲
#cd /usr/local/nagios/libexec/
#chown nagios.nagios * -R 将libexec里面的文件用户与用户组全部更改为nagios.nagios
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 检查nagios主配置文件有没有语法错误。
/etc/init.d/nagiosreload 没有语法错误,则进行重起
#Firefox --> 172.25.45.20/nagios 刷新网页,则能检测相应的数据并且进行监控。
第三步:nagios服务的配置(因为以上那些监控项及服务不是我们需要的,因此我们需要进行私有定制,这就是nagios的优势所在,并且可以随时添加其他的主机和监控的服务)
# cd/usr/local/nagios/etc/
#vim nagios.cfg
34 cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
35 cfg_file=/usr/local/nagios/etc/objects/services.cfg
38#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
注销38行,其实是将38行一分为2,也就是上面添加的两行,hosts.cfg和services.cfg文件,使得添加用户和服务分开进行,更加方便。
图:
# cd /usr/local/nagios/etc/objects/
# cp localhost.cfg hosts.cfg -p
#cp localhost.cfg services.cfg -p (此处注意复制时一定要保持用户其用户组均不变,也就是nagios.nagios)
#vim hosts.cfg 配置host.cfg文件
25 define host{ ###设置为本地主机
26 use linux-server
27 host_name server20.example.com
28 alias HomeSwitch
29 address 172.25.45.20
30 icon_image switch.gif
31 statusmap_image switch.gd2
32 2d_coords 100,200
33 3d_coords 100,200,100
34 }
46 define hostgroup{
47 hostgroup_name linux-servers
48 alias Linux Servers
49 members * ##成员指任何主机
50 }
#vim services.cfg
1 defineservicegroup{
2 servicegroup_name 系统负荷检查
3 alias 负荷检查
4 members server20.example.com,进程总数,server20.example.com,登录用户数,server20.example.com,根分区,server20.example.com,交换空间利用率
5 }
注意:前面关于hosts和hostsgroup全部删掉,只剩下一个servergroup 和services ,且进行全文替换:
“:%s/田朝阳家用机电/server20.example.com/g”
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 语法检查
#/etc/init.d/nagiosreload
#firefox --> 172.25.45.20/nagios 刷新页面
######cd libexec/--> ./check_disk -w 20 -c 10
第四步:监控客户端的运行主机的网络服务及主机资源 --> client端
资料: nrpe-2.15.tar.gz nagios-plugins-2.1.1.tar.gz
(一) 对mysql服务的监控 server2.example.com ip 172.25.45.3
#yum install -ymysql-server 安转数据库
#/etc/init.d/mysqld start 启动数据库
#mysql_secure_installation 数据库初始化
#mysql -uroot-predhat 登陆数据库
> create database nagdb; 创建nagdb库
> grant all on nagdb.* to [email protected] by ‘westos‘; 授权并建立用户nagios;
>quit
# netstat-antlpe 查看数据库端口有没有打开;
####在server端进行验证以及相应mysql服务监控的配置;
#cd /usr/local/nagios/libexec
# ./check_mysql -H 172.25.45.3 -u nagios -p westos 进行验证,看能否有数据过来。或者使用远程登陆数据库;
(或者 # mysql -h 172.25.45.3 -u nagios -p westos )
# cd /usr/local/nagios/etc/objects #添加check_mysql命令
# vim command.cfg
##### ‘check_mysql‘ command definition
215 define command{
216 command_name check_mysql
217 command_line $USER1$/check_mysql -H$HOSTADDRESS$ -u $ARG1$ -p $ ARG2$
218 }
# vim hosts.cfg ####添加主机 ip为172.25.45.3
36define host{ ###且主机名为server2.example.com
37 use linux-server
38 host_name server2.example.com
39 alias HomeSwitch
40 parents server20.example.com
41 address 172.25.45.3
42 icon_image switch.gif
43 statusmap_image switch.gd2
44 2d_coords 200,200
45 3d_coords 200,200,100
46 }
# vim services.cfg ###添加监控的服务--MYSQL
112 define service{
113 use local-service
114 host_name server2.example.com
115 service_description MYSQL
116 check_command check_mysql!nagios!westos
117 }
注意:此处的check_mysql后面跟的是mysql的用户名和密码;
119 define service{
120 use local-service
121 host_name server2.example.com
122 service_description 交换空间利用率
123 check_command check_local_swap!20!10
124 }
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
#/etc/init.d/nagios reload
Firefox ----> 172.25.45.20/nagios 刷新
(二) 对客户主机资源的监控 server2.example.com ip 172.25.45.3
A.客户端配置
# tar zxf nagios-plugins-2.1.1.tar.gz
# yum install -y gcc gcc-c++ ###编译软件,不然无法编译。
# yum install -y mysql-devel openssl-devel
# useradd -M -d /usr/local/nagios nagios 建立用户nagios 并制定用户家目录为:/usr/local/nagios
#cd nagios-plugins-2.1.1 ###源码编译三部曲
# ./configure --> make all --> make install
# cd /usr/local/nagios/
# chown nagios.nagios . –R ##更改文件的用户及用户组
# tar zxf nrpe-2.15.tar.gz
# cd nrpe-2.15
# yum install -y xinetd
注:xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务,Xinetd是基于服务的超级服务,用来管理和保护轻量级服务,此处就是用来保护nrpe服务的,防止DOS攻击。
##对nrpe服务进行编译安装。
# ./configure --> # make all
# makeinstall-plugin --> # makeinstall-daemon -->
# makeinstall-daemon-config --> # makeinstall-xinetd
#/etc/init.d/xinetdstart
# vim /etc/xinetd.d/nrpe
15 only_from =172.25.45.20 只允许此ip 取数据。
#vim /etc/services
22 nrpe 5666/tcp 添加nrpe服务端口5666
#netstat -antlpe 查看端口号5666;
# cd /usr/local/nagios/libexec
# scp check_nrpe [email protected]:/usr/local/nagios/libexec/
#/etc/init.d/xinetd restart 服务重起
B服务器端配置
#cd /usr/local/nagios/libexec
#chown nagios.nagios check_nrpe 传过来的文件用户及组需要改成nagios.nagios
#./check_nrpe -H 172.25.45.3 -c check_disk 进行验证是否有数据返回过来。
配置server服务器的command.cfg services.cfg hosts.cfg 文件,使服务器能取得客户端的数据并能通过WEB界面监控显示出来。
#cd /usr/local/nagios/etc/objects
# vim command.cfg
#####‘check_nrpe‘ command definition
222 define command{
223 command_name check_nrpe
224 command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
225 }
#vim hosts.cfg :由于之前已经加入了此ip的主机,故此处不用添加,要是添加其他ip主机,则方法和之前类似。
# vim services.cfg
120 define service{
121 use local-service
122 host_name server2.example.com
123 service_description 根分区
124 check_command check_nrpe!check_disk
125 }
127 define service{
128 use local-service
129 host_name server2.example.com
130 service_description 登陆用户数
131 check_command check_nrpe!check_users
132 }
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
#/etc/init.d/nagios reload
# Firefox 172.25.45.20/nagios 刷新网页
图:
第五步:添加告警功能(110云告警:短信,电话,邮件)
请看下回,110云告警功能。