目錄
一、理論
1.Zabbix監控Nginx
二、實驗
1.Zabbix監控Nginx部署
三、問題
1.重啟zabbix客戶端失敗
2.zabbix服務端測試客戶端nginx狀態失敗
?3.nginx啟動失敗
?4.權限不夠
一、理論
1.Zabbix監控Nginx
(1)環境
zabbix服務端:192.168.204.214
zabbix客戶端:192.168.204.215
(2)客戶端安裝nginx(yum方式)
#安裝epel擴展源,然后安裝nginx并啟動
yum install epel-release -yyum install nginx -ysystemctl start nginxsystemctl start nginx#修改nginx主頁內容,nginx01修改為nginx01 test,nginx02修改nginx02 testecho nginx01 test >/usr/share/nginx/html/index.html
(3)編輯nginx子配置文件
#直接在nginx子配置文件夾中創建一個新的子配置文件,因為是yum安裝無須在主配置文件中指定子配置文件
vim /etc/nginx/conf.d/upstream.conf文件內容:upstream nginxtest{server 192.168.204.215:8080;}#反向代理模塊,將2個tomcat的ip和端口號寫入其中,反代模塊名稱為nginxtest#server模塊中的第一個location模塊,指定了根為html,支持主頁文件類型三個,注意分號結尾location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {root /usr/share/nginx/html; }#server模塊中第二個location模塊,配置不區分大小寫的任意開頭只要以.()括號內的任意一個內容結尾則為靜態資源訪問/usr/share/nginx/html下的頁面location ~ .*\.jsp$ {proxy_pass http://nginxtest;proxy_set_header HOST $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}#server模塊中第三個location模塊,配置不區分大小寫的任意開頭只要.jsp結尾就由nginx反向代理模塊nginxtest進行處理
在server{}中添加以下內容
ocation /nginx_status
{
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
(3)重載nginx配置
nginx -s reload
(4)測試
curl http://127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests1 1 1
Reading: 0 Writing: 1 Waiting: 0
nginx狀態信息已顯示
(5) 添加監控腳本
vim /usr/local/sbin/ngx_status.sh
添加權限
chmod 777 /usr/local/sbin/ngx_status.sh
(6)編輯zabbix_agent配置文件
vim zabbix_agent2.conf 在Option:UserParameter處添加:UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1
(7)選擇模板
第一種方法:選擇官方模板
配置-主機-模板-Template App NGINX
第二種方法:導入模板
在zabbix前端頁面點擊配置→模板→導入
導入剛才創建的xml文件即可 導入成功后在主機列表頁面選擇被監控的機器(客戶端)鏈接該模板即可開始監控nginx
二、實驗
1.Zabbix監控Nginx部署
(1)安裝、編輯nginx子配置文件夾創建文件
依賴包
安裝
?
?
直接在nginx子配置文件夾中創建一個新的子配置文件,因為是yum安裝無須在主配置文件中指定子配置文件
在server{}中添加以下內容
?(2)腳本
授權(應授權777)
(3)客戶端測試nginx狀態
(3)修改配置文件
(4)服務器端測試
?(5)導入模板
選擇官方模板
導入自定義模板
?(3)訪問網頁
?觀察變化
三、問題
1.重啟zabbix客戶端失敗
(1)報錯
?(2)原因分析
命令錯誤
(3)解決方法
用正確命令
[root@zbx-agent01 zabbix]# systemctl restart zabbix-agent2
[root@zbx-agent01 zabbix]# netstat -natp | grep zabbix
tcp6 0 0 :::10050 :::* LISTEN 4715/zabbix_agent2
2.zabbix服務端測試客戶端nginx狀態失敗
(1)報錯
?(2)原因分析
zabbix server監聽全網地址,agent監聽內網地址
把zabbix_agentd.conf中 的server把zabbix_server的公網和內網地址都加行。然后agent就可以正常獲取到值了;
修改客戶端配置文件監聽的主服務器地址,并取消反向代理
vim /etc/zabbix/zabbix_agent2.conf
?zabbix服務器網頁重新配置
?
?3.nginx啟動失敗
(1)報錯
?(2)原因分析
檢查
?
location模塊放錯位置
?(3)解決方法
locaton塊放在server塊中
?4.權限不夠
(1)報錯
?(2)原因分析
未有效授權
(3)解決方法
增加權限
[root@zbx-agent01 tmp]# chmod 777 /usr/local/sbin/ngx_status.sh