Zabbix是一個高度集成的企業級開源網絡監控解決方案,與Caci、 Nagios相似,提供分佈式監控以及集中的Web管理界面。被監控對象只要支持SNMP協議或者運行Zabbix_agents代理程序便可,Zabbix的官方網址爲http://www.zabbix.com/ 軟件能夠自由下載使用。
補充:
SNMP協議:簡單網絡管理協議(SNMP),由一組網絡管理的標準組成,包含一個應用層協議(application layer protocol)、數據庫模型(database schema)和一組資源對象。該協議可以支持網絡管理系統,用以監測鏈接到網絡上的設備是否有任何引發管理上關注的狀況。該協議是互聯網工程工做小組(IETF,Internet Engineering Task Force)定義的internet協議簇的一部分。SNMP的目標是管理互聯網Internet上衆多廠家生產的軟硬件平臺,所以SNMP受Internet標準網絡管理框架的影響也很大。SNMP已經出到第三個版本的協議,其功能較之前已經大大地增強和改進了。php
-html
Zabbix具有常見商業監控軟件所具有的功能:mysql
- 主機性能監控
- 網絡設備性能監控
- 數據庫性能監控
- ftp等通用協議的監控
- 可以利用靈活的可定製警告機制
- 容許用戶對事件發送基於 E-mail的警告,能夠保證相關維護人員對問題作出快速響應
- 能夠利用存儲數據提供傑出的報表及實時的圖形化數據處理,實現對 Linux、 Windows主機的7×24小時集中監控
- 監控的項目可包括CPU、內存、磁盤、網卡流量、服務可用性等各類資源。
-ios
Zabbix監控組件主要由三大組件,分別是ZabbixServer端、Zabbix Proxy、Agent客戶端,其中ZabbixServer端包括:WEB GUI、Database、Zabbix_Server
Zabbix經過C/S模型來收集數據,經過B/S模型模式在web端展現和進行配置。
Agent被監控端:主機設備經過安裝agent收集數據併發送給server端,網絡設備經過SNMP收集數據併發送給server端。
Server監控端:經過收集SNMP和agent發送來的數據,將數據寫入到後臺數據庫中(例如:mysql,oracle),在經過web展現出來。
web
主機 | 操做系統 | IP地址 | 主要軟件 |
---|---|---|---|
Zabbix服務器 | Centos 7 | 192.168.100.128 | Zabbix軟件包 |
Linux客戶機 | Centos 7 | 192.168.100.130 | Zabbix軟件包 |
Zabbix軟件包:
百度網盤連接:https://pan.baidu.com/s/1MtfnTCgiP5tl2M6Jf0793Q 密碼:mny1 sql
#Zabbix服務器 和客戶機 關閉防火牆 [root@zabbix ~]# systemctl stop firewalld.service [root@zabbix ~]# setenforce 0 (必定要關,不然Zabbix起不來)
[root@zabbix ~]# 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
[root@zabbix ~]# vi /etc/httpd/conf/httpd.conf
[root@zabbix ~]# vi /etc/php.ini date.timezone = PRC //設置中國時區=PRC
[root@zabbix ~]# systemctl start httpd.service [root@zabbix ~]# systemctl start mariadb.service [root@zabbix ~]# netstat -ntap | egrep '(80|3306)'
[root@zabbix ~]# mysql_secure_installation
[root@zabbix ~]# 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; #刷新一下
[root@zabbix ~]# vi /var/www/html/index.php #建立一個文件,測試下PHP基本信息 <?php phpinfo(); ?> #編寫完成後保存退出,輸入Zabbix服務器地址測試PHP
[root@zabbix ~]# vi /var/www/html/index.php #從新建立測試文件,測試是否能鏈接mysql數據庫 <?php $link=mysql_connect('192.168.100.128','zabbix','admin123'); if($link) echo "<h1>Success!!</h1>"; else echo "Fail!!"; mysql_close(); ?> #編寫完成後保存退出,輸入Zabbix服務器地址測試PHP ( 若是鏈接數據庫成功則輸出Success!! )
[root@zabbix ~]# yum install php-bcmath php-mbstring -y
[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm //會自動生成yum源文件,但須要保證系統能夠上網
[root@zabbix ~]# yum install zabbix-server-mysql zabbix-web-mysql -y
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p zabbix //生成數據庫文件,注意密碼不要輸成root的。
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
[root@zabbix ~]# 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 //修改本行 347:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log 465:Timeout=4 507:AlertScriptsPath=/usr/lib/zabbix/alertscripts 517:ExternalScripts=/usr/lib/zabbix/externalscripts 553:LogSlowQueries=3000
[root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf //修改時區 php_value date.timezone Asia/Shanghai //修改成上海時區
[root@zabbix ~]# vim /usr/share/zabbix/include/defines.inc.php //修正圖表中文亂碼 :%s /graphfont/kaiti/g //進行所有字體替換。從微軟系統下複製相應的字體文件到 /usr/share/zabbix/fonts 目錄中注意字體名稱要對應配置文件,且注意大小寫
Zabbix軟件包:
百度網盤連接:https://pan.baidu.com/s/1MtfnTCgiP5tl2M6Jf0793Q 密碼:mny1 數據庫
[root@zabbix ~]# yum install lrzsz -y [root@zabbix ~]# rz #裝好以後直接使用命令 rz 能夠在windows 和Linux之間傳文件,文件掛載在當前目錄下。
[root@zabbix ~]# cp STKAITI.TTF /usr/share/zabbix/fonts/
[root@zabbix ~]# systemctl enable zabbix-server //設置開機自啓動 [root@zabbix ~]# systemctl start zabbix-server [root@zabbix ~]# netstat -anpt | grep zabbix //監聽在10051端口上
-------------解決本地沒法登陸問題(可忽略)---------------------------vim
[root@zabbix ~]# mysql -uroot -p //root身份登陸數據庫 select user,host from mysql.user; //有空用戶名稱佔用致使本地沒法登陸遠程可登陸 +--------+-----------+ | user | host | +--------+-----------+ | zabbix | % | | root | 127.0.0.1 | | root | ::1 | | | cacti | | root | cacti | | | localhost | | root | localhost | +--------+-----------+ drop user ''@localhost; drop user ''@cacti; flush privileges;
[root@zabbix ~]# systemctl restart httpd.service http://192.168.100.128/zabbix/ //安裝後登陸 用戶名Admin 密碼:zabbix
[root@zabbix ~]# systemctl stop firewalld.service [root@zabbix ~]# systemctl disable firewalld.service [root@zabbix ~]# setenforce 0
[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
[root@zabbix ~]# yum install -y zabbix-agent
[root@zabbix ~]# vim /etc/zabbix/zabbix_agentd.conf
[root@zabbix ~]# 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.100.128 139:ServerActive=192.168.100.128 150:Hostname=test 268:Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@zabbix ~]# systemctl enable zabbix-agent.service [root@zabbix ~]# systemctl restart zabbix-agent.service
[root@zabbix ~]# netstat -anpt | grep 10050 //監聽在10050端口
配置-主機-建立主機:windows
主機頁面根據需求配置
模板頁須要連接模板,根據須要連接相應的模板
0Kbash
問題分析: 從問題上來看,是主機在ping客戶端時解析不了主機名 解決辦法: 在/etc/hosts當中添加一條記錄 192.168.100.130 zabbix.server 保存後問題解決了,再也沒有那麼多報警郵件。
[root@zabbix ~]# yum install mailx -y
[root@zabbix ~]# vim /etc/mail.rc //注意網易郵箱須要開啓客戶端受權碼進行第三方登陸 ----文件末尾新增--- set from=446017502@qq.com set smtp=smtp.qq.com //郵箱域名 set smtp-auth-user=446017502@qq.com set smtp-auth-password=第三方受權碼 set smtp-auth=login
QQ郵箱生成第三方受權碼操做:
https://jingyan.baidu.com/article/4b07be3cb2f74148b380f3e4.html
[root@zabbix ~]# echo "hello world" | mail -s "testmail" 446017502@qq.com //測試發信正常
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix ~]# 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/mail.log 2>&1
[root@zabbix ~]# touch /tmp/mail.log [root@zabbix ~]# chown -R zabbix.zabbix /tmp/mail.log [root@zabbix ~]# chmod +x /usr/lib/zabbix/alertscripts/mail.sh [root@zabbix ~]# chown -R zabbix.zabbix /usr/lib/zabbix/
[root@zabbix ~]# ./mail.sh 446017502@qq.com "yunjisuan" "zabbix test" //測試發郵件腳本是否能夠正常工做