目錄
前提準備:
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=zabbixsystemctl 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/Shanghaicp -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" ];thenURL="$ZBX_REQ_DATA_URL"
elseURL="$NGINX_STATUS_DEFAULT_URL"
fi#將nginx狀態數據存入變量中
NGINX_STATS=$($WGET_BIN -q $URL -O - 2>/dev/null)
#處理訪問過程中的錯誤
if [ $? -ne 0 -o -z "$NGINX_STATS" ]; thenecho $ERROR_DATAexit 1
fi
#
#獲取nginx狀態數據中的特定數值(即zabbix模板中添加的監控項)
#
case $ZBX_REQ_DATA inactive_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 0chmod +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.confsystemctl start zabbix-agent && systemctl enable zabbix-agentvim /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 1systemctl 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.confsystemctl 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. 結果驗證
到此實驗結束?