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

Nagios+nrpe+rrdtools+pnp部署

[复制链接]

尚未签到

发表于 2019-1-16 09:49:19 | 显示全部楼层 |阅读模式
Nagios服务器部署
经过测试如有问题可与我联系,QQ:39703762
监控拓扑图见附件
服务端安装
1、安装前的依赖检查;
rpm -q httpd php gcc glibc glibc-common gd gd-devel
如果发现未安装使用yum安装
yum –y install *****
2、创建Nagios账户和组;
useradd -m nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache
3、安装NAGIOS程序;
tar xvf nagios-3.2.0.tar.gz
./configure --with-command-group=nagcmd --with-nagios-user=nagios --with-nagios-group=nagios
make all
make install
make install-init (生成init启动脚本)
make install-config (生成一些模板配置文件)
make install-commandmode (设置相应的权限)
make install-webconf (生成Apache配置文件nagios.conf)
4、为Nagios设置Web验证的密码;
(注意第一次添加用户用-c选项,以后再添加千万别在用这个选项了,会覆盖以前的所有用户的)
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
5、设置Nagios的开机启动
chkconfig --add nagios
chkconfig nagios on
6.修改SELinux
两种方法: 第一种最直接,关闭SELinux,对于SELinux不是很熟悉的用户,请选择此。
Vim /etc/sysconfig/selinux
SELINUX=disabled
第二种给打上正确的安全脉络。
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
7、安装Nagios的插件nagios-plugin
tar xvf nagios-plugins-1.4.13.tar.gz
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
8、配置NFS(用于将服务器上的文档共享给客户端,NFS服务端安装方法见NFS部署教程)
vi /etc/exports
/tmp 192.168.1.0/24(rw)
配置文件
Nagios的配置文件比较多,我在这里做它们之间的关系描述一下
所有文件都由主配置文件nagios.cfg来管理路径
管理人员(contacts.cfg、contactgroups.cfg)——监控主机(hosts.cfg、hostgroups.cfg)——监控内容(services.cfg)——监控时间(timeperiods.cfg)——如何监控如何通知(templates.cfg、commands.cfg)
nagios.cfg (主配置文件)
log_file=/usr/local/nagios/var/nagios.log (日志文件位置)
cfg_file=/usr/local/nagios/etc/objects/commands.cfg(命令定义文件)
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg(联系人信息定义文件)
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg (时间周期定义文件)
cfg_file=/usr/local/nagios/etc/objects/templates.cfg (模板文件)
cfg_file=/usr/local/nagios/etc/objects/contactgroups.cfg (添加此行联系人组定义文件)
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg(添加此行主机定义文件)
cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg (添加此行主机组定义文件)
cfg_file=/usr/local/nagios/etc/objects/services.cfg (添加此行服务定义文件)
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg (注释掉此行)
Hosts.cfg 
HOSTS-PNP为rrdtool配置模板第一步可暂时不用加,等所有功能完成后在增加
define host{
      use linux-server,hosts-pnp (使用liux-server和hosts-pnp模板)   
      host_name Nagios-Server
      alias Nagios Server
      address 127.0.0.1
}
define host{
      use linux-server,hosts-pnp
      host_name Lvs-Server
      alias Lvs Server
      address 192.168.1.75
}
define host{
    use linux-server,hosts-pnp
    host_name Java-Server
    alias Java Server
    address 192.168.1.86
}
define host{
   use linux-server,hosts-pnp
    host_name Java-Server1
    alias Java Server1
    address 192.168.1.252
}
define host{
    use linux-server,hosts-pnp
    host_name Postgre-Sql
    alias Postgre Sql
    address 192.168.1.101
}
hostgroups.cfg
定义所有主机都在SYSTEM-ADMIN主机组中,方便管理,如果监控对象所使用的用户不相同的话可在增加其它主机组
define hostgroup {
hostgroup_name System-Admin(主机组名)
alias system Admin
members Nagios-Server,Lvs-Server,Java-Server,Java-Server1,Postgre-Sql
}
services.cfg
定义各主机监控的服务在这里我们监控机器是否存活、硬盘使用情况、网卡使用上限提示、80端口、5432端口。
services-pnp为rrdtool配置模板第一步可暂时不用加,等所有功能完成后在增加
######################Nagios-Server#################################
#define service{
#use linux-services,services-pnp
#host_name Nagios-Server
#service_description check-host-alive
#check_command check-host-alive
#}
define service{
use linux-services,services-pnp
host_name Nagios-Server
service_description check-df
check_command check_nrpe!check_df
}
define service{
use linux-services,services-pnp
host_name Nagios-Server
service_description check-ips
check_command check_nrpe!check_ips
}
define service{
use linux-services,services-pnp
host_name Nagios-Server
service_description check-tcp 80
check_command check_tcp!80
}
#############################Lvs-Server#####################################
define service {
use linux-services,services-pnp
host_name Lvs-Server
service_description check-df
check_command check_nrpe!check_df
}
define service {
use linux-services,services-pnp
host_name Lvs-Server
service_description check-ips
check_command check_nrpe!check_ips
}
##########################Java-server##########################################
define service {
use linux-services,services-pnp
host_name Java-Server
service_description check-df
check_command check_nrpe!check_df
}
define service {
use linux-services,services-pnp
host_name Java-Server
service_description check-ips
check_command check_nrpe!check_ips
}
define service{
use linux-services,services-pnp
host_name Java-Server
service_description check-tcp 80
check_command check_tcp!80
}
#########################Java-Server1########################################
define service {
use linux-services,services-pnp
host_name Java-Server1
service_description check-df
check_command check_nrpe!check_df
}
define service {
use linux-services,services-pnp
host_name Java-Server1
service_description check-ips
check_command check_nrpe!check_ips
}
define service{
use linux-services,services-pnp
host_name Java-Server1
service_description check-tcp 80
check_command check_tcp!80
}
#####################Postgre-Sql######################################################
define service {
use linux-services,services-pnp
host_name Postgre-Sql
service_description check-df
check_command check_nrpe!check_df
}
define service {
use linux-services,services-pnp
host_name Postgre-Sql
service_description check-ips
check_command check_nrpe!check_ips
}
define service{
use linux-services,services-pnp
host_name Postgre-Sql
service_description check-tcp 5432
check_command check_tcp!5432
}
contacts.cfg
定义管理用户可用来故障发生后发邮件或短信等通知
define contact{
contact_name nagiosadmin
use generic-contact
alias Nagios Admin
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email 1596*****10@139.com
}
contactgroups.cfg
定义主机组,及其成员
define contactgroup {
contactgroup_name sagroup
alias system administrator group
members nagiosadmin
}
templates.cfg
定义共性的参数,例如监控的类型,监控用户组,监控时间段定义,报警类型等
如想另外定制其它服务器使用其它监控用户组发邮件更改用户组即可
define host{
name   hosts-pnp
register 0
action_url /nagios/pnp/index.php?host=$HOSTNAME$
process_perf_data            1
}
define service{
name services-pnp
register 0
action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
process_perf_data            1
}
define service{
   name             linux-services (监控组名称)
   check_period 24x7(监控地间段)
   max_check_attempts 4
   normal_check_interval 3
   retry_check_interval 2
   contact_groups sagroup (监控用户组)
   notification_interval 10 
   notification_period 24x7 (发送通知时间)
   notification_options w,u,c,r (监控类型)
}
commands.cfg
# 'process-host-perfdata' command definitio(定义报表系统)
define command{
        command_name    process-host-perfdata
command_line /usr/local/nagios/libexec/process_perfdata.pl
        }
# 'process-service-perfdata' command definition(定义报表系统)
define command{
        command_name    process-service-perfdata
       command_line /usr/local/nagios/libexec/process_perfdata.pl
        }
#nrpe set (定义NRPE插件使用方式)
define command{
command_name check_nrpe
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

修改目录的所有者
chown -R nagios:nagios /usr/local/nagios/etc/objects/
检测配置文件是否正确
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors: 0
如果都是0说明配置成功了,如果有错误,好好检查一下。
启动Nagios服务
/etc/init.d/httpd restart
/etc/init.d/nagios start
Chkconfig nagios on
――――――――――――――服务端―――――――――――――――――――――――――――
所有机器都需要配置:
检查机器中是否安装有xinetd 服务
Rpm -qa | grep xinetd
安装XINETD服务
Yum -y install xinetd
Chkconfig –add xinetd
Service xinetd start
配置NFS
chkconfig --add nfs
service nfs start
mkdir /mnt/111
mount -t nfs 192.168.1.85:/tmp /mnt/111
―――――――――――――share  configure-------------------------------------

客户端配置
所有机器都需要配置:
检查机器中是否安装有xinetd 服务
Rpm -qa | grep xinetd
安装XINETD服务
Yum -y install xinetd
Chkconfig –add xinetd
Service xinetd start
配置NFS
chkconfig --add nfs
service nfs start
mkdir /mnt/111
mount -t nfs 192.168.1.85:/tmp /mnt/111

添加nagios用户
useradd -s /sbin/nologin nagios
1.     安装nrpe
tar zxvf nrpe-2.12.tar.gz
./configure && make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
2.配置nrep
vi /etc/xinetd.d/nrpe
service nrpe
{ flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nrpe
server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from =127.0.0.1 192.168.1.85 (监控端IP)
在only_from 添加要监控的主机的IP地址,中间以空格隔开。
服务器配置为:
allowed_hosts=127.0.0.1,192.168.1.75,192.168.1.85,192.168.1.86,192.168.1.252
3.添加端口
vi /etc/services 在最后添加
nrpe 5666/tcp #nrpe
4.重新启动Xinetd服务
/etc/init.d/xinetd restart
netstat -na | grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN
5.安装Nagios的插件nagios-plugin
tar zxvf nagios-plugins-1.4.13.tar.gz
cd nagios-plugins-1.4.13
./configure --enable-redhat-pthread-workaround
make && make install
6、复制服务端的libexec到客户端
(服务端)mkdir –p /tmp/111/libexec
cp /usr/local/nagios/libexec/* /tmp/111/libexec
(客户端)mount –t nfs 192.168.1.85:/tmp /mnt
        Cp /mnt/111/libexec/* /usr/local/nagios/libexec
7、修改nrpe.cfg文件
#server_address=127.0.0.1 去掉前面的#
修改allowed_hosts=127.0.0.1,192.168.1.85(增加允许监控的服务端)
服务端配置为
only_from  = 127.0.0.1 192.168.1.86 192.168.1.75 192.168.1.252
找到command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
位置修改为如下内容:
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_df]=/usr/local/nagios/libexec/check_disk -w 20 -c 10
command[check_ips]=/usr/local/nagios/libexec/ip_conn.sh 8000 10000
nagios性能分析图表
rrdtool安装全过程
设置变量位置(这个必须先设置)
export PKG_CONFIG_PATH=${INSTALL_DIR}/lib/pkgconfig
        export PATH=$INSTALL_DIR/bin:$PATH
安装这个是一个满麻烦的过程有可能全部按这个流程安装完成也并不一定能正常访问,这边有二种安装方法建议先试一试自动安装如果不行的话在试手动安装的,毕竟手动安装比较麻烦
第一种自动安装:
yum install php-gd zlib libpng freetype libxml2 fontconfig pixman cairo glib pango(安装支持包)
Rpm –ivh rrdtool-1.2.30-1.el4.wrl.i386.rpm rrdtool-devel-1.2.30-1.el4.wrl.i386.rpm rrdtool-perl-1.2.30-1.el4.wrl.i386.rpm
修改PHP文件(不管是手动还是自动都需要安装这个)
vim /etc/php.ini
extension=gd.so(增加对GD的支持)
手动安装:

设置安装目录及安装目录变量(默认安装过程)
BUILD_DIR=/tmp/rrdbuild
INSTALL_DIR=/opt/rrdtool-1.4.5
mkdir -p $BUILD_DIR
cd $BUILD_DIR
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz
        gunzip -c rrdtool-1.4.5.tar.gz | tar xf -
        cd rrdtool-1.4.5
        ./configure --prefix=$INSTALL_DIR && make && make install
一般系统是安装不成功的,一般需要检查如下内容是否安装
pkg-config、zlib、libpng、freetype、libxml2、fontconfig、pixman、cairo、glib、pango等
检查方式rpm -qa | grep ***(检查文件名字)
一般会有如下未安装:

设置变量位置(这个必须先设置)
export PKG_CONFIG_PATH=${INSTALL_DIR}/lib/pkgconfig
        export PATH=$INSTALL_DIR/bin:$PATH

安装pkg-config

        wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz
        gunzip -c pkg-config-0.23.tar.gz | tar xf -
        cd pkg-config-0.23
        ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
        make
        make install
配置变量位置
        export PKG_CONFIG=$INSTALL_DIR/bin/pkg-config
安装zlib
        wget http://oss.oetiker.ch/rrdtool/pub/libs/zlib-1.2.3.tar.gz
        gunzip -c zlib-1.2.3.tar.gz | tar xf -
        cd zlib-1.2.3
        ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" --shared
        make
        make install
安装Pixman
        wget http://oss.oetiker.ch/rrdtool/pub/libs/pixman-0.10.0.tar.gz
        gunzip -c pixman-0.10.0.tar.gz | tar xf -
        cd pixman-0.10.0
        ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
        make
        make install
安装libpng
        wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.18.tar.gz
        gunzip -c libpng-1.2.18.tar.gz | tar xf -
        cd libpng-1.2.18
        env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR
        make
        make install
安装freetype
        wget http://oss.oetiker.ch/rrdtool/pub/libs/freetype-2.3.5.tar.gz
        gunzip -c freetype-2.3.5.tar.gz | tar xf -
        cd freetype-2.3.5
        ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
        make
        make install
安装fontconfig
        wget http://oss.oetiker.ch/rrdtool/pub/libs/fontconfig-2.4.2.tar.gz
        gunzip -c fontconfig-2.4.2.tar.gz   | tar xf -
        cd fontconfig-2.4.2
./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" --with-freetype-config=$INSTALL_DIR/bin/freetype-config
        make
        make install
安装cairo
        wget http://oss.oetiker.ch/rrdtool/pub/libs/cairo-1.6.4.tar.gz
        gunzip -c cairo-1.6.4.tar.gz   | tar xf -
        cd cairo-1.6.4
        ./configure --prefix=$INSTALL_DIR \
           --enable-xlib=no \
           --enable-xlib-render=no \
           --enable-win32=no \
           CFLAGS="-O3 -fPIC"
        make
        make install
安装glib
        wget http://oss.oetiker.ch/rrdtool/pub/libs/glib-2.15.4.tar.gz
        gunzip -c glib-2.15.4.tar.gz | tar xf -
        cd glib-2.15.4
        ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
        make
        make  install
安装pango(系统默认安装的版本比较低一般需要升级)
        wget http://oss.oetiker.ch/rrdtool/pub/libs/pango-1.21.1.tar.bz2
        bunzip2 -c pango-1.21.1.tar.bz2 | tar xf -
        cd pango-1.21.1
        ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" --without-x
        make
        make install

重试安装
        cd $BUILD_DIR/rrdtool-1.4.5
        ./configure --prefix=$INSTALL_DIR --disable-tcl --disable-python
        make clean
        make
        make install
安装PNP
tar -xvzf pnp-0.4.13.tar.gz
cd pnp-0.4.13
./configure --with-nagios-user=nagios \
--with-nagios-group=nagios \
--with-rrdtool= /opt/rrdtool-1.4.5 \
--with-perfdata-dir=/usr/local/nagios/share/perfdata
如果是自动安装的话去掉--with-rrdtool= /opt/rrdtool-1.4.5 \
make all
make install
make install-config
make install-init

安装完成,PNP默认文件放置情况如下:
General Options:
-----------------------------       -------------------
Nagios user/group:                nagios nagios
Install directory:                /usr/local/nagios
HTML Dir:                         /usr/local/nagios/share/pnp
Config Dir:                       /usr/local/nagios/etc/pnp
Path to rrdtool:                  /usr/local/bin/rrdtool (Version 1.4.5)
RRDs Perl Modules:                *** NOT FOUND ***
RRD Files stored in:              /usr/local/nagios/share/perfdata
process_perfdata.pl Logfile:      /usr/local/nagios/var/perfdata.log
Perfdata files (NPCD) stored in: /usr/local/nagios/var/spool/perfdata/
创建默认配置文件
cd /usr/local/nagios/etc/pnp/
cp process_perfdata.cfg-sample process_perfdata.cfg
cp npcd.cfg-sample npcd.cfg
cp rra.cfg-sample rra.cfg
chown -R nagios:nagios *
修改process_perfdata.cfg文件
vi /usr/local/nagios/etc/pnp/process_perfdata.cfg
LOG_FILE = /usr/local/nagios/var/perfdata.log
# Loglevel 0=silent 1=normal 2=debug
LOG_LEVEL = 2
这里将日志级别改为2,即为debug模式。(安装测试完成后修改回0)

修改nagios配置文件
增加小太阳标示(在服务器配置过程中已经增加在这里可不用加了,在这里说出来是为了告诉大家这是第二步)
1、修改templates.cfg,增加一个定义PNP的hosts和services
Vi /usr/local/nagios/etc/objects/templates.cfg
define host {
        name       hosts-pnp
        register   0
        action_url /nagios/pnp/index.php?host=$HOSTNAME$
        process_perf_data               1

}
define service {
        name       services-pnp
        register   0
        action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
        process_perf_data               1

}
2、修改nagios.cfg
Vi /usr/local/nagios/etc/nagios.cfg
找到如下几项,去掉注释,修改后信息如下:
process_performance_data=1 (在网站上操作关闭服务命令0为关闭1为开启)
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata
3、修改commands.cfg
Vi /usr/local/nagios/etc/objects/commands.cfg

# 'process-host-perfdata' command definition
define command{

        command_name    process-host-perfdata
        command_line /usr/local/nagios/libexec/process_perfdata.pl
}

# 'process-service-perfdata' command definition

define command{
        command_name    process-service-perfdata
        command_line /usr/local/nagios/libexec/process_perfdata.pl
}
4、修改hosts.cfg文件和services.cfg文件

define host{
        use                     linux-server,hosts-pnp
        host_name               web
        alias                   ixdba-web
        address                 192.168.12.251
        }

define host{
        use                     linux-server,hosts-pnp
        host_name               mysql
        alias                   ixdba-mysql
        address                 192.168.12.237
        }

define service{
        use                             local-service,services-pnp
        host_name                       mysql
        service_description             SSH
        check_command                   check_ssh
        }
define service{
        use                             local-service,services-pnp
        host_name                       web
        service_description             http
        check_command                   check_http
        }
测试网页为http://IP/nagios 用户名为nagiosadmin

  最后加上安装需要的安装文件吧,怕有些人不知道从那里下载,如果需要源码包的话直接联系我吧,比较多。http://down.运维网.com/data/281835
  rrdtools 库文件下载位置http://oss.oetiker.ch/rrdtool/pub/


附件:http://down.运维网.com/data/2359268


运维网声明 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-663867-1-1.html 上篇帖子: Nagios远程监控软件的安装 下篇帖子: nagios部署之服务搭建(yum安装)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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