在須要的時刻,提早提醒咱們服務器出問題了php
當出問題以後,能夠找到問題的根源html
網站/服務器 的可用性node
在軟件系統的高可靠性(也稱爲可用性,英文描述爲HA,High Available)裏有個衡量其可靠性的標準——X個9,這個X是表明數字3~5。X個9表示在軟件系統1年時間的使用過程當中,系統能夠正常使用時間與總時間(1年)之比,咱們經過下面的計算來感覺下X個9在不一樣級別的可靠性差別。python
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秒
監控一切須要監控的東西,只要可以想到,可以用命令實現的都能用來監控mysql
若是想遠程管理服務器就有遠程管理卡,好比Dell idRAC,HP ILO,IBM IMMlinux
查看硬件的溫度/風扇轉速,電腦有魯大師,服務器就有ipmitool。ios
使用ipmitool實現對服務器的命令行遠程管理nginx
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
lscpu、uptime、top、htop vmstat mpstatgit
其中htop須要安裝,安裝依賴與epel源。github
[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 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 85 Model name: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz Stepping: 4 CPU MHz: 2494.150 BogoMIPS: 4988.30 Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 1024K L3 cache: 33792K NUMA node0 CPU(s): 0
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
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
iftop nethogs
iftop 監控主機間流量 -i 指定監控網卡 nethogs 監控進程流量
mrtg 流量監控出圖
nagios 監控
cacti 流量監控出圖
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 警示功能。
zabbix官網: https://www.zabbix.com
zabbix 主要由2部分構成 zabbix server和 zabbix agent
zabbix proxy是用來管理其餘的agent,做爲代理
² 硬件監控 :Zabbix IPMI Interface
² 系統監控 :Zabbix Agent Interface
² Java 監控:ZabbixJMX Interface
² 網絡設備監摶:Zabbix SNMP Interface
² 應用服務監控:Zabbix Agent UserParameter
² MySQL 數據庫監控:percona-monitoring-pldlgins
² URL監控:Zabbix Web監控
[root@m01 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@m01 ~]# uname -r 3.10.0-693.el7.x86_64 [root@m01 ~]# getenforce Disabled [root@m01 ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1)
編譯安裝 (服務較多,環境複雜)
yum安裝(乾淨環境)
使用yum 須要鏡像yum源 http://www.cnblogs.com/clsn/p/7866643.html
#!/bin/bash #clsn #設置解析 注意:網絡條件較好時,能夠不用自建yum源 # echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts #安裝zabbix源、aliyun YUM源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm #安裝zabbix yum install -y zabbix-server-mysql zabbix-web-mysql #安裝啓動 mariadb數據庫 yum install -y mariadb-server systemctl start mariadb.service #建立數據庫 mysql -e 'create database zabbix character set utf8 collate utf8_bin;' mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";' #導入數據 zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix #配置zabbixserver鏈接mysql sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf #添加時區 sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf #解決中文亂碼 yum -y install wqy-microhei-fonts \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf #啓動服務 systemctl start zabbix-server systemctl start httpd #寫入開機自啓動 chmod +x /etc/rc.d/rc.local cat >>/etc/rc.d/rc.local<<EOF systemctl start mariadb.service systemctl start httpd systemctl start zabbix-server EOF #輸出信息 echo "瀏覽器訪問 http://`hostname -I|awk '{print $1}'`/zabbix"
#!/bin/bash #clsn #設置解析 echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts #安裝zabbix源、aliyu nYUM源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm #安裝zabbix客戶端 yum install zabbix-agent -y sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf systemctl start zabbix-agent.service #寫入開機自啓動 chmod +x /etc/rc.d/rc.local cat >>/etc/rc.d/rc.local<<EOF systemctl start zabbix-agent.service EOF
yum install zabbix-get
注意:只能在服務端進行測試
zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]" zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"
測試結果
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]" 0.000000 [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]" 0.000000
http://10.0.0.61/zabbix/setup.php
在檢測信息時,可查看具體的報錯信息進行不一樣的解決
選擇mysql數據庫,輸入密碼便可
host與port不須要修改,name自定義
確認信息,正確點擊下一步
安裝完成、點擊finsh
進入登錄界面 帳號Admin密碼zabbix 注意A大寫
配置 >> 主機
主機名稱: 要與主機名相同,這是zabbix server程序用的
可見名稱: 顯示在zabbix網頁上的,給咱們看的
修改後,要將下面的已啓用要勾上
添加完成就有了管理機的監控主機
配置 >> 主機 >> 建立主機
注意勾選以啓用
而後添加模板,選擇linux OS ,先點小添加,再點大添加。
添加完成,將會又兩條監控主機信息
檢測中 >> 最新數據
在最新數據中須要篩選,
輸入ip或者名字都可以搜索出來
在下面就會列出全部的監控項
檢測中 >> 圖形
選擇正確的主機。選擇要查看的圖形便可出圖
zabbix自帶模板Template OS Linux (Template App Zabbix Agent)提供CPU、內存、磁盤、網卡等常規監控,只要新加主機關聯此模板,就可自動添加這些監控項。
需求:服務器登錄人數不能超過三人,超過三人報警
自定義key能被server和agent承認
# 正確的key [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname" Linux cache01 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64
# 沒有登記的,自定義的key [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user" ZBX_NOTSUPPORTED: Unsupported item key.
# 寫錯的key [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname1" ZBX_NOTSUPPORTED: Unsupported item key.
UserParameter=, UserParameter=login-user,who|wc -l UserParameter=login-user,/bin/sh /server/scripts/login.sh
[root@cache01 ~]# cd /etc/zabbix/zabbix_agentd.d/ [root@cache01 zabbix_agentd.d]# vim userparameter_login.conf UserParameter=login-user,who|wc -l UserParameter=login-user2,who|wc -l UserParameter=login-user3,who|wc -l
注意:key名字要惟一,多個key以行爲分割
# 修改完成後重啓服務
[root@cache01 zabbix_agentd.d]# systemctl restart zabbix-agent.service
在server端進行get測試
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user" 3 [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user2" 3 [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user3" 3 [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user4" ZBX_NOTSUPPORTED: Unsupported item key.
① 建立模板
配置 >> 模板 >> 建立模板
點擊添加,便可建立出來模板
查看建立出來的模板。↑
② 建立應用集
應用集相似(目錄/文件夾),其做用是給監控項分類。
點擊 應用集 >> 建立應用集
自定義應用集的名稱,而後點擊添加
③ 建立監控項
監控項 >> 建立監控項
鍵值 — key,即前面出建立的login-user。
注意:建立監控項的時候,注意選擇上應用集,即以前建立的安全。
④ 建立觸發器
觸發器的做用:當監控項獲取到的值達到必定條件時就觸發報警
(根據需求建立)
觸發器 >> 建立觸發器
建立觸發器,自定義名稱,該名稱是報警時顯示的名稱。
表達式,點擊右邊的添加,選擇表達式。
嚴重性自定義。
表達式的定義 ↓ ,選擇以前建立的監控項,
最新的T值爲當前獲取到的值。
添加完成,可以在觸發器中看到添加的狀況
⑤ 建立圖形
以圖形的方式展現出來監控信息
圖形 >> 建立圖形
名稱自定義,關聯上監控項。
⑥ 主機關聯模板
配置 >> 主機
一個主機能夠關聯多個模板
http://www.onealert.com
經過 OneAlert 提供的通知分派與排班策略,以及全方位的短信、微信、QQ、電話提醒服務,您能夠在最合適的時間,將最重要的信息推送給最合適的人員。
添加應用,注意添加的是zabbix
實現微信報警須要關注微信公衆號便可。
1.切換到zabbix腳本目錄(如何查看zabbix腳本目錄):
cd /usr/local/zabbix-server/share/zabbix/alertscripts #查看zabbix腳本目錄 vi /etc/zabbix/zabbix_server.conf 查看AlertScriptsPath
2.獲取OneITSM agent包:
wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.0.1.tar.gz
3.解壓、安裝。
tar -zxf oneitsm_zabbix_release-1.0.1.tar.gz cd oneitsm/bin bash install.sh --#我的生成的key
注:在安裝過程當中根據安裝提示,輸入zabbix管理地址、管理員用戶名、密碼。
Zabbix管理地址: http://10.0.0.61/zabbix/ Zabbix管理員帳號: Admin Zabbix管理員密碼:
4.當提示」安裝成功」時表示安裝成功!
驗證告警集成 產生新的zabbix告警(problem),動做狀態爲「已送達」表示集成成功。
① 刪除報警媒介類型中的腳本
② 刪除建立的用戶
③ 刪除用戶羣組
④ 刪除建立的動做
在微信和郵件中,均能收到報警信息。
注意:當狀態改變的時候纔會發郵件
好–>壞
壞–>好
最新數據 >> 圖形
自定義名稱
點擊聚合圖形的名稱,進行更改,添加要顯示的圖形便可。
添加幻燈片
監測中 >> 複合圖形 >> 幻燈片演示
建立幻燈片,名稱自定,選擇要顯示的
幻燈片根據設定的時間自動播放
在主機頁打開,全選後點擊導出
導入
https://github.com/zhangyao8/zabbix-community-repos
實際需求:
公司已經有了100臺服務器,如今須要使用zabbix所有監控起來。
常規監控:cpu,內存,磁盤,網卡 問題:怎樣快速添加100臺機器
方法1:使用克隆的方式
方法2:自動註冊和自動發現
方法3:調用zabbix api接口 curl 、python
開發本身的運維平臺兼容zabbix的通道
服務監控,url監控等特殊監控:自定義監控
curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth": null,"id":0}' "http://10.0.0.61/zabbix/api_jsonrpc.php" curl -i -X POST -H 'Content-Type:application/json' -d' { "jsonrpc": "2.0", "method": "host.get", "params": { "output": [ "hostid", "host" ], "selectInterfaces": [ "interfaceid", "ip" ] }, "id": 2, "auth": "6a450a8fc3dce71fd310cfe338746578" }' "http://10.0.0.61/zabbix/api_jsonrpc.php"
全部集羣節點(全部虛擬機)都監控上
交換機,路由器監控(簡單方法:換成端口對應服務器網卡流量監控;標準方法:監控交換機的網卡)
snmp監控
1. 監控備份服務器,簡單方法是監控rsync端口,若是有其餘更佳方案能夠說明;
方法1:監控873端口net.tcp.port[,873] 方法2:模擬推送拉取文件
2. 監控NFS服務器,使用監控NFS進程來判斷NFS服務器正常,若是有其餘更佳方案能夠說明;
方法1:端口(經過111的rpc端口獲取nfs端口) net.tcp.port[,111] 方法2:showmount -e ip|wc -l
3. 監控MySQL服務器,簡單方法監控mysql的3306端口,或者使用zabbix提供的Mysql模板,若是有其餘更佳方案能夠說明;
方法1:端口(經過3306的mysql端口) net.tcp.port[,3306] 方法2:mysql遠程登陸 方法3:使用zabbix agent自帶的模板及key
4. 監控2臺web服務器,簡單方法監控80端口,若是有其餘更佳方案能夠說明;
方法1:端口(經過80的web端口) net.tcp.port[,80] 方法2:看網頁狀態碼、返回內容==zabbix 自帶WEB檢測
5. 監控URL地址來更精確的監控咱們的網站運行正常;
使用zabbix自帶的監控Web監測 進行監控
6. 監控反向代理服務器,PPTP服務器等你在期中架構部署的服務。
nginx,pptp ntp 端口udp 123
7. 監控Nginx的7種鏈接狀態。
自定義監控
1. 監控端口 netstat ss lsof ==》 wc -l
2. 監控進程 ps -ef|grep 進程|wc -l 試運行一下
3. 模擬客戶端的使用方式監控服務端
web ==》 curl
mysql ==》 select insert
memcache ==》 set再get
安裝客戶端腳本,for centos6
#!/bin/bash #設置解析 # echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts #安裝zabbix源、aliyu nYUM源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm yum clean all yum clean all #安裝zabbix客戶端 yum install zabbix-agent -y sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf /etc/init.d/zabbix-agent start #寫入開機自啓動 chmod +x /etc/rc.d/rc.local cat >>/etc/rc.d/rc.local<<EOF /etc/init.d/zabbix-agent start EOF
添加自動發現規則
建立發現動做
查看自動發現的機器。
利用系統自帶鍵值進行監控net.tcp.listen[port] 建立新的模板
在服務端進行測試
[root@m01 ~]# zabbix_get -s 172.16.1.41 -p 10050 -k "net.tcp.listen[873]" 1 # 1爲端口在監聽 0爲端口未監聽
將模板添加到主機
建立nfs監控模板
使用 proc.num[,,,] 鍵值,檢測nfs進程的數量
在服務端進行測試
[root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[,,,rpc]" 5 [root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[nfsd,,,] 8
將模板綁定到主機
將自帶的mysqlkey值加上mysql的帳戶密碼,不然不能獲取到數據。
使用系統自帶模板 net.tcp.port[,port] 利用自帶的監控端口鍵值進行監控
添加新的mysql監控項端口
[root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 -k "net.tcp.port[,3306]" 1 #檢查是否能創建 TCP 鏈接到指定端口。返回 0 - 不能鏈接;1 - 能夠鏈接
將模板關聯到主機
建立監控模板 監控 nginx服務與 80 端口
proc.num[,,,] 進程數。返回整數 net.tcp.port[,port] 檢查是否能創建 TCP 鏈接到指定端口。返回 0 - 不能鏈接;1 - 能夠鏈接
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "proc.num[,,,nginx]" 2 [root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "net.tcp.port[,80]" 1
將模板關聯到主機
建立監測頁面
echo ok >> /application/nginx/html/www/check.html
測試監控面頁
[root@web03 ~]# for ip in 7 8 9 ;do curl 10.0.0.$ip/check.html ;done ok ok ok
建立web監測模板
建立應用集
建立Web場景
建立圖形
將模板關聯到主機
監測結果
建立自定義key
[root@lb01 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_nk.conf UserParameter=keep-ip,ip a |grep 10.0.0.3|wc -l
在服務端測試
[root@m01 ~]# zabbix_get -s 172.16.1.5 -p 10050 -k "keep-ip" 1 [root@m01 ~]# zabbix_get -s 172.16.1.6 -p 10050 -k "keep-ip" 0
在web界面添加模板
將模板關聯到主機
nginx服務器顯示status …… location /status { stub_status on; access_log off; } ……
[root@web01 ~]# for ip in 7 8 9 ;do curl 172.16.1.$ip/status ;done Active connections: 1 server accepts handled requests 73 73 69 Reading: 0 Writing: 1 Waiting: 0 Active connections: 1 server accepts handled requests 134 134 127 Reading: 0 Writing: 1 Waiting: 0 Active connections: 1 server accepts handled requests 7 7 7 Reading: 0 Writing: 1 Waiting: 0
在nginx服務器上添加key
cat >/etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf <<'EOF' UserParameter=nginx_active,curl -s 127.0.0.1/status|awk '/Active/ {print $NF}' UserParameter=nginx_accepts,curl -s 127.0.0.1/status|awk 'NR==3 {print $1}' UserParameter=nginx_handled,curl -s 127.0.0.1/status|awk 'NR==3 {print $2}' UserParameter=nginx_requests,curl -s 127.0.0.1/status|awk 'NR==3 {print $3}' UserParameter=nginx_reading,curl -s 127.0.0.1/status|awk 'NR==4 {print $2}' UserParameter=nginx_writing,curl -s 127.0.0.1/status|awk 'NR==4 {print $4}' UserParameter=nginx_waiting,curl -s 127.0.0.1/status|awk 'NR==4 {print $6}' EOF
服務端測試
[root@m01 ~]# zabbix_get -s 172.16.1.7 -p 10050 -k "nginx_waiting" 0 [root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "nginx_waiting" 0 [root@m01 ~]# zabbix_get -s 172.16.1.9 -p 10050 -k "nginx_waiting" 0
在zabbix-web上添加
監控項
添加圖形
將模板關聯到主機
查看添加的圖形
自動發現:
zabbix Server主動發現全部客戶端,而後將客戶端登記本身的小本本上,缺點zabbix server壓力山大(網段大,客戶端多),時間消耗多。
自動註冊:
zabbix agent主動到zabbix Server上報到,登記;缺點agent有可能找不到Server(配置出錯)
被動模式:默認 agent被server抓取數據 (都是在agent的立場上說) 主動模式:agent主動將數據發到server端 (都是在agent的立場上說)
注意: 兩種模式都是在agent上進行配置
zabbix 的使用要在hosts文件中預先作好主機名的解析
第一個里程碑:完成以前的安裝
zabbix Server安裝完畢
第二個里程碑:配置agent客戶端
zabbix agent安裝完畢,注意配置Server=172.16.1.61
第三個里程碑:在web界面上進行配置
web界面:配置 >> 自動發現 >> Local network 使用自帶的自動發現規則(進行修改)便可
在ip範圍內輸入ip,注意格式; 延遲在實際的生產環境中要大一些,實驗環境能夠小一些
建立發現動做
配置 >> 動做 >> Auto discovery. Linux servers.
① 配置動做
② 在條件中添加條件,讓添加更準確
③ 在操做中添加
a) 添加主機與啓用主機
而後等待者客戶端自動上門就好😏
第一個里程碑:zabbix Server安裝完畢 (完成)
zabbix Server安裝完畢
第二個里程碑:zabbix agent安裝完畢,須要額外增長的配置
vim /etc/zabbix/zabbix_agentd.conf ServerActive=172.16.1.61 # Hostname=Zabbix server HostnameItem=system.hostname systemctl restart zabbix-agent.service netstat -tunlp|grep zabbix
源文件與修改後對比
第三個里程碑:在web見面上進行配置
1 配置 >> 動做 >> 事件源(自動註冊) >> 建立動做
建立動做,添加名稱便可
條件中也無需修改
在動做中添加動做
(添加主機、添加到主機羣組、連接到模板)
添加完動做後,等待就好了
注意:重啓客戶端能夠加速發現。可是在生產環境中勿用。
分擔壓力,減輕負載
多機房監控
zabbix Server ===》 zabbix agent (只能同一個局域網監控)
分擔壓力,下降負載
zabbix Server ===》 zabbix proxy ===》zabbix agent1 agent2 agent3 。。。 172.16.1.61 172.16.1.21 172.16.1.0/24 ===》 zabbix proxy ===》zabbix agent4 agent5 agent6 。。。
多機房監控
zabbix Server(北京) ==》 zabbix proxy(每一個機房搭建) ==》 zabbix agent 122.71.240.233/172.16.1.61 122.71.241.11/172.16.2.21 172.16.2.0/24
zabbix server m01 zabbix proxy cache01 zabbix agent cache01
第一個里程碑:配置zabbix yum源,並安裝proxy
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm yum install zabbix-proxy-mysql -y
第二個里程碑:安裝數據庫
zabbix proxy也須要數據庫,這個數據庫不是用於存儲監控數據的 只是用於存儲配置信息
#安裝數據庫
yum -y install mariadb-server systemctl start mariadb.service
#創建數據庫
mysql create database zabbix_proxy character set utf8 collate utf8_bin; grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix'; exit
#導入數據文件
zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy
#配置zabbix proxy 鏈接數據庫
sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf sed -i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_proxy.conf sed -i 's#Hostname=Zabbix proxy#Hostname=cache01#' /etc/zabbix/zabbix_proxy.conf # Hostname 做爲後面添加的代理程序名稱,要保持一致
#啓動
systemctl restart zabbix-proxy.service
#檢查端口
[root@cache01 ~]# netstat -lntup |grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 105762/zabbix_agent tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 85273/zabbix_proxy tcp6 0 0 :::10050 :::* LISTEN 105762/zabbix_agent tcp6 0 0 :::10051 :::* LISTEN 85273/zabbix_proxy
第三個里程碑:修改agent配置指向 proxy
[root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf Server=172.16.1.61 ServerActive=172.16.1.61 [root@cache01 ~]# sed -i 's#172.16.1.61#172.16.1.21#g' /etc/zabbix/zabbix_agentd.conf [root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf Server=172.16.1.21 ServerActive=172.16.1.21 [root@cache01 ~]# systemctl restart zabbix-agent.service
第四個里程碑:web界面添加代理
管理 >> agent代理程序 >> 建立代理
代理程序名稱要填寫主機名
稍等片刻就能在程序中出現代理
在主機中能發現主機代理
沒法安裝agent 不少前輩的監控軟件均可以監控各類設備 都是經過snmp監控
snmp simple network manager protocol 簡單網絡管理協議
簡單網絡管理協議(SNMP),由一組網絡管理的標準組成,包含一個應用層協議(application layer protocol)、數據庫模型(database schema)和一組資源對象。該協議可以支持網絡管理系統,用以監測鏈接到網絡上的設備是否有任何引發管理上關注的狀況。
yum -y install net-snmp net-snmp-utils
sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf systemctl start snmpd.service
[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname SNMPv2-MIB::sysName.0 = STRING: m01
說明:
# snmpwalk 相似 zabbix_get
# -v 2c 指定使用snmp協議的版本 snmp分爲v1 v2 v3
# -c public 指定暗號
# sysname 相似zabbix的key
添加新的主機,注意使用snmp接口
選擇模板,注意使用SNMP的模板
添加完成就可以在主機中看到snmp監控對的主機