准备两台服务器
我的所有安装都是源码安装,yum安装可能路径配置不一样
192.168.10.135
安装zabbix
192.168.10.139
被监控服务器
安装zabbix_agentd
安装nginx
zabbix安装
zabbix_agentd安装
Zabbix Agent编译安装
yum install -y gcc gcc-c++ make pcre-devel
useradd -s /sbin/nologin zabbix
cd /usr/local/src/
wget 'https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz'
tar -zxvf zabbix-4.0.3.tar.gz
cd zabbix-4.0.3
./configure --prefix=/usr/local/zabbix --enable-agent
make && make install
chown zabbix:zabbix -R /usr/local/zabbix/
环境变量配置
export PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/
进入vim /usr/local/zabbix/etc/zabbix_agentd.conf修改配置文件
PidFile=/usr/local/zabbix/zabbix_agentd.pid #可以使用默认的,不修改
LogFile=/usr/local/zabbix/zabbix_agentd.log #可以使用默认的,不修改
Hostname=主机名 #可以写本机被监控的ip地址
Server=监控服务器ip
ServerActive=监控服务器ip
UnsafeUserParameters=1 #开启zabbix-get可以检测
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
zabbix agent启动
/usr/local/zabbix/sbin/zabbix_agentd
nginx安装
需要安装nginx-status
源码安装
yum install -y wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel
cd /usr/local/src
yum install lrzsz -y
wget 'http://nginx.org/download/nginx-1.14.2.tar.gz'
tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make && make install
手动启动和关闭Nginx
Vim /etc/profile
环境变量:export PATH=$PATH:/usr/local/nginx/sbin/
Source /etc/profile
检查Nginx配置: nginx -t
启动Nginx:nginx
关闭Nginx:nginx -s stop
验证Nginx安装是否成功
查看进程 ps auxfw | grep nginx
查看监控端口 netstat -tulnp | grep nginx
nginx日志 logs/access.log
浏览器访问
修改配置文件
vim /usr/local/nginx/conf/nginx.conf
重启nginx
访问http://IP地址/nginx-status
编写zabbix监控nginx脚本
#!/bin/bash
#编写检查nginx服务器的脚本
#http和端口
HOST="192.168.10.139"
PORT="80"
#检测nginx进程是否存在
function ping(){
/sbin/pidof nginx | wc -l
}
#检测nginx的性能
#Active 链接数
function active(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | grep "Active" | awk '{print $NF}'
}
#accepts
function accepts(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | sed -n '3p' | awk '{print $1}'
}
#handled
function handled(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | sed -n '3p' | awk '{print $2}'
}
#requests
function requests(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | sed -n '3p' | awk '{print $3}'
}
#Reading
function Reading(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | grep "Reading" | awk '{print $2}'
}
#Writing
function Writing(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | grep "Writing" | awk '{print $4}'
}
#Waiting
function Waiting(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | grep "Waiting" | awk '{print $6}'
}
#执行function
$1
修改zabbix配置文件
/usr/local/zabbix/etc/zabbix_agentd.conf.d/下面创建mem.conf文件
UserParameter=nginx.status[*],sh /usr/local/zabbix/etc/check-nginx.sh $1
测试zabbix-get连通性
zabbix服务器监控模板
创建模板
模板里面创建监控项
监控查询