拿到公司服務器的管理權以後,php
第一件事,備份html
第二件事,監控mysql
數據有故障了,服務有問題了,一些內容掛掉了,好比web服務器,或者是硬件的服務器,raid,磁盤有故障了也會報警,用戶訪問網站,感受慢了,也能夠得到相應的提示linux
這是一個很是重要的部分ios
mrtg 流量監控出圖
nagios 監控
cacti 流量監控出圖
zabbix 監控+出圖,全部監控範疇,均可以整合到Zabbix中。git
zabbix是一個基於WEB界面的,提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案github
已經有20年曆史,面試
web界面是基於PHP的,因此須要準備LNMP或者LAMP的環境sql
軟件是c語言的
zabbix的架構圖
zabbix_proxy 在大型架構中做爲代理使用,將分部服務器的狀況彙總發送到總部
從CentOS7模板機全新克隆一臺新主機 IP規劃爲10.0.0.61/172.16.1.61,主機名爲m01 註冊帳號:http://c.onealert.com/console//ucid/regist.jsp
帳號用於接受報警
本次使用yum安裝,編譯安裝留爲做業
官網---download
官方安裝說明中能夠找到下面這些信息和安裝步驟
版本號中的LTS指的是長時間維護版本
或者找zabbix官方源repo.zabbix.com----找到有release的,複製連接地址
# 安裝Zabbix官方源 rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm yum makecahe fast # 快點緩存 # 安裝zabbix,httpd,php yum install zabbix-server-mysql zabbix-web-mysql httpd php -y
數據庫由於用的是centos7,MySQL是正常裝不上的,須要配置MySQL源或者二進制安裝
因此,偷懶安裝mariadb(本質上基本和mysql是同樣的)
# 安裝mariadb yum -y install mariadb-server systemctl start mariadb.service # 建立數據庫,權限 mysql create database zabbix character set utf8 collate utf8_bin; grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
建立用戶的時候,不用flush跟新信息,跟新只在修改用戶信息的時候 exit # 導入數據庫sql文件,官方安裝說明中能夠找到這些信息和安裝步驟 zcat /usr/share/doc/zabbix-server-mysql-3.0.25/create.sql.gz|mysql -uzabbix -pzabbix zabbix
zcat 命令是顯示gz壓縮包內容的軟件
請根據本身的zabbix軟件版本 修改zcat的文件目錄
# 配置zabbix Server鏈接mysql sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf # 修改apache-php配置,由於咱們是自動安裝,他會自動建立一個虛擬主機
# 咱們修改下配置文件,添加時區,不然後面打開web頁面安裝zabbix的時候會報錯 sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
systemctl start zabbix-server # 啓動zabbix
systemctl start httpd # 啓動apache
瀏覽器中訪問10.0.0.61/zabbix 。記得用本身的IP
進入頁面按照指令操做。
默認的帳號Admin密碼zabbix
進入主頁,單擊右上角的小人,修改顯示語言和密碼
zabbix客戶端就是zabbix agent
國內源:搜索
選擇yum源的時候注意版本號,有的是centos6有的是7
能夠直接安裝agent,可是有一些依賴可能裝不上
選擇release最爲穩妥
全部須要被監控的服務器都要執行下面步驟,下面以在m01和cache01安裝客戶端爲例: rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm yum install zabbix-agent sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf systemctl start zabbix-agent.service
此時,還不能在web頁面張查看監控狀態
須要先在客戶端測試確認一下數據,須要用到zabbix-get
# 只能在服務端m01操做,須要使用-s執行相應客戶端IP yum install zabbix-get -y # agent.ping 表示是否在線 1表示在線
[root@m01 doc]# zabbix_get -s 172.16.1.61 -p 10050 -k 'agent.ping'
1
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]"
web頁面上怎麼看?
配置----主機----將 zabbix server 啓用--- 當可用性 都變成綠色,就表名監控上線
等待......如何加快(ping 主機名 能夠解析)
等了好久,看一下日誌吧...(/var/log/zabbix/zabbix_server.log)
咱們等來了一個錯誤,意思是,客戶端沒法訪問服務端,是監控IP設置的問題
點擊Zabbix server 將 agent代理程序的接口 這一項下面的 ip地址改成172.16.1.61,跟新保存
過一會就變成綠色了,就能夠查看監控中---最新數據、圖形等
由於中文字體的緣由,有些地方會亂碼,改爲英文就好了
解決亂碼問題,單獨安裝字體就能夠了,不斷地嘗試,發現某個字體可用
yum -y install wqy-microhei-fonts
將可用字體,複製到zabbix下
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
如今web01服務器上安裝zabbix agent 客戶端
清華或者阿里軟件鏡像站------找到zabbix----找到版本-----選擇rhel----選擇6(web01是centos6的系統)----選擇64位----找到release----複製連接地址
在Linux中加入yum源
[root@web01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm [root@web01 ~]# yum install zabbix-agent -y 之後這些操做要交給kickstart和cobbler,裝完系統就裝上zabbix-agent #修改一下服務端的IP地址 第97行 Server = 172.16.1.61 或者使用sed -i.ori '' sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf #將zabbix 設置爲 開機自啓動,並重啓 [root@web01 ~]# chkconfig zabbix-agent on [root@web01 ~]# /etc/init.d/zabbix-agent restart Shutting down Zabbix agent: [FAILED] Starting Zabbix agent: [ OK ]
在m01 zabbix的服務端上檢查,這些服務都是要啓動的,並且要開機自啓動
[root@m01 doc]# systemctl is-active httpd.service mariadb.service zabbix-server.service zabbix-agent.service active active active active [root@m01 doc]# systemctl is-enable httpd.service mariadb.service zabbix-server.service zabbix-agent.service Unknown operation 'is-enable'. [root@m01 doc]# systemctl is-enabled httpd.service mariadb.service zabbix-server.service zabbix-agent.service disabled disabled disabled enabled [root@m01 doc]# systemctl enable httpd.service mariadb.service zabbix-server.service zabbix-agent.service
[root@m01 doc]# systemctl is-enabled httpd.service mariadb.service zabbix-server.service zabbix-agent.service
enabled
enabled
enabled
enabled
在服務端檢查一下是否是在線,能夠鏈接
[root@m01 doc]# zabbix_get -s 172.16.1.7 -p 10050 -k 'agent.ping'
1
在web界面中 配置----主機----建立主機
主機名稱: 主機名 可見名稱: 隨意設置,知道意思就行, 羣組: 最好設置一個羣組,方便批量管理 agent代理程序的接口: 172.16.1.7 端口號不用改 下面的SNMP、JMX、IPMI暫時不用管
接下來 點擊 模板選項卡
不用點擊選擇,在搜索框中輸入linux ,選擇Template OS linux-----點擊小的添加----點擊添加
保證在m01上可以解析web01 的名字 ----- 172.16.1.7 web01
注:實際作的時候,我沒有在host中解析web01 也連上了....後面有問題再說吧,
繼續添加一臺服務器cache01
都鏈接上了
隨便選擇一個,而後最下面有一個克隆,修改一下主機名和IP
模板中有什麼呢?
能夠查看監控項中的鍵值,就是zabbix_get 命令中的-k參數 中的k值,是獲取數據的本質
也叫做自定義監控,在模板提供的鍵值中沒有咱們須要的數據時,咱們要本身作鍵值
zabbix自帶模板Template OS Linux (Template App Zabbix Agent)
提供CPU、內存、磁盤、網卡等常規監控,只要新加主機關聯此模板,就可自動添加這些監控項。
需求:服務器登陸人數不超過3人,超過3人報警
一、獲取登錄服務器人數
[root@web01 ~]# who
root pts/0 2019-03-16 15:49 (10.0.0.253)
二、統計
[root@web01 ~]# who|wc -l
1
三、將命令放在/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 中
這是用來放置用戶自定義監控項的,用戶能夠在這個目錄中寫本身的.conf文件
四、在agent註冊key
# 語法:key名字要惟一,多個key以行爲分割 UserParameter=<key>,<shell command>
UserParameter=login-user,who|wc -l UserParameter=login-user,/bin/sh /server/scripts/login.sh # 執行腳本 # cd /etc/zabbix/zabbix_agentd.d/ # vim userparameter_login.conf UserParameter=login-user,who|wc -l
# 修改配置文件要重啓 systemctl restart zabbix-agent.service
centos6中重啓
/etc/init.d/zabbix-agent restart
# 在server檢測 # zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
自定義key能被server和agent承認
處理報警:在設置的觸發器中有一項容許手動關閉,在收到報警後,咱們能夠在確認事件中關閉報警
報警也能夠在web中設置,就在主頁小人處
咱們還能夠經過網站設置報警,而後等着報警信息,就不用一直盯着頁面了
登錄網站:http://www.onealert.com/index.html 註冊帳號 報警的本質: 何時發郵件:當狀態改變的時候纔會發郵件 好--壞 壞--好
如何查找安裝報警腳本的路徑?
[root@m01 doc]# grep -i alertscript /etc/zabbix/zabbix_server.conf ### Option: AlertScriptsPath # AlertScriptsPath=${datadir}/zabbix/alertscripts AlertScriptsPath=/usr/lib/zabbix/alertscript
安裝報警插件,下載地址和安裝命令都是報警網站提供的
[root@m01 alertscripts]# wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.2.0.tar.gz ...下載過程略... [root@m01 alertscripts]# tar -zxf oneitsm_zabbix_release-1.2.0.tar.gz [root@m01 alertscripts]# cd oneitsm/bin [root@m01 bin]# bash install.sh 42dd9ef9-cc1c-8def-e95a-d20526a5341f ./log.sh: line 6: /usr/lib/zabbix/alertscripts/oneitsm/bin/oneitsm.conf: No such file or directory start to create config file... Zabbix管理地址: 172.16.1.61 Zabbix訪問失敗,請從新輸入. Zabbix管理地址: 10.0.0.61 Zabbix訪問失敗,請從新輸入. Zabbix管理地址: 10.0.0.61/zabbix # 地址 zabbix的WEB頁面的地址 Zabbix管理員帳號: Admin Zabbix管理員密碼: start to auth by zabbix admin user and password... ...安裝過程略... create action success! 安裝成功.
登錄zabbix的WEB界面配置
管理---報警媒介類型---已經配置好了!!
在onealert的配置下中有一個分配策略---就是報警了分配給誰
同時看幾個數據的圖形
聚合圖形中還有幻燈片演示
現有聚合圖形,才能建立幻燈片
https://share.zabbix.com/中有許多別人建立好的模板
https://github.com/zhangyao8/zabbix-community-repos 模板共享
考試目標:使用zabbix將期中架構全部集羣監控 具體內容: 1、硬件、系統、網絡監控 全部集羣節點(全部虛擬機)都監控上 2、應用服務監控 1. 監控備份服務器,簡單方法是監控rsync端口,若是有其餘更佳方案能夠說明; 2. 監控NFS服務器,使用監控NFS進程來判斷NFS服務器正常,若是有其餘更佳方案能夠說明; 3. 監控MySQL服務器,簡單方法監控mysql的3306端口,或者使用zabbix提供的Mysql模板,
若是有其餘更佳方案能夠說明; 4. 監控2臺web服務器,簡單方法監控80端口,若是有其餘更佳方案能夠說明; 5. 監控URL地址來更精確的監控咱們的網站運行正常; 6. 監控反向代理服務器,PPTP服務器等你在期中架構部署的服務。 7. 監控Nginx的7種鏈接狀態。
項目一的模板都有
項目二中的端口、進程。能夠進入任意模板查看,都有
項目二中的第5個檢測URL,自定義web檢測
建立web場景
項目二中的第6個檢測端口+進程
項目二中的第7個Nginx的7中連接狀態,用狀態模塊進行配置,
一、寫7行(簡單粗暴的方法)
二、寫腳本
自動發現:zabbix Server主動發現全部客戶端,而後將客戶端登記本身的小本本上,
缺點zabbix server壓力山大(網段大,客戶端多),時間消耗多。
自動註冊:zabbix agent主動到zabbix Server上報到,登記;
缺點agent有可能找不到Server(配置出錯)
被動模式:默認,都是站在agent的立場上說話,agent被server抓取數據
主動模式:都是站在agent的立場上說話,agent主動的將數據發送給Server
兩種模式都是在agent上的配置文件配置的
第一步:zabbix Server安裝完畢 (完成) 第二步:zabbix agent安裝完畢,Server=172.16.1.61 (完畢) 第三步:網頁上配置自動發現規則
配置---自動發現---新建或者使用已經有的
修改IP範圍---172.16.1.1-10,172.16.1.45多個用,號分割
默認本質上使用的是system.uname,也能夠添加新的
設置惟一性
更新或者保存,啓用
------------------------------------------------------------------------------
配置---動做---事件源選擇‘自動發現’---建立或者修改原有的,也能夠克隆
其中,新的觸發條件能夠不寫,由於在自動發現中已經設置了
在操做選項卡里面,添加新的動做操做(添加主機和啓用主機)
完成後,跟新啓用
何時算是完成自動發現了呢,在自動發現中顯示主機名就算成功了,而後會出如今主機列表中
把以前的自動發現關閉
第一步:zabbix Server安裝完畢 (完成) 第二步:zabbix agent安裝完畢,須要額外增長的配置 vim /etc/zabbix/zabbix_agentd.conf ServerActive=172.16.1.61 # Hostname=Zabbix server 和下面的HostnameItem配置一個就行 HostnameItem=system.hostname # 定義獲取服務器主機名的方式
HostMetadataItem=system.uname # 主機的源數據
systemctl restart zabbix-agent.service
重啓centos6的方式/etc/init.d/zabbix-agent restart
netstat -tunlp|grep zabbix 第三步:Server上作hosts解析,解析是在這裏發揮做用的 echo "172.16.1.21 cache01" >> /etc/hosts 第四步:網頁上配置自動註冊 配置----動做---自動註冊(事件源)
動做-觸發條件 設置 成 主機元數據 似 Linux(手打的)
操做-添加主機---添加到羣組---連接到模板
添加
主機沒有添加上,等候時間
Zabbix Server -------->Zabbix agent (只能同一個局域網監控)
分佈式監控:
a. 分擔壓力,下降負載
b. 多機房監控
等因而給各個分區的服務器安排了一個領導,層層彙總
環境準備
作好快照
機器準備:
Zabbix Server m01 監控中心
Zabbix Proxy web01 分中心領導
Zabbix Agent web01 web02 客戶端
開始操做,將以前的自動發現和自動註冊都關閉
第一步:在代理機web01安裝zabbix proxy rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm yum -y install zabbix-proxy-mysql 第二步:安裝數據庫 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'; # 將多餘的空的用戶刪除
drop user 「‘@’localhost」;
drop user 「‘@’web01」;
# 跟新
flush privileges;
exit # 導入數據庫文件 zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy 第三步: 配置zabbix proxy,並在zabbix網頁登記 # 配置zabbix proxy鏈接數據庫 sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf systemctl start zabbix-proxy.service # 修改Server sed -i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_proxy.conf # 修改hostname,確保這個名字是惟一的,不用web01是由於,web01要給下面的客戶端使用
# 這個hostname,必定要能在m01中解析,即最頂端的老大
sed -i 's#Hostname=Zabbix proxy#Hostname=proxy-web01#' /etc/zabbix/zabbix_proxy.conf
將172.16.1.7 web01 proxy-web01 添加在m01的 host文件中 systemctl start zabbix-proxy.service Centos6中的重啓方法/etc/init.d/zabbix-proxy start(第一次啓動因此使用的start
### 問題 ###
# 查看zabbix-proxy日誌發現,一隻鏈接不上數據庫,它鏈接的的是/var/lib/mysql/mysql.sock
# 在/etc/zabbix/zabbix_proxy.conf中的默認的是/tmp/mysql.sock
# 咱們須要將它啓動,把配置文件中DBSocket前面的# 刪掉
繼續重啓
第四步:web頁面設置
管理---agent代理程序---建立代理
agent代理程序名稱:要和 Hostname=proxy-web01 同樣
把客戶機加上
添加 第五步:客戶端agent 指向 proxy [root@web01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf Server=172.16.1.61 ServerActive=172.16.1.61 [root@web01 ~]# sed -i 's#172.16.1.61#172.16.1.7#g' /etc/zabbix/zabbix_agentd.conf [root@web01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf Server=172.16.1.7 ServerActive=172.16.1.7
# 文件中的Hostname 要和 頁面上的一致,即本服務器的hostname
[root@web01 ~]# systemctl restart zabbix-agent.service
把客戶端服務器hosts中的解析本機的去掉??
主機的名字只須要在proxy和m01上解析就能夠了
主要用來監控網絡設備,也能夠用來監控服務器
只須要在網絡設備中開啓SNMP監控便可
小結:前面所講內容所有屬於zabbix agent方式監控 當前場景:沒法安裝agent,經過snmp監控 snmp :simple network manager protocol 簡單網絡管理協議
# 在m01下,安裝軟件 yum -y install net-snmp net-snmp-utils 配置snmp sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
意思是開啓被讀取的權限
systemctl start snmpd.service 默認的端口是161 使用SNMP [root@db01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname # snmpwalk 相似 zabbix_get # -v 2c 指定使用snmp協議的版本 snmp分爲v1 v2 v3 # -c public 指定暗號 # sysname 相似zabbix的key 鍵值中的鍵,還有不少其餘的 OID
怎麼經過snmp協議來監控呢?
在web頁面中選擇主機。在設置中的SNMP接口處添加
它和agent的區別是不支持自定義監控
模板也要改,把原來的linux os 取消連接。添加Template SNMP OS Linux
仍是不行的話,點擊原來的先添加再取消並清理,而後保存
補充:web監測的時候,要把SNMP的模板刪除,換成以前用的普通的
最核心的部分是監控的體系部分,必定要做爲本身的必殺技,搞定