返回列表 发帖

CentOS8_lnmp1.7_LAMP_安装Nagios

实验中,服务器的信息:
[root@redhat8 ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@redhat8 ~]# uname -r
4.18.0-193.el8.x86_64

[root@redhat8 ~]# hostname
redhat8.zhuohua.store
[root@redhat8 ~]# cat /etc/hostname
redhat8.zhuohua.store

[root@redhat8 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:15:ba:0c brd ff:ff:ff:ff:ff:ff
    inet 192.168.168.155/24 brd 192.168.168.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::92ab:5fb4:5373:ad53/64 scope link noprefixroute
       valid_lft forever preferred_lft forever



LAMP环境的安装:
[root@redhat8 ~]# tar -zxvf lnmp1.7-full.tar.gz
[root@redhat8 ~]# cd lnmp1.7-full
[root@redhat8 lnmp1.7-full]# CheckMirror=n ./install.sh lamp
注释: CheckMirror=n 使用本地光盘作为Yum源,不需要连公网。

选择数据库版本:
图片1.png

设置数据库用户root@localhost的密码:(以下是把密码设置为 888 )
图片2.png

启用InnoDB Storage Engine,输入 Y 再按回车键:
图片3.png

选择PHP版本:
图片4.png

选择是否安装内存优化:
图片5.png
备注:Jemalloc、TCMalloc都是是内存分配器。

需要设置管理员邮箱,该邮箱会在报错时显示在错误页面上:
图片6.png

选择Apache的版本:
图片7.png

安装或取消安装:
图片8.png

下面是全自动安装的^_^ ^_^


安装成功了:(安装好后,最好重启一下服务器)
图片9.png

图片10.png


查看Jemalloc是否正常运行:(这里只有MySQL使用了Jemalloc)
[root@redhat8 ~]# lsof -n |grep jemalloc
mysqld    1588                  mysql  mem       REG              253,0  6123824  202034242 /usr/local/lib/libjemalloc.so.2
mysqld    1588 1607 mysqld      mysql  mem       REG              253,0  6123824  202034242 /usr/local/lib/libjemalloc.so.2
mysqld    1588 1609 mysqld      mysql  mem       REG              253,0  6123824  202034242 /usr/local/lib/libjemalloc.so.2
mysqld    1588 1610 mysqld      mysql  mem       REG              253,0  6123824  202034242 /usr/local/lib/libjemalloc.so.2
mysqld    1588 1611 mysqld      mysql  mem       REG              253,0  6123824  202034242 /usr/local/lib/libjemalloc.so.2
mysqld    1588 1620 mysqld      mysql  mem       REG              253,0  6123824  202034242 /usr/local/lib/libjemalloc.so.2
mysqld    1588 1621 mysqld      mysql  mem       REG              253,0  6123824  202034242 /usr/local/lib/libjemalloc.so.2
mysqld    1588 1622 mysqld      mysql  mem       REG              253,0  6123824  202034242 /usr/local/lib/libjemalloc.so.2
mysqld    1588 1625 mysqld      mysql  mem       REG              253,0  6123824  202034242 /usr/local/lib/libjemalloc.so.2
mysqld    1588 1626 mysqld      mysql  mem       REG              253,0  6123824  202034242 /usr/local/lib/libjemalloc.so.2


查看MySQL的版本信息:
[root@redhat8 ~]# mysql -V
mysql  Ver 14.14 Distrib 5.1.73, for unknown-linux-gnu (x86_64) using readline 5.1


查看MySQL的编译参数:
[root@redhat8 ~]# cat /usr/local/mysql/bin/mysqlbug |grep configure
# This is set by configure
CONFIGURE_LINE="./configure  '--prefix=/usr/local/mysql' '--with-extra-charsets=complex' '--enable-assembler' '--with-mysqld-ldflags=-all-static' '--with-charset=utf8' '--enable-thread-safe-client' '--with-big-tables' '--with-readline' '--with-ssl' '--with-embedded-server' '--enable-local-infile' '--with-plugins=innobase' '--with-mysqld-ldflags=-ljemalloc'"


MySQL的主配置文件:
[root@redhat8 ~]# cat /etc/my.cnf |grep -v "^$"
[client]
#password       = your_password
port            = 3306
socket          = /tmp/mysql.sock
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
datadir = /usr/local/mysql/var
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 1M
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 8K
read_buffer_size = 768K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
query_cache_size = 16M
tmp_table_size = 32M
#skip-networking
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log-bin=mysql-bin
binlog_format=mixed
server-id       = 1
expire_logs_days = 10
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_data_home_dir = /usr/local/mysql/var
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/var
innodb_buffer_pool_size = 128M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 32M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 768K
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout


Apache的版本信息:
[root@redhat8 ~]# find / -name httpd
/etc/rc.d/init.d/httpd
/usr/local/apache/bin/httpd
[root@redhat8 ~]#
[root@redhat8 ~]# /usr/local/apache/bin/httpd -v
Server version: Apache/2.4.46 (Unix)
Server built:   Aug 14 2021 14:58:50
[root@redhat8 ~]#
[root@redhat8 ~]# /usr/local/apache/bin/httpd -V
Server version: Apache/2.4.46 (Unix)
Server built:   Aug 14 2021 14:58:50
Server's Module Magic Number: 20120211:93
Server loaded:  APR 1.7.0, APR-UTIL 1.6.1
Compiled using: APR 1.7.0, APR-UTIL 1.6.1
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_PROC_PTHREAD_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/usr/local/apache"
-D SUEXEC_BIN="/usr/local/apache/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"


查看Apache的编译参数:
[root@redhat8 ~]# find / -name "config.nice"
/usr/local/apache/build/config.nice

[root@redhat8 ~]# cat /usr/local/apache/build/config.nice
#! /bin/sh
#
# Created by configure

"./configure" \
"--prefix=/usr/local/apache" \
"--enable-mods-shared=most" \
"--enable-headers" \
"--enable-mime-magic" \
"--enable-proxy" \
"--enable-so" \
"--enable-rewrite" \
"--enable-ssl" \
"--with-ssl" \
"--enable-deflate" \
"--with-pcre" \
"--with-included-apr" \
"--with-apr-util" \
"--enable-mpms-shared=all" \
"--enable-remoteip" \
"--enable-http2" \
"--with-nghttp2=/usr/local/nghttp2" \
"$@"



PHP的主配置文件:
[root@redhat8 ~]# find / -name "php.ini"
/usr/local/php/etc/php.ini

PHP的版本信息:
[root@redhat8 ~]# php -v
PHP 5.3.29 (cli) (built: Aug 14 2021 15:05:35)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies





创建Nagios的用户、组和相关目录:
useradd -s /sbin/nologin nagios
mkdir -p /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/


安装Nagios:
tar -zxvf nagios-4.1.1.tar.gz
cd nagios-4.1.1
./configure --prefix=/usr/local/nagios/ --with-gd-lib=/usr/lib --with-gd-inc=/usr/include/
make all
make install
make install-init
make install-config
make install-commandmode
make install-config


安装nagios-plugins:
tar -zxvf nagios-plugins-2.1.1.tar.gz
cd nagios-plugins-2.1.1
./configure --prefix=/usr/local/nagios/
make
make install


启动Nagios:
[root@redhat8 ~]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

开机自动启动Nagios:
[root@redhat8 ~]# echo "/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg" >> /etc/rc.local
[root@redhat8 ~]#
[root@redhat8 ~]# chmod a+x /etc/rc.d/rc.local


检测Nagios是否在运行中:
[root@redhat8 ~]# ps -ef |grep nagios |grep -v grep
nagios     24078       1  0 22:05 ?        00:00:00 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
nagios     24079   24078  0 22:05 ?        00:00:00 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
nagios     24080   24078  0 22:05 ?        00:00:00 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
nagios     24081   24078  0 22:05 ?        00:00:00 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
nagios     24082   24078  0 22:05 ?        00:00:00 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
nagios     24083   24078  0 22:05 ?        00:00:00 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
[root@redhat8 ~]#
[root@redhat8 ~]# echo $?
0



安装NRPE:
tar -zxvf nrpe-3.2.1.tar.gz
cd nrpe-3.2.1
./configure --prefix=/usr/local/nagios/
make all
make install


给NRPE创建配置文件:
[root@redhat8 ~]# find / -name "nrpe.cfg"
/root/nrpe-3.2.1/sample-config/nrpe.cfg

[root@redhat8 ~]# cp /root/nrpe-3.2.1/sample-config/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg


启动NRPE:
[root@redhat8 ~]#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

开机自动启动NRPE:
[root@redhat8 ~]# echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.local


查看本机NRPE的版本:
[root@redhat8 ~]# /usr/local/nagios/libexec/./check_nrpe -H 127.0.0.1
NRPE v3.2.1


检测NRPE是否在运行中:
[root@redhat8 ~]# netstat -anp |grep 5666
tcp        0      0 0.0.0.0:5666            0.0.0.0:*               LISTEN      26187/nrpe
tcp6       0      0 :::5666                 :::*                    LISTEN      26187/nrpe  
[root@redhat8 ~]#
[root@redhat8 ~]# echo $?
0



Web页面登录Nagios时的用户和密码:(文件名、用户和密码都是自定义的)
[root@redhat8 ~]# find / -name 'htpasswd'
/usr/local/apache/bin/htpasswd
[root@redhat8 ~]#
[root@redhat8 ~]# /usr/local/apache/bin/htpasswd -bc /usr/local/nagios/etc/htpasswd zhuohua 888
Adding password for user zhuohua



修改Apache的主配置文件:
[root@redhat8 ~]# find / -name httpd.conf
/root/nagios-4.1.1/sample-config/httpd.conf
/usr/local/apache/conf/original/httpd.conf
/usr/local/apache/conf/httpd.conf

[root@redhat8 ~]# vi /usr/local/apache/conf/httpd.conf
#LoadModule cgid_module modules/mod_cgid.so
修改为:(不去掉这行代码前的#,Nagios会解析不了cgi文件)
LoadModule cgid_module modules/mod_cgid.so

在文件的最后追加Nagios的代码:
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin

<Directory "/usr/local/nagios/sbin">
    Options ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName "Nagios Access"
    AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
    Require valid-user
</Directory>

Alias /nagios /usr/local/nagios/share

<Directory "/usr/local/nagios/share">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName "Nagios Access"
    AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
    Require valid-user
</Directory>

备注:
Nagios的应用程序文件的存放目录:/usr/local/nagios/share


来到这里要重启一下服务器:
[root@redhat8 ~]# reboot



网页登录Nagios:(建议使用Firefox浏览器)
http://192.168.168.155/nagios/
图片11.png

图片12.png


查看主机状态:
图片13.png

图片14.png

报错信息:
It appears as though you do not have permission to view information for any of the hosts you requested...

If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI
and check the authorization options in your CGI configuration file.


解决方法:
[root@redhat8 ~]# sed -i 's/use_authentication=1/use_authentication=0/g' /usr/local/nagios/etc/cgi.cfg

接着刷新网页即可。


默认就监控本机(localhost):
图片15.png


查看服务状态:
图片16.png

图片17.png



重启Nagios:
[root@redhat8 ~]# pkill -9 -U nagios
[root@redhat8 ~]#
[root@redhat8 ~]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

图片20.png
注释:重启Nagios后,其PID会改变。



在Nagios上测试远程服务器的TCP端口:
[root@redhat8 ~]# /usr/local/nagios/libexec/check_tcp -H blog.zhuohua.store -p 80
TCP OK - 1.102 second response time on blog.zhuohua.store port 80|time=1.102355s;;;0.000000;10.000000

[root@redhat8 ~]# /usr/local/nagios/libexec/check_tcp -H blog.zhuohua.store -p 22
TCP OK - 2.341 second response time on blog.zhuohua.store port 22|time=2.341261s;;;0.000000;10.000000

[root@redhat8 ~]# /usr/local/nagios/libexec/check_tcp -H blog.zhuohua.store -p 3306
CRITICAL - Socket timeout after 10 seconds













Nagios监控CentOS6

被监控主机的信息:
[root@ser_001 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@ser_001 ~]# uname -r
2.6.32-696.el6.x86_64

[root@ser_001 ~]# hostname
ser_001.zhuohua.store
[root@ser_001 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ser_001.zhuohua.store

[root@ser_001 ~]# ifconfig eth0 |grep "inet addr" |awk '{print $2}' |awk -F: '{print $2}'
192.168.168.130


被监控主机安装依赖软件包:
[root@ser_001 ~]# yum install -y gcc-c++ openssl-devel


创建用户和组:
[root@ser_001 ~]# useradd -M -s /sbin/nologin nagios


安装nagios-plugins:
tar -zxvf nagios-plugins-2.1.1.tar.gz
cd nagios-plugins-2.1.1
./configure --prefix=/usr/local/nagios/
make
make install


安装NRPE:
tar -zxvf nrpe-3.2.1.tar.gz
cd nrpe-3.2.1
./configure --prefix=/usr/local/nagios/
make all
make install


给NRPE创建配置文件:
[root@ser_001 ~]# find / -name 'nrpe.cfg'
/root/nrpe-3.2.1/sample-config/nrpe.cfg

[root@ser_001 ~]# mkdir -p /usr/local/nagios/etc

[root@ser_001 ~]# cp /root/nrpe-3.2.1/sample-config/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg


启动NRPE:
[root@ser_001 ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

设置开机自动启动NRPE:
echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.local


检测NRPE是否在运行:
[root@ser_001 ~]# netstat -anp |grep 5666
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      22492/nrpe         
tcp        0      0 :::5666                     :::*                        LISTEN      22492/nrpe  



查看本机NRPE的版本:
[root@ser_001 ~]# /usr/local/nagios/libexec/./check_nrpe -H 127.0.0.1
NRPE v3.2.1


指明Nagios服务器的IP地址:
[root@ser_001 ~]# vi /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,::1
修改为:
allowed_hosts=127.0.0.1,::1,192.168.168.155


重启NRPE:
kill -9 `cat /usr/local/nagios/var/nrpe.pid`
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d


防火墙配置:(打开TCP 5666端口)
iptables -I INPUT -p tcp --dport 5666 -j ACCEPT
iptables-save > /etc/sysconfig/iptables


关闭SELinux:
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config



#####
在Nagios服务器上,测试是否可以监控到被监控主机:
[root@redhat8 ~]# cd /usr/local/nagios/libexec/
[root@redhat8 libexec]# ./check_nrpe -H 192.168.168.130
NRPE v3.2.1


检测PING:(可以测试任意主机)
[root@redhat8 libexec]# ./check_icmp 192.168.168.130
OK - 192.168.168.130: rta 0.170ms, lost 0%|rta=0.170ms;200.000;500.000;0; pl=0%;40;80;; rtmax=0.357ms;;;; rtmin=0.090ms;;;;

检测TCP端口:(可以测试任意主机)
[root@redhat8 libexec]# ./check_tcp 192.168.168.130 -p 22
TCP OK - 0.000 second response time on port 22|time=0.000441s;;;0.000000;10.000000

[root@redhat8 libexec]# ./check_tcp 192.168.168.130 -p 80
connect to address 192.168.168.130 and port 80: 没有到主机的路由



在Nagios服务器的Linux主机文件(localhost.cfg)里自定义主机、服务:(host_name无需与被监控主机的真实主机名一致)
[root@redhat8 ~]# vi /usr/local/nagios/etc/objects/localhost.cfg
文件后面追加:
define host{
    use     linux-server
    host_name   linux1
alias       Foshan_web1
address     192.168.168.130
    icon_image_alt                        Linux
    icon_image                            linux40.gif
    statusmap_image                       linux40.gd2
}

define service{
        use                             local-service
        host_name                      linux1
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
notifications_enabled  1
        }

define service{
        use                             local-service         
        host_name                       linux1
        service_description             Root Partition
        check_command                   check_local_disk!20%!10%!/
        }

define service{
        use                             local-service         
        host_name                       linux1
        service_description             Current Users
        check_command                   check_local_users!20!50
        }

define service{
        use                             local-service         
        host_name                       linux1
        service_description             Total Processes
        check_command                   check_local_procs!250!400!RSZDT
        }

define service{
        use                             local-service         
        host_name                       linux1
        service_description             Current Load
        check_command                   check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
        }

define service{
        use                             local-service         
        host_name                       linux1
        service_description             Swap Usage
        check_command                   check_local_swap!20!10
        }

define service{
       use         local-service
       host_name       linux1
       service_description Check Port TCP:22
       check_command       check_tcp!22 -t 5!
       notifications_enabled  1
       }

define service{
       use         local-service
       host_name       linux1
       service_description Check Port TCP:80
       check_command       check_tcp!80 -t 5!
       notifications_enabled  1
       }

备注:不同主机用主机名(host_name)进行区分,服务是跟主机名的。


启用localhost.cfg文件:
[root@redhat8 ~]# vi /usr/local/nagios/etc/nagios.cfg
默认就是开启的了:
# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg


验证配置是否正确:
[root@redhat8 ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
图片1.png


没有警告和错误,才能重启Nagios:
[root@redhat8 ~]# systemctl restart nagios


主机添加成功了:(是以PING的方式判断主机状态的)
图片2.png


查看主机的服务信息:
图片3.png
备注:此时被监控主机没有安装Web服务,状态信息:connect to address 192.168.168.130 and port 80: 没有到主机的路由


当被监控主机安装了Web服务,且TCP 80端口能正常对外提供服务时,状态信息:TCP OK - 0.001 second response time on 192.168.168.130 port 80
图片4.png


假如被监控主机的TCP 80端口不能用了,状态信息:connect to address 192.168.168.130 and port 80: 拒绝连接
图片5.png





相关文章:
Oracle Linux6.9安装Nagios
MySQL8.0使用Jemalloc

返回列表