目录
前提准备:
zabbix-server主机配置:
1. 安装数据库
nginx主机配置:
1. 安装nginx
redis主机配置:
1. 安装redis
mysql主机配置:
1. 安装数据库
zabbix-server:
1. 安装zabbix
2. 编辑配置文件
zabbix-web:nginx
1. 添加nginx模板
创建模板
创建应用集
2. 创建监控项
配置nginx活跃连接数
配置监控Nginx客户端的连接数
配置监控Nginx等待下一次请求指令的驻留连接数
配置监控Nginx读取客户端的连接数
配置监控Nginx总共处理的请求数
配置监控Nginx接受的连接数
配置监控Nginx处理的连接数
配置监控Nginx开机启动
配置监控Nginx版本
配置监控Nginx进程数
3. 创建触发器
配置Nginx开机启动触发器
配置Nginx运行状态触发器
配置Nginx版本变化触发器-这里正常选值,然后手动修改为diff
4. 创建图形
配置Nginx线程状态图
5. nginx主机添加监控脚本
6. 添加ZabbixAgent配置,并重启ZabbixAgent
7. 添加nginx配置,创建监控URL
8. 在server上验证Nginx监控数值获取
9. 添加nginx客户端主机
10. 关联模板和主机
11. 结果验证
zabbix-web:redis
1. 创建Redis模板
2. 创建应用集
3. 创建redis监控项
监控Redis开机启动
监控redis版本
监控Redis是否宕机
监控Redis总连接数
监控Redis执行的操作命令总数
监控Redis最近一次存盘的状态
3. 创建redis触发器
redis开机启动触发器
redis宕机触发器
redis响应触发器-这里的值手动修改为nodata
4. 添加Redis图形
5. redis主机添加模板
6. server检查
7. 添加redis主机
8. 关联模板和主机
9. 结果验证
zabbix-web:mysql
1. mysql模板,默认就有无需创建
2. 配置mysql
3. 创建配置文件/etc/zabbix/.my.cnf以提供ZabbixAgent访问数据库
4. 修改监控配置文件/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf,将所有的 “/var/lib/zabbix”修改为当前.my.cnf文件的路径“/etc/zabbix”
5. server验证
6. 添加mysql主机
7. 关联模板和主机
8. 结果验证
前提准备:
1. 四台centos,其中110作为zabbix-server,120作为nginx,130作为redis,140作为mysql
我使用的zabbix版本是3.0的版本
所需要的rpm软件包我已上传,可自行查看下载使用
2. 全部关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/enforcing/disabled/' /etc/selinux/config && setenforce 0
3. 全部安装ntp
yum install -y ntp
systemctl start ntpd && systemctl enable ntpd
4. 全部安装zabbix所需要的yum源
rpm -ivh epel-release-latest-7.noarch.rpm
rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
5. 主机名称
hostnamectl set-hostname zabbix-server && bash
hostnamectl set-hostname nginx && bash
hostnamectl set-hostname redis && bash
hostnamectl set-hostname mysql && bash
6. hosts记录
cat >> /etc/hosts <<EOF
192.168.180.110 zabbix-server
192.168.180.120 nginx
192.168.180.130 redis
192.168.180.140 mysql
EOF
zabbix-server主机配置:
1. 安装数据库
yum install -y mariadb-server
systemctl start mariadb && systemctl enable mariadb
#登录
mysql
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
USE mysql;
UPDATE mysql.user SET password=PASSWORD('zabbix') WHERE user='root';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'localhost' IDENTIFIED BY 'zabbix';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'%' IDENTIFIED BY 'zabbix';
GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;
quit;
//设置root账户密码为
'zabbix' UPDATE mysql.user SET password=PASSWORD('zabbix') WHERE user='root';
//授权zabbix账户使用密码'zabbix'本地访问zabbix数据库
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'localhost' IDENTIFIED BY 'zabbix';
//授权zabbix账户使用密码'zabbix'远程访问zabbix数据库
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'%' IDENTIFIED BY 'zabbix';
//授权zabbix账户使用密码'zabbix'本地访问zabbix_proxy数据库
GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
//授权zabbix账户使用密码'zabbix'远程访问zabbix_proxy数据库
GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
nginx主机配置:
1. 安装nginx
yum install -y nginx
systemctl start nginx && systemctl enable nginx
redis主机配置:
1. 安装redis
yum install -y redis
systemctl start redis && systemctl enable redis
mysql主机配置:
1. 安装数据库
yum install -y mariadb-server
systemctl start mariadb && systemctl enable mariadb
zabbix-server:
1. 安装zabbix
yum install -y zabbix-server-mysql-3.2.11 zabbix-web-mysql-3.2.11
#初始化数据库:输入zabbix
zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | mysql -uzabbix -p zabbix
2. 编辑配置文件
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
systemctl start zabbix-server && systemctl enable zabbix-server
3. 安装nginx和php-fpm
yum install -y nginx php-fpm
#编辑nginx文件
vim /etc/nginx/nginx.conf
index index.html index.php;
location ~\.php$ {
fastcgi_buffer_size 128k;
fastcgi_buffers 32 32k;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
}
#编辑php文件:修改值
vim /etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
upload_max_filesize = 2M
date.timezone = Asia/Shanghai
cp -rp /usr/share/zabbix/ /usr/share/nginx/html/
systemctl start nginx php-fpm
systemctl enable nginx php-fpm
zabbix-web:nginx
1. 添加nginx模板
创建模板
创建应用集
2. 创建监控项
配置nginx活跃连接数
配置监控Nginx客户端的连接数
配置监控Nginx等待下一次请求指令的驻留连接数
配置监控Nginx读取客户端的连接数
配置监控Nginx总共处理的请求数
配置监控Nginx接受的连接数
配置监控Nginx处理的连接数
配置监控Nginx开机启动
配置监控Nginx版本
配置监控Nginx进程数
3. 创建触发器
配置Nginx开机启动触发器
配置Nginx运行状态触发器
配置Nginx版本变化触发器-这里正常选值,然后手动修改为diff
4. 创建图形
配置Nginx线程状态图
5. nginx主机添加监控脚本
yum install -y zabbix-agent
systemctl enable zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
#编写nginx监控脚本
mkdir /etc/zabbix/scripts
vim /etc/zabbix/scripts/nginx-check.sh
#!/bin/bash
#Zabbix requested parameter
ZBX_REQ_DATA="$1"
ZBX_REQ_DATA_URL="$2"
#Nginx defaults
#设置Nginx监控URL
NGINX_STATUS_DEFAULT_URL="http://localhost:10080/nginx_status"
#定义监控工具
WGET_BIN="/usr/bin/wget"
#
#设置错误返回值
# - 能够在Zabbix中展示(避免NOT_SUPPORTED)
#
ERROR_NO_ACCESS_FILE="-0.9900"
ERROR_NO_ACCESS="-0.9901"
ERROR_WRONG_PARAM="-0.9902"
#either can not connect /bad host /bad port
ERROR_DATA="-0.9903"
#如果没有设定URL则取默认值
if [ ! -z "$ZBX_REQ_DATA_URL" ];then
URL="$ZBX_REQ_DATA_URL"
else
URL="$NGINX_STATUS_DEFAULT_URL"
fi
#将nginx状态数据存入变量中
NGINX_STATS=$($WGET_BIN -q $URL -O - 2>/dev/null)
#处理访问过程中的错误
if [ $? -ne 0 -o -z "$NGINX_STATS" ]; then
echo $ERROR_DATA
exit 1
fi
#
#获取nginx状态数据中的特定数值(即zabbix模板中添加的监控项)
#
case $ZBX_REQ_DATA in
active_connections)
echo "$NGINX_STATS" | head -1 | cut -f3 -d' '
;;
accepted_connections)
echo "$NGINX_STATS" | grep -Ev '[a-zA-Z]' | cut -f2 -d' '
;;
handled_connections)
echo "$NGINX_STATS" | grep -Ev '[a-zA-Z]' | cut -f3 -d' '
;;
handled_requests)
echo "$NGINX_STATS" | grep -Ev '[a-zA-Z]' | cut -f4 -d' '
;;
reading)
echo "$NGINX_STATS" | tail -1 | cut -f2 -d' '
;;
writing)
echo "$NGINX_STATS" | tail -1 | cut -f4 -d' '
;;
waiting)
echo "$NGINX_STATS" | tail -1 | cut -f6 -d' '
;;
*)
echo $ERROR_WRONG_PARAM;
exit 1
;;
esac
exit 0
chmod +x /etc/zabbix/scripts/nginx-check.sh
6. 添加ZabbixAgent配置,并重启ZabbixAgent
vim /etc/zabbix/zabbix_agentd.d/nginx.conf
UserParameter=nginx[*],/etc/zabbix/scripts/nginx-check.sh "$1" "$2"
systemctl restart zabbix-agent
7. 添加nginx配置,创建监控URL
vim /etc/nginx/conf.d/nginx-status.conf
server {
listen 10080;
server_name _;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
systemctl restart nginx
8. 在server上验证Nginx监控数值获取
rpm -ivh zabbix-get-3.2.11-1.el7.x86_64.rpm
zabbix_get -s 192.168.180.120 -k nginx[active_connections]
9. 添加nginx客户端主机
10. 关联模板和主机
11. 结果验证
zabbix-web:redis
1. 创建Redis模板
2. 创建应用集
3. 创建redis监控项
监控Redis开机启动
监控redis版本
监控Redis是否宕机
监控Redis总连接数
监控Redis执行的操作命令总数
监控Redis最近一次存盘的状态
3. 创建redis触发器
redis开机启动触发器
redis宕机触发器
redis响应触发器-这里的值手动修改为nodata
4. 添加Redis图形
5. redis主机添加模板
yum install -y zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent && systemctl enable zabbix-agent
vim /etc/zabbix/zabbix_agentd.d/redis.conf
UserParameter=redis[*],redis-cli info | grep $1":" | cut -d ':' -f 2
UserParameter=redis.version, redis-server --version | cut -d " " -f 3 | cut -
d "=" -f 1
systemctl restart zabbix-agent
6. server检查
zabbix_get -s 192.168.180.130 -k redis[total_commands_processed]
7. 添加redis主机
8. 关联模板和主机
9. 结果验证
zabbix-web:mysql
1. mysql模板,默认就有无需创建
2. 配置mysql
#创建MySQL监控账户
GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY '654321';
FLUSH PRIVILEGES;
yum install -y zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent && systemctl enable zabbix-agent
3. 创建配置文件/etc/zabbix/.my.cnf以提供ZabbixAgent访问数据库
vim /etc/zabbix/.my.cnf
# Zabbix Agent
[mysql]
host=localhost
user=zabbix
password=654321
[mysqladmin]
host=localhost
user=zabbix
password=654321
4. 修改监控配置文件/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf,将所有的 “/var/lib/zabbix”修改为当前.my.cnf文件的路径“/etc/zabbix”
sed -i 's/\/var\/lib\/zabbix/\/etc\/zabbix/g' /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
systemctl restart zabbix-agent
5. server验证
zabbix_get -s 192.168.180.140 -k mysql.status[Com_begin]
6. 添加mysql主机
7. 关联模板和主机
8. 结果验证
到此实验结束⭐