一、前置回顧
- zabbix作為一個分布式監控工具,能幫助我們7*24*365監控硬件使用情況(cpu,內存),以及網絡流量波動,從而能讓運維能及時排查錯誤
- zabbix由zabbix-server(10051)、zabbix-agent(10050)、zabbix-database、zabbix-proxy、zabbix-web五大組件組成,若需要進行其他客戶機的監控,其他監控機則需安裝zabbix-agent服務
- zabbix部署和排錯思路,并完成了客戶機的添加,服務機的圖表功能的使用,要在監控項的前提下添加圖表、同時完成了前置nginx服務監聽
二、知識補充
監測nginx端口使用情況,但是無法正常訪問其使用情況
解決方案:chmod u+s /usr/bin/netstat,其目的是讓其他用戶和root用戶權限一致并有同等的權限來訪問netstat命令
數據恢復正常!!!!
批量監控nginx指數
- 首先修改zabbix_agentd.conf配置文件
## $1作為環境輸入(process,port,word)
UserParameter=check_nginx_[*],/data/sh/check_nginx.sh $1# UserParameter=check_nginx_process,ps -ef | grep nginx | grep -v grep | wc -l
# UserParameter=check_nginx_port,netstat -tnlp | grep 80 | wc -l
# UserParameter=check_nginx_word,curl -s "http://10.0.0.6/index.html" | grep "Welcome" | wc -
- 完成check_nginx腳本的編寫=====>修改監控項的鍵值
#!/bin/bash
function process(){ps -ef | grep nginx | grep -v grep |grep -v check_nginx |wc -l
}
function port(){netstat -tnlp | grep 80 | wc -l
}
function word(){curl -s "http://10.0.0.6/index.html" | grep "Welcome" | wc -l
}$1
優化nginx運行狀態散亂情況
添加一個新的圖標,將監控項全部加入圖表
測試效果
監控windows系統
1.在window上部署zabbix_agentd環境
2.windows安裝zabbix_agentd監控
3.完成了windows的zabbix_agentd 配置后添加zabbix主機
添加完成后即可監控主機情況了
三、zabbix實現自動發現和注冊
自動發現
服務端主動掃描-----發起監控+配置
通過zabbix_discover讀取Rule規則,然后基于ICMP探測方式去掃描網段,若機器IP存活的話將其加入自動發現列表
完成自動發現規則的創建
長時間未檢測到主機機器,經過查詢日志發現缺少fping工具
yum -y install fping
出現了權限問題無法訪問
chmod?+s /usr/sbin/fping
訪問過慢可以增加進程數
發現需要監控的設備
配置發現動作
配置動作
配置操作
重啟zabbix服務
?/etc/init.d/zabbix_server restart
/etc/init.d/zabbix_agentd restart
若已經監控到發現機器之后,一定需要修改其他zabbix_agentd機器配置情況,就可直接以查找到被注冊發現的機器了
?
自動注冊
客戶端提前進行Agent 配置<--------->上報監控
- 創建自動注冊動作
- 創建觸發條件
- 配置動作信息
- 完成注冊發現
四、發送郵件告警
設置郵件告警
【場景】:假如Nginx宕機了,如何進行監控告警
- 針對部署Nginx機器創建觸發器
- Nginx觸發告警設置
- 檢查是否能正常告警
實現郵件轉發
- 找到媒介模塊
- 進行Email媒介相關配置
使用163郵箱進行發送
填寫郵箱密碼
填寫SMTP服務器地址:? smtp.163.com
選擇接收用戶
創建接收用戶
創建觸發器動作
配置觸發告警度條件------動作
配置該動作條件滿足后執行的操作-------操作
測試進行郵件發送
解決方案:安裝curl開發庫包:yum -y install curl-devel,并重新進行zabbix環境的編譯
完成環境的重新編譯(給server端安裝插件)
./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --with-libcurl
自定義郵件告警模板
重新編輯觸發器模板(恢復和操作時都可設置)
填寫告警模板
名稱:Action-Email
默認標題:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
默認信息:
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
檢查告警模板生效
檢查觸發日志
測試微信告警實戰
注冊企業微信
創建zabbix報警應用
企業ID
wwb790ba1d960b0da3
確定其AgentId、Secret、CorpID(企業ID)
配置可信IP
獲取微信報警工具
修改微信告警腳本
下載報警工具并解壓微信接口?:?wget http://dl.cactifans.org/tools/zabbix_weixin.x86_64.tar.gz
通過腳本發送郵箱(先修改配置文件)
?
拷貝配置文件到/etc/目錄下
cp weixincfg.json /etc/
使用微信腳本發送即可【前提要綁定好IP---->username 即發送的聯系人】
./weixin username?hello welcome to my world
拷貝腳本至zabbix_server目錄下
## 添加至zabbix服務中
mkdir -p /usr/local/zabbix/alertscripts
cd /usr/local/zabbix/alertscripts
mv weixin /usr/local/zabbix/alertscripts/
chmod o+x weixin
修改zabbix-servre配置文件
加入配置信息:AlertScriptsPath=/usr/local/zabbix/alertscripts
重啟腳本:/etc/init.d/zabbix_server restart
創建新的告警媒介
給用戶添加告警媒介
配置觸發器動作
完成以上配置后企業微信就能收到告警信息了
五、zabbix_proxy代理節點的配置
準備一個zabbix_proxy代理服務器
./configure --prefix=/usr/local/zabbix/ --enable-proxy --enable-agent --with-mysql --with-libcurl
- 編譯環境需準備工具
yum install curl-devel pre-devel gcc make
- 創建zabbix_server數據庫及用戶
## 在zabbix-srver機器上配置## 創建數據庫及用戶
create database zabbix_proxy character set utf8 collate utf8_bin;
create user zabbix_proxy@'%' identified by 'aaaAAA111.';
grant all privileges on zabbix_proxy.* to zabbix_proxy@'%';
alter user 'zabbix_proxy'@'%' identified with mysql_native_password by 'aaaAAA111.';
flush privileges;## 導入sql表信息
cd /root/zabbix-6.0.32/database/mysql/
mysql -uroot -p zabbix_proxy < schema.sql
修改zabbix_proxy配置文件
加入DBHost信息:DBHost=10.0.0.6
重啟zabbix_proxy服務
/usr/local/zabbix/sbin/zabbix_proxy
創建用戶
useradd zabbix
檢查服務進程
日志運行情況分析
添加代理
填寫代理信息
proxy程序已經正常啟動
給監測機器添加代理機器
修改被代理機器的agentd配置文件
測試結果如下