实验中,服务器的信息:
[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源,不需要连公网。
选择数据库版本:
设置数据库用户root@localhost的密码:(以下是把密码设置为 888 )
启用InnoDB Storage Engine,输入 Y 再按回车键:
选择PHP版本:
选择是否安装内存优化:
备注:Jemalloc、TCMalloc都是是内存分配器。
需要设置管理员邮箱,该邮箱会在报错时显示在错误页面上:
选择Apache的版本:
安装或取消安装:
下面是全自动安装的^_^ ^_^
安装成功了:(安装好后,最好重启一下服务器)
查看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/
查看主机状态:
报错信息:
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):
查看服务状态:
重启Nagios:
[root@redhat8 ~]# pkill -9 -U nagios
[root@redhat8 ~]#
[root@redhat8 ~]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
注释:重启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
没有警告和错误,才能重启Nagios:
[root@redhat8 ~]# systemctl restart nagios
主机添加成功了:(是以PING的方式判断主机状态的)
查看主机的服务信息:
备注:此时被监控主机没有安装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
假如被监控主机的TCP 80端口不能用了,状态信息:connect to address 192.168.168.130 and port 80: 拒绝连接
相关文章:
Oracle Linux6.9安装Nagios
MySQL8.0使用Jemalloc |