Zabbix是一個高度集成的企業級開源網絡監控解決方案,與Cacti、Nagios相似,提供分佈式監控以及集中的Web管理界面。被監控對象只要支持SNMP協議或者運行Zabbix_agents代理程序便可。Zabbix具有常見商業監控軟件所具有的功能:主機性能監控、網絡設備性能監控、數據庫性能監控、ftp等等通用協議的監控,可以利用靈活的可定製警告機制,容許用戶對事件發送基於E-mail的警告,能夠保證相關維護人員對問題做出快速響應,還能夠利用存儲數據提供傑出的報表及實時的圖形化數據處理,實現對Linux、Windows主機的7*24小時集中監控,監控的項目可包括CPU、內存、磁盤、網卡流量、服務可用性等各類資源。php
zabbix服務器:192.168.10.128 linux客戶機:192.168.10.142
爲訪問Zabbix的web頁面html
yum install -y \ httpd \ mariadb-server mariadb \ php \ php-mysql \ php-gd \ libjpeg* \ php-ldap \ php-odbc \ php-pear \ php-xml \ php-xmlrpc \ php-mhash //安裝lamp
vim /etc/httpd/conf/httpd.conf ServerName www.xxy.com //域名 DirectoryIndex index.html index.php //支持PHP首頁
vi /etc/php.ini date.timezone = PRC //設置中國時區
systemctl stop firewalld.service setenforce 0 //關閉防火牆及SElinux systemctl start httpd.service systemctl start mariadb.service //開啓httpd及數據庫服務 mysql_secure_installation //數據庫配置 netstat -ntap | egrep '(80|3306)' //查看80及3306端口
vim /var/www/html/index.php <?php phpinfo(); ?> http://192.168.10.128/ //瀏覽器輸入測試
mysql -u root -p CREATE DATABASE zabbix character set utf8 collate utf8_bin; //建立zabbix數據庫,並設置字符集 GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123'; //任何主機上都使用zabbix管理全部庫與表,密碼爲admin123 flush privileges;
修改首頁文件,改成以下內容mysql
vim /var/www/html/index.php <?php $link=mysql_connect('192.168.10.128','zabbix','admin123'); if($link) echo "<h1>Success!!</h1>"; else echo "Fail!!"; mysql_close(); ?> http://192.168.10.128/ //瀏覽器輸入測試
yum install php-bcmath php-mbstring -y rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm //會自動生成yum源文件,須要在聯網狀態 yum install zabbix-server-mysql zabbix-web-mysql -y
zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p zabbix //生成數據庫文件,密碼爲admin123
grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf 38:LogFile=/var/log/zabbix/zabbix_server.log 49:LogFileSize=0 72:PidFile=/var/run/zabbix/zabbix_server.pid 82:SocketDir=/var/run/zabbix 101:DBName=zabbix 117:DBUser=zabbix 125:DBPassword=admin123 //只修改本行,其他不用修改 356:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log 474:Timeout=4 517:AlertScriptsPath=/usr/lib/zabbix/alertscripts 528:ExternalScripts=/usr/lib/zabbix/externalscripts 564:LogSlowQueries=3000
vim /etc/zabbix/zabbix_server.conf DBPassword=admin123
vim /etc/httpd/conf.d/zabbix.conf //修改時區 php_value date.timezone Asia/Shanghai
vim /usr/share/zabbix/include/defines.inc.php //修正圖表中文亂碼 :%s /graphfont/simkai/g 將本來graphfont字體替換成simkai字體 從微軟系統下複製相應的字體文件到 /usr/share/zabbix/fonts 目錄中,注意字體名稱要對應配置文件,且注意大小寫 cp simkai.ttf /usr/share/zabbix/fonts/
systemctl enable zabbix-server systemctl start zabbix-server netstat -anpt | grep zabbix //監聽在10051端口上 systemctl restart httpd.service
http://192.168.10.128/zabbix/ //安裝後登陸 用戶名Admin 密碼:zabbix
設置中文環境:Administrator-Users-點擊用戶-語言中設置linux
配置被控服務器,若是服務器也須要被本身監控也須要安裝zabbix-agentios
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm //安裝yum源 yum install -y zabbix-agent
grep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf 13:PidFile=/var/run/zabbix/zabbix_agentd.pid 32:LogFile=/var/log/zabbix/zabbix_agentd.log 43:LogFileSize=0 98:Server=192.168.175.155 139:ServerActive=192.168.175.155 150:Hostname=test 268:Include=/etc/zabbix/zabbix_agentd.d/*.conf
syatemctl stop firewalld.service setenforce 0 systemctl enable zabbix-agent.service systemctl restart zabbix-agent.service netstat -anpt | grep zabbix //監聽在10050端口
web頁面上操做步驟:配置→主機→建立主機
模板頁須要連接模板,根據須要連接相應的模板,這裏我添加了sshd和httpd兩個服務web
yum -y install mailx
vi /etc/mail.rc //注意網易郵箱須要開啓客戶端受權碼進行第三方登陸 #文件末尾添加 set from=131********@139.com //實際不是*號 set smtp=smtp.139.com set smtp-auth-user=131********@139.com set smtp-auth-password=郵箱密碼 set smtp-auth=login
echo "hello world" | mail -s "testmail" 131********@139.com //測試發信是否正常
cd /usr/lib/zabbix/alertscripts vi mailx.sh //編寫發郵件腳本 #!/bin/bash #send mail messages=`echo $3 | tr '\r\n' '\n'` subject=`echo $2 | tr '\r\n' '\n'` echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1 touch /tmp/mailx.log //建立日誌文件 chown -R zabbix.zabbix /tmp/mailx.log //設置日誌文件屬主屬組 chmod +x /usr/lib/zabbix/alertscripts/mailx.sh //給發郵件腳本執行權限 chown -R zabbix.zabbix /usr/lib/zabbix/ //設置/usr/lib/zabbix/目錄屬主屬組
./mailx.sh 131********@139.com "主題" "內容" //測試發郵件腳本是否能夠正常工做 ./mailx.sh 131********@139.com "test" "this is test"
在zabbix服務器web頁面上配置sql
管理→報警媒體類型→建立媒體類型 名稱:Mail-Test 類型:腳本 腳本名稱:mailx.sh 腳本參數: //新增如下三個參數 {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
管理→用戶→點擊Admin→報警媒介 類型:Mail-Test //調用上面設置的腳本 收件人:131********@139.com 其它默認保存
配置→動做→建立動做→刪除默認標籤,修改觸發條件 名稱:Mailx 條件 A 主機羣組=Linux servers
操做→以下配置 默認操做步驟持續時間 60 默認標題: {TRIGGER.STATUS}:{TRIGGER.NAME} 消息內容: 告警主機:{HOST.NAME} 告警 IP:{HOST.IP} 告警時間:{EVENT.DATE}-{EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警信息:{TRIGGER.NAME}:{ITEM.VALUE} 事件 ID:{EVENT.ID} 操做細節: 步驟:1-3 步驟持續時間:60 操做類型:發送消息 發送到用戶:Admin (Zabbix Administrator) 僅送到:Mail-Test //必定要配置不然郵件發送不成功
恢復操做→以下配置 默認標題:{TRIGGER.STATUS}:{TRIGGER.NAME} 消息內容: 恢復主機:{HOST.NAME} 恢復 IP:{HOST.IP} 恢復時間:{EVENT.DATE}-{EVENT.TIME} 恢復等級:{TRIGGER.SEVERITY} 恢復信息:{TRIGGER.NAME}:{ITEM.VALUE} 恢復 ID:{EVENT.ID} 操做細節: 操做類型:發送消息 發送到用戶:Admin (Zabbix Administrator) 僅送到:Mail-Test //必定要配置不然郵件發送不成功
添加完成數據庫
systemctl restart zabbix-server //zabbix服務端重啓zabbix-server systemctl restart zabbix-agent.service //linux客戶端重啓zabbix-agent.service
#能夠在被控主機上模擬相關參數超過閾值,如磁盤空間。而後驗證郵件收發。 systemctl stop httpd.service //linux客戶端上開啓了httpd服務,現將其關閉,測試報警郵件的發送
正常監控頁面以下
被控端關閉httpd服務後出現問題
收到郵件提醒
被控端開啓httpd服務,顯示問題已解決
問題解決郵件提醒vim