防僞碼:他日若遂凌雲志 敢笑黃巢不丈夫php
操做系統html |
CentOS Linux release 7.5.1804 (Core)前端 |
Nginxnode |
nginx/1.16.1mysql |
PHPlinux |
7.2.24 ios |
MYSQL | 5.7.2nginx |
Zabbix | 5.0.2web |
第一章 zabbix監控sql
1.1 爲何要監控
在須要的時刻,提早提醒咱們服務器出問題了
當出問題以後,能夠找到問題的根源
網站/服務器 的可用性
1.1.1 網站可用性
在軟件系統的高可靠性(也稱爲可用性,英文描述爲HA,High Available)裏有個衡量其可靠性的標準——X個9,這個X是表明數字3~5。X個9表示在軟件系統1年時間的使用過程當中,系統能夠正常使用時間與總時間(1年)之比,咱們經過下面的計算來感覺下X個9在不一樣級別的可靠性差別。
1個9:(1-90%)*365=36.5天,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是36.5天
2個9:(1-99%)*365=3.65天 , 表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是3.65天
3個9:(1-99.9%)*365*24=8.76小時,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是8.76小時。
4個9:(1-99.99%)*365*24=0.876小時=52.6分鐘,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是52.6分鐘。
5個9:(1-99.999%)*365*24*60=5.26分鐘,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是5.26分鐘。
6個9:(1-99.9999%)*365*24*60*60=31秒, 示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是31秒
1.2 監控什麼東西
監控一切須要監控的東西,只要可以想到,可以用命令實現的都能用來監控
1.3 怎麼來監控
1.3.1 遠程管理服務器
若是想遠程管理服務器就有遠程管理卡,好比Dell idRAC,HP ILO,IBM IMM
1.3.2監控硬件
查看硬件的溫度/風扇轉速,電腦有魯大師,服務器就有ipmitool。
使用ipmitool實現對服務器的命令行遠程管理
yum -y install OpenIPMI ipmitool ->IPMI在物理機能夠成功,虛擬機不行 [root@KVM ~] ipmitool sdr type Temperature Temp | 01h | ns | 3.1 | Disabled Temp | 02h | ns | 3.2 | Disabled Temp | 05h | ns | 10.1 | Disabled Temp | 06h | ns | 10.2 | Disabled Ambient Temp | 0Eh | ok | 7.1 | 22 degrees C Planar Temp | 0Fh | ns | 7.1 | Disabled IOH THERMTRIP | 5Dh | ns | 7.1 | Disabled CPU Temp Interf | 76h | ns | 7.1 | Disabled Temp | 0Ah | ns | 8.1 | Disabled Temp | 0Bh | ns | 8.1 | Disabled Temp | 0Ch | ns | 8.1 | Disabled
|
1.3.3 查看cpu相關
lscpu、uptime、top、htop vmstat mpstat 其中htop須要安裝,安裝依賴與epel源。 [znix@clsn ~]$lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1
|
1.3.4 內存夠不夠能夠用
free [znix@clsn ~]$free -h total used free shared buffers cached Mem: 996M 867M 128M 712K 145M 450M -/+ buffers/cache: 271M 725M Swap: 1.0G 0B 1.0G
|
1.3.5 磁盤剩多少寫的快不快能夠用
df、dd、iotop [znix@clsn ~]$df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 24G 15G 62% / tmpfs 499M 20K 499M 1% /dev/shm /dev/vdb1 20G 4.4G 15G 24% /data
|
1.3.6 監控網絡
iftop 監控主機間流量 -i 指定監控網卡 nethogs 監控進程流量 |
1.4 監控工具總覽
mrtg 流量監控出圖
nagios 監控
cacti 流量監控出圖
zabbix 監控+出圖
1.5 zabbix介紹
Zabbix 是由 Alexei Vladishev 開發的一種網絡監視、管理系統,基於 Server-Client 架構。可用於監視各類網絡服務、服務器和網絡機器等狀態。
使用各類 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 儲存資料。Server 端基於 C語言、Web 管理端 frontend 則是基於 PHP 所製做的。Zabbix 可使用多種方式監視。能夠只使用 Simple Check 不須要安裝 Client 端,亦可基於 SMTP 或 HTTP ... 各類協定作死活監視。
在客戶端如 UNIX, Windows 中安裝 Zabbix Agent 以後,可監視 CPU Load、網絡使用情況、硬盤容量等各類狀態。而就算沒有安裝 Agent 在監視對象中,Zabbix 也能夠經由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 對目標進行監視。
另外,Zabbix 包含 XMPP 等各類 Item 警示功能。
1.5.1 zabbix的組成
zabbix官網: https://www.zabbix.com
zabbix 主要由2部分構成 zabbix server和 zabbix agent
zabbix proxy是用來管理其餘的agent,做爲代理
1.5.2 zabbix監控範疇
硬件監控 :Zabbix IPMI Interface
系統監控 :Zabbix Agent Interface
Java 監控:ZabbixJMX Interface
網絡設備監摶:Zabbix SNMP Interface
應用服務監控:Zabbix Agent UserParameter
MySQL 數據庫監控:percona-monitoring-pldlgins
URL監控:Zabbix Web監控
第二章 安裝zabbix
2.1關閉防火牆
systemctl stop firewalld.service 中止firewalld服務 systemctl disable firewalld.service 設置開機默認不啓動 |
2.2關閉selinux
getenforce 查看狀態 vim /etc/sysconfig/selinux 開機不啓動 SELINUX=disabled 生產環境單獨在防火牆上開啓端口和策略 |
2.3安裝zabbix5.0源
2.3.1 安裝依賴
2.3.2安裝數據庫
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum clean all *清理yum緩存 |
2.4安裝zabbix5.0服務端和客戶端
yum install zabbix-server-mysql zabbix-agent 國外源安裝可能比較慢或者出錯,多試幾回 |
2.5安裝CentOS SCLo RH存儲庫:
yum install centos-release-scl 編輯配置文件 /etc/yum.repos.d/zabbix.repo [zabbix-frontend] ... Enabled=1 ... 安裝Zabbix前端包 yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl |
2.6安裝並配置數據庫
2.6.1安裝mysql5.7
安裝MySQL服務 yum install rh-mysql57-mysql rh-mysql57-mysql-server rh-mysql57-mysql-devel 配置MySQL服務 vim /etc/opt/rh/rh-mysql57/my.cnf character_set_server = utf8 vim /etc/profile export PATH=/opt/rh/rh-mysql57/root/bin:$PATH source /etc/profile 啓動服務 systemctl start rh-mysql57-mysqld |
2.6.2建立初始數據庫
mysql -uroot -p password mysql> create database zabbix character set utf8 collate utf8_bin; mysql> create user zabbix@localhost identified by 'Password@123.'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> quit; |
2.6.3導入初始架構和數據
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix 提示輸入的密碼爲:password |
2.6.4 Zabbix server配置數據庫
vim /etc/zabbix/zabbix_server.conf DBPassword=password DBSocket=/var/lib/mysql/mysql.sock |
2.7配置文件
2.8啓動Zabbix5.0
systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm rh-mysql57-mysqld |
2.9 配置Zabbix前端
第三章 基礎功能使用
3.1 Linux主機監控
linux主機的話仍是比較好處理的,不管是安裝agent代理程序仍是使用snmp,都是比較方便的
基礎配置:關閉selinux,關閉防火牆或者打開161端口。
3.1.1 安裝
yum install -y net-snmp |
3.1.1.1修改配置文件
vim /etc/snmp/snmpd.conf sec.name source community com2sec notConfigUser default public #社區名稱定義爲public view systemview included .1 #添加一個採集項.1,意味着能夠採集到全部mib tree的信息 view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1 |
3.1.3啓動服務
systemctl start snmpd.service netstat -lntup|grep 161 udp 0 0 0.0.0.0:161 0.0.0.0:* 6711/snmpd |
3.1.4在zabbix server上測試
snmpwalk -v 2c -c zabbix 222.29.77.167|wc -l 12235 #這裏取到了12235項 |
nmap端口掃描 yum install -y nmap nmap -sU 目標IP -p 161 |
3.1.5 添加Linux主機
配置——主機——建立主機——移除interface的客戶端——添加SNMP客戶端
——填寫主機名稱、可見名稱、羣組、IP地址,如圖所示:
點擊添加,而後等待1分鐘,等待圖標變成綠色即正常,如圖所示:
3.2 Web監控
經過zabbix作web監控,不只僅能夠監控到站點的響應時間,還能夠根據站點返回的狀態碼或響應時間作報警設置,好比說對某個url進行監控,當訪問返回的狀態碼是非200狀態時都報警(建立觸發器便可)。下面簡單介紹下監控設置
3.2.1 建立監控模板
點擊配置——模板——建立模板
3.2.2 建立web監控場景
監控網頁名稱便於本身區分
監控的URL地址
監控超時時間,根據本身相應業務動態調整頻率
要求返回的狀態碼,這裏返回200爲正常,非200報警
3.2.3 查看效果
3.2.4 建立觸發器
若是想要實現報警功能還須要咱們進行觸發器的設置
點擊剛纔建立的模塊Templates Web status,選擇觸發器,建立觸發器
3.3 Windows主機監控
3.3.1 安裝/打開snmp服務
3.3.2 關閉防火牆
這裏只是測試,實際生產環境環境,須要開放snmp端口161,或者對主機的固定IP進行放行。
3.3.3 配置snmp服務並將其重啓
如圖所示,192.168.249.142是我zabbix-server的IP,須要配置接受,上面是本地snmp的團體名,必須配置的與zabbix-server上的同樣,不然不能正常的收發數據。
3.3.4配置檢測
在server端使用命令檢測client的配置是否有問題:
沒法收集到數據: [root@localhost ~]# snmpwalk -v 2c -c zabbix 192.168.249.128 hrMemory Timeout: No Response from 192.168.249.128 正常狀況: [root@localhost ~]# snmpwalk -v 2c -c zabbix 192.168.249.128 hrMemory HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 2096632 KBytes snmpwalk命令依賴於:net-snmp-utils軟件包,若是提示找不到命令,安裝就行了:yum install net-snmp-utils -y,若是檢測不經過,則說明client配置有問題。 |
3.3.5 建立主機
SNMP綠色亮起,說明sever與client的交互沒有問題,ok,若是一直爲灰色,通常是團體名,既宏的配置有問題,檢查更改直到這個按鈕亮起。(在網絡沒有問題的前提下)