设为首页 收藏本站
查看: 1125|回复: 0

nagios安装使用

[复制链接]

尚未签到

发表于 2015-11-22 16:16:08 | 显示全部楼层 |阅读模式




nagios



nagios自身在ubuntu上的安装可参照http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html


NRPE安装参照http://blog.c1gstudio.com/archives/559 , 另在此之前安装libssl-dev


percona monitoring plugin 可参见http://www.percona.com/software/percona-monitoring-plugins/ , can integrate with nagios


其实我就是一个网络搬运工



安装



in nagios server (ubuntu 12.04):


机器A, ip 172.16.21.119


apt-get install libssl-dev openssl
dpkg -L libssl-dev #see libssl.so real path
ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/libssl.so
apt-get install apache2 libapache2-mod-php5 build-essential libgd2-xpm-dev
useradd -m -s /bin/bash nagios
passwd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www-data
mkdir ~/downloads && cd ~/downloads
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
wget https://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz
tar xvf nagios-3.2.3.tar.gz
cd nagios-3.2.3
./configure –with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
vim /usr/local/nagios/etc/objects/contacts.cfg #and change email address associated with nagiosadmin
make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin #and remember the password
/etc/init.d/apache2 reload
cd ..
tar xvf nagios-plugins-1.5.tar.gz
cd nagios-plugins-1.5
./configure –with-nagios-user=nagios –with-nagios-group=nagios
make
make install
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
/etc/init.d/nagios start
cd ..
wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
tar xvf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure –prefix=/usr/local/nagios
make all
make install-plugin
/usr/local/nagios/libexec/check_nrpe -H xxx.xxx.xxx.xxx #after nagios client run nrpe deamon, use this to check, xxx.xxx.xxx.xxx is client ip
vim /usr/local/nagios/etc/objects/commands.cfg , add:

# 'check_nrpe ' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
vim /usr/local/nagios/etc/objects/hostA.cfg , add:

define host{
use                   generic-server ;is checkconfig error, use linux-server instead
host_name             uts-app-2
alias                 uts-app-2
address               172.16.21.59
}
define service{
use   generic-service
host_name  uts-app-2
service_description load
check_command  check_nrpe!check_load
}
echo “cfg_file=/usr/local/nagios/etc/objects/hostA.cfg” >> /usr/local/nagios/etc/nagios.cfg
service nagios reload


see nagios web interface at http://localhost/nagios/


in nagios client(ubuntu 12.04):


机器B, ip 172.16.21.59


apt-get install libssl-dev openssl
dpkg -L libssl-dev #see libssl.so real path
ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/libssl.so
groupadd nagios
useradd -g nagios -d /usr/local/nagios -s /sbin/nologin nagios
wget https://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz
tar xvf nagios-plugins-1.5.tar.gz
cd nagios-plugins-1.5
./configure –with-nagios-user=nagios –with-nagios-group=nagios –prefix=/usr/local/nagios –with-ping-command=”/bin/ping”
make
make install
ls /usr/local/nagios/libexec #check
cd ..
wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
tar xvf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure –prefix=/usr/local/nagios
make all
make install-plugin
make install-daemon
make install-daemon-config
chown -R nagios:nagios /usr/local/nagios
vi /usr/local/nagios/etc/nrpe.cfg

allowed_hosts=127.0.0.1,172.16.21.119

echo ‘nrpe:192.172.16.21.119’ >> /etc/hosts.allow
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 #check
netstat -an | grep 5666 #check
echo “/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d” >> /etc/rc.local #开机启动



some additions


如何修改nrpe端口
被监控机nrpe.cfg修改server_port为15666
/usr/local/nagios/libexec/check_nrpe -p 15666 -H 127.0.0.1
server_port=15666
重启nrpe
监控机commands.cfg增加-p 15666
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 15666 -c $ARG1$
}
重启nagios就可以了
Connection refused or timed out
检查nrpe 端口
检查nrpe.cfg中allowed_hosts是否包含监控机ip地址
检查/etc/hosts.allow文件中监控机ip地址nrpe:192.168.1.91
检查iptables
开放5666端口
iptables -L
iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 5666 -j ACCEPT
#注意顺序
iptables -L
service iptables save
service iptables restart


添加更多监控项


以添加check_procs举例
B:


vim /usr/local/nagios/etc/nrpe.cfg ,add

command[check_procs]=/usr/local/nagios/libexec/check_procs -w 5:100 -c 2:1024
ps aux | grep nagios
kill -9 xxxx #xxxx is nagios pid
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d #重启


A:


vim /usr/local/nagios/etc/objects/hostA.cfg ,add

define service{
use   generic-service
host_name  uts-app-2
service_description procs
check_command  check_nrpe!check_procs
}
service nagios reload



自定义监控


功能强大的Nagios网络监控平台让你可以为其功能增添一系列可用插件。如果你找不到可以满足自身要求的一款插件,也很容易自行编写.
Nagios插件可以用任何一门编程语言来编写,只要该编程语言在运行Nagios的平台上得到支持。Bash是用来编写Nagios插件的一门流行语言,因为它功能强大、使用简单。
借助插件进行的每一次有效的Nagios检查(Nagios check)都会生成一个数字表示的退出状态。可能的状态有:



  • 0–各方面都正常,检查成功完成。
  • 1–资源处于警告状态。某个地方不太妙。
  • 2–资源处于临界状态。原因可能是主机宕机或服务未运行。
  • 3–未知状态,这未必表明就有问题,而是表明检查没有给出一个清楚明确的状态。


插件还能输出文本消息。默认情况下,该消息显示在Nagios web界面和Nagios邮件警报信息中。尽管消息并不是硬性要求,你通常还是可以在可用插件中找到它们,因为消息告诉用户出了什么岔子,而不会迫使用户查阅说明文档。
an simple example write by shell to check nginx
vim /usr/local/nagios/libexec/check_nginx

#! /bin/bash
ECHO="/bin/echo"
GREP="/bin/egrep"
DIFF="/usr/bin/diff"
TAIL="/usr/bin/tail"
CAT="/bin/cat"
RM="/bin/rm"
CHMOD="/bin/chmod"
TOUCH="/bin/touch"
PROGNAME=`/usr/bin/basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
REVISION="0.1"
. $PROGPATH/utils.sh
print_usage() {
echo "Usage: $PROGNAME"
echo "Usage: $PROGNAME --help"
echo "Usage: $PROGNAME --version"
}
print_help() {
print_revision $PROGNAME $REVISION
echo ""
print_usage
echo ""
echo "Check nginx Running or not"
echo ""
support
}
# Grab the command line arguments
exitstatus=$STATE_WARNING #default
while test -n "$1"; do
case "$1" in
--help)
print_help
exit $STATE_OK
;;
-h)
print_help
exit $STATE_OK
;;
--version)
print_revision $PROGNAME $REVISION
exit $STATE_OK
;;
-V)
print_revision $PROGNAME $REVISION
exit $STATE_OK
;;
-x)
exitstatus=$2
shift
;;
--exitstatus)
exitstatus=$2
shift
;;
* )
echo "Unknown argument: $1"
print_usage
exit $STATE_UNKNOWN
;;
esac
shift
done
# If the source log file doesn't exist, exit
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
$ECHO "nginx is not running\n"
exit $STATE_CRITICAL
else
$ECHO "nginx is running with $A processes\n"
exit $STATE_OK
fi
exit $exitstatus
脚本需要可执行权限, 然后和上面添加权限一样添加入nagios即可


邮件报警


http://my.oschina.net/u/615185/blog/69699
nagios发邮件默认是使用本机的smtp服务,需要安装sendmail,但也可以更改commands.cfg中发邮件的命令,使用第三方邮件服务器,这样就不用自己搭建邮件服务器了,但也要注意第三方服务和网络的稳定性。
这里我使用163做邮件服务器,用sendEmail_ 作为客户端来发送邮件
163邮件服务器: smtp.163.com 用户 xxx@163.com 密码 xxx


wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvf sendEmail-v1.56.tar.gz
cd sendEmail-v1.56
./sendEmail -v -f xxx@163.com -t yyy@gmail.com -u
“from nagios” -s smtp.163.com -xu xxx@163.com -xp xxx -m “test sendEmail” #test
如果发邮件成功则 cp sendEmail /usr/local/bin
chmod +x /usr/local/bin/sendEmail


现在开始配置nagios中邮件报警


cd /usr/local/nagios/
vim etc/objects/contacts.cfg

define contact{
contact_name                    nagiosadmin             ; Short name of user
use                             generic-contact         ; Inherit default values from generic-contact template (defined above)
alias                           Nagios Admin            ; Full name of user
email                           yyy@gmail.com  ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
}
在email那里加上自己的邮箱,如果有多个可以用逗号隔开
修改etc/objects/commands.cfg中notify_host_by_email和notify_service_by_email:

define command{
command_name    notify-host-by-email
command_line    /usr/bin/printf &quot;%b&quot; &quot;***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n&quot; | /usr/local/bin/sendEmail -f xxx@163.com -t $CONTACTEMAIL$ -s smtp.163.com -u &quot;** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **&quot; -xu xxx@163.com -xp xxx
}
define command{
command_name    notify-service-by-email
command_line    /usr/bin/printf &quot;%b&quot; &quot;***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n&quot; | /usr/local/bin/sendEmail -f xxx@163.com -t $CONTACTEMAIL$ -s smtp.163.com -u &quot;** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **&quot; -xu xxx@163.com -xp xxx
}
service nagios reload


关闭某些服务或重启nagios client机器测试下报警功能

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142261-1-1.html 上篇帖子: nagios相关参数 下篇帖子: 搭建nagios监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表