學習zabbix(十)

Zabbix 3.0 基礎介紹 [一]

 

1、Zabbix介紹

 

zabbix 簡介

Zabbix 是一個高度集成的網絡監控解決方案,能夠提供企業級的開源分佈式監控解決方案,由一個國外的團隊持續維護更新,軟件能夠自由下載使用,運做團隊靠提供收費的技術支持贏利
  zabbix是一個基於Web界面的,提供分佈式系統監控以及網絡監視功能的企業級的開源解決方案。
  zabbix能監視各類網絡參數,保證服務器系統的安全運營,並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題
  zabbix主要由2部分構成zabbix server和zabbix agent,可選組建zabbix proxy
  zabbix server能夠經過SNMP,zabbix agent,fping端口監視等方法對遠程服務器或網絡狀態完成監視,數據收集等功能。同時支持Linux以及Unix平臺,Windows平臺只能安裝客戶端
 

Zabbix 功能

  ①具有常見的商業監控軟件所具有的功能(主機的性能監控、網絡設備性能監控、數據庫、性能監控、FTP 等通用協議監控、多種告警方式、詳細的報表圖表繪製)
  ②支持自動發現網絡設備和服務器(能夠經過配置自動發現服務器規則來實現)
  ③支持自動發現(low discovery)key 實現動態監控項的批量監控(需寫腳本)
  ④支持分佈式,能集中展現、管理分佈式的監控點
  ⑤擴展性強,server 提供通用接口(api 功能),能夠本身開發完善各種監控(根據相關接口編寫程序實現)編寫插件容易,能夠自定義監控項,報警級別的設置。
  ⑥數據收集
 可用和性能檢測
 支持snmp(包括trapping and polling),IPMI,JMX,SSH,TELNET
 自定義的檢測
 自定義收集數據的頻率
 服務器/代理和客戶端模式
 靈活的觸發器
 能夠定義很是靈活的問題閾值,稱爲觸發器,從後端數據庫的參考值
 高可定製的報警
 發送通知,可定製的報警升級,收件人,媒體類型
 通知可使用宏變量有用的變量
 自動操做包括遠程命令
 實時的繪圖功能
 監控項實時的將數據繪製在圖形上面
 WEB 監控能力
 ZABBIX 能夠模擬鼠標點擊了一個網站,並檢查返回值和響應時間php

Api 功能
  應用api功能,能夠方便的和其餘系統結合,包括手機客戶端的使用。
更多功能請查看
http://www.zabbix.com/documentation.phphtml

 

Zabbix版本

Zabbix 3.0 Manual
Zabbix 2.4 Manual
Zabbix 2.2 Manual
Zabbix 2.0 Manual
下載地址:http://www.zabbix.com/documentation.php
本次採用yum安裝,安裝zabbix3.0.使用Centos7前端

 

Zabbix優缺點

優勢
 一、開源,無軟件成本投入
 二、Server 對設備性能要求低
 三、支持設備多,自帶多種監控模板
 四、支持分佈式集中管理,有自動發現功能,能夠實現自動化監控
 五、開放式接口,擴展性強,插件編寫容易
 六、當監控的item 比較多服務器隊列比較大時能夠採用被動狀態,被監控客戶端主動從
 七、server 端去下載須要監控的item 而後取數據上傳到server 端。這種方式對服務器的負載比較小。
 八、Api 的支持,方便與其餘系統結合
缺點
  需在被監控主機上安裝agent,全部數據都存在數據庫裏,產生的數據據很大,瓶頸主要在數據庫java

 

Zabbix監控原理

  Zabbix 通過C/S 模式採集數據,經過B/S模式在web 端展現和配置。
被監控端:主機經過安裝agent 方式採集數據,網絡設備經過SNMP 方式採集數據
Server 端:經過收集SNMP 和agent 發送的數據,寫入數據庫(MySQL,ORACLE 等),再經過php+apache 在web 前端展現。node

 

Zabbix 運行條件

Server:Zabbix Server 需運行在LAMP(Linux+Apache+Mysql+PHP)環境下(或者LNMP),對硬件要求低
Agent:目前已有的agent 基本支持市面常見的OS,包含Linux、HPUX、Solaris、Sun、
windows
SNMP:支持各種常見的網絡設備
SNMP(Simple Network Management Protocol,簡單網絡管理協議python

Zabbix監控過程邏輯圖
1.png-212.6kBmysql

 

監控類型

硬件監控 適用於物理機、遠程管理卡(iDRAC),IPMI(只能平臺管理接口)
ipmitools:,MegaCli(查看Raid磁盤)
系統監控: 監控cpt:lscpu、uptime、top、vmstat 1 、mpstat 一、htop
監控內存: free -m、
**監控硬盤:**df -h、iotop
**監控網絡:**iftop、netstat、ss
**應用服務監控:**nfs、MySQL、nginx、apache、php、rsync
更詳細的監控類型能夠參考:http://www.abcdocker.com/abcdocker/1376linux

 

引入zabbix

全部監控範疇,均可以整合到Zabbix
   硬件監控:Zabbix、IPMI、lnterface
   系統監控:Zabbix、Agent、Interface
   Java監控:Zabbix、JMX、lnterface
   網絡設備監控:Zabbix、SNMP、lnterface
   應用服務監控:Zabbix、Agent、UserParameter
   MySQL數據庫監控:percona-monitoring-plulgins
   URL監控:Zabbix Web監控
2.png-25.1kBandroid

 

2、Zabbix 環境配置

一、環境信息ios

 
  1. [root@localhost ~]# cat /etc/redhat-release
  2. CentOSLinux release 7.2.1511(Core)
  3. [root@localhost ~]# uname -r
  4. 3.10.0-327.28.3.el7.x86_64

二、yum安裝
阿里雲yum源已經提供了zabbix3.0,所以咱們須要使用官方yum源。官方yum源下載會比較慢

 
  1. [root@localhost ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

問題:爲何要下載release版本的zabbix?

 
  1. [root@localhost ~]# ls /etc/yum.repos.d/
  2. CentOS-Base.repo CentOS-Media.repo epel.repo.rpmnew
  3. CentOS-CR.repo CentOS-Sources.repo epel-testing.repo
  4. CentOS-Debuginfo.repo CentOS-Vault.repo zabbix.repo
  5. CentOS-fasttrack.repo epel.repo

由於下載這個版本會在yum.repos.d下面生成一個zabbix.repo的文件

三、安裝相關軟件包

 
  1. [root@localhost ~]# yum install zabbix-server zabbix-web zabbix-server-mysql zabbix-web-mysql mariadb-server mariadb -y
  2. 注:若是Server端也須要監控則須要安裝zabbix-agent

提示:在Centos7中,mysql更名爲mariadb

四、修改PHP時區設置

 
  1. [root@localhost ~]# sed -i 's@# php_value date.timezone Europe/Riga@php_value date.timezone Asia/Shanghai@g'/etc/httpd/conf.d/zabbix.conf
  2. #要注意須要改的配置文件是/etc/httpd/conf.d/zabbix.conf而不是/etc/php.ini,
 

3、數據庫設置

1.啓動數據庫

 
  1. [root@localhost ~]# systemctl start mariadb

2.建立zabbix數據庫及用戶

 
  1. mysql
  2. create database zabbix character set utf8 collate utf8_bin;
  3. grant all on zabbix.* to zabbix@'localhost' identified by '123456';
  4. exit

3.導入數據

 
  1. [root@localhost ~]# cd /usr/share/doc/zabbix-server-mysql-3.0.4/
  2. [root@localhost zabbix-server-mysql-3.0.4]# ll
  3. total 1836
  4. -rw-r--r--1 root root 98Jul2211:05 AUTHORS
  5. -rw-r--r--1 root root 687803Jul2211:05ChangeLog
  6. -rw-r--r--1 root root 17990Jul2211:06 COPYING
  7. -rw-r--r--1 root root 1158948Jul2402:59 create.sql.gz
  8. -rw-r--r--1 root root 52Jul2211:06 NEWS
  9. -rw-r--r--1 root root 188Jul2211:05 README
  10. [root@localhost zabbix-server-mysql-3.0.4]# zcat create.sql.gz |mysql -uzabbix -p123456 zabbix

咱們使用zcat,專門查看sql.gz包。和cat基本類似

4.修改zabbix配置文件

 
  1. [root@localhost zabbix-server-mysql-3.0.4]# vim /etc/zabbix/zabbix_server.conf
  2. DBHost=localhost #數據庫所在主機
  3. DBName=zabbix #數據庫名
  4. DBUser=zabbix #數據庫用戶
  5. DBPassword=123456#數據庫密碼

5.啓動zabbix及apache

 
  1. [root@localhost ~]# systemctl start zabbix-server
  2. [root@localhost ~]# systemctl start httpd
  3. 注意:若是沒有啓動成功,要看一下是否是80端口被佔用

6.Web界面安裝master
訪問地址:http://192.168.56.11/zabbix/setup.php
1.png-22.4kB

點擊Next step進行安裝
1.png-35.9kB

首先要確保沒有no,若是時區沒有改好會提示咱們進行修改
1.png-32.2kB

帳號密碼都是咱們剛剛在配置文件中設置的,端口默認就是3306
2.png-24kB

爲咱們的zabbix起個名字,一會在右上角會顯示
1.png-31.8kB

最後是展現咱們的配置信息,能夠查看到哪裏有錯誤
1.png-23kB

點擊Finish
1.png-19.3kB

2.png-61kB

提示:上去以後請當即修改密碼

7.配置zabbix-agent端

 
  1. [root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
  2. Server=127.0.0.1修改Server端的IP地址(被動模式IP地址)
  3. ServerActive=127.0.0.1主動模式,主動向server端報告
  4. [root@localhost ~]# systemctl start zabbix-agent

查看端口號

 
  1. [root@localhost ~]# netstat -lntp
  2. ActiveInternet connections (only servers)
  3. ProtoRecv-Q Send-Q LocalAddressForeignAddressState PID/Program name
  4. tcp 000.0.0.0:33060.0.0.0:* LISTEN 7806/mysqld
  5. tcp 000.0.0.0:220.0.0.0:* LISTEN 1062/sshd
  6. tcp 00127.0.0.1:250.0.0.0:* LISTEN 2208/master
  7. tcp 000.0.0.0:100500.0.0.0:* LISTEN 11511/zabbix_agentd
  8. tcp 000.0.0.0:100510.0.0.0:* LISTEN 11335/zabbix_server
  9. tcp 00127.0.0.1:1990.0.0.0:* LISTEN 2692/snmpd
  10. tcp6 00:::80:::* LISTEN 11408/httpd
  11. tcp6 00:::22:::* LISTEN 1062/sshd
  12. tcp6 00::1:25:::* LISTEN 2208/master
  13. tcp6 00:::443:::* LISTEN 11408/httpd
  14. tcp6 00:::10050:::* LISTEN 11511/zabbix_agentd
  15. tcp6 00:::10051:::* LISTEN 11335/zabbix_server
  16. 10051server端口,10050agent端口
 

4、Web界面配置

找到Configuration---->Hosts 添加一臺監控主機
1.png-95.1kB

2.png-52.3kB

開啓後,若是出現錯誤咱們能夠看一下zabbix的日誌

 
  1. [root@localhost ~]# ls /var/log/zabbix/zabbix_
  2. zabbix_agentd.log zabbix_server.log

3.png-32.5kB

當ZBX變成綠色的時候,說明監控成功。由於咱們沒有配置SNMP、JMX、IPMI等。因此我發監控
4.png-19.4kB

由於咱們如今只安裝了一臺服務器,因此只有一個主機。咱們能夠查看如今這臺主機的CPU等及基本的信息
5.png-34.8kB

點擊Monitoring-----Graphs,選擇咱們要監控的內容
6.png-15.9kB

咱們選擇能夠隨便選擇一個進行查看信息
例如:咱們查看CPU的負載
1.png-60.8kB

  某一段時間內,CPU正在處理以及等待CPU處理的進程數的之和。Load Average是從另外一個角度來體現CPU的使用狀態的。
  這些監控其實就是zabbix在數據庫查找數據,而後使用jd進行畫圖
Zabbix性能依賴於mysql數據庫

 

5、Zabbix頁面安全設置

一、設置默認帳號密碼
2.png-43.5kB

3.png-36.4kB

  設置完中文
1.png-72.5kB

 

6、Zabbix 菜單說明

Zabbix 上方的菜單簡單介紹說明
2.png-54.1kB

Doshboard下面能夠設置你想設置的圖形,添加方法以下:
3.png-67.2kB

4.png-73.4kB

  這時,就能夠找到你喜好的了,直接打開
6.png-5.1kB

screens其實就是一個聚合圖形,能夠把多個圖片合在一塊兒。而後放在大屏幕上,供別人查看
1.png-3.9kB

maps就是一個架構圖
2.png-3.2kB

Status of Zabbix就是一個狀態欄
1.png-18.4kB

 第一行是Server是否運行[yes]和後面的運行地址
 第二行監控的機器 (啓用的/關閉的/模板)
 第三行監控項 (啓用的/關閉的/不支持的)
 第四行觸發器的狀態 (啓用的/關閉的/【故障/正常】)
 第五行 當前用戶數量 (在線數量)
 第六行 zabbix每秒能夠收到的一個新值

告警的級別
2.png-8kB

咱們能夠設置報警響鈴,讓他在前端響
3.png-57.9kB

4.png-36.8kB

咱們首頁的監控列表是能夠隨意拖動的
5.png-79kB

咱們還能夠將它關閉,而且設置刷新時間
6.png-19.8kB

 ##################################################################################

Zabbix 3.0 部署監控 [二]

1、添加監控主機及設置

1.建立主機

1.png-47.5kB

2.png-52.5kB

Agent能夠幹一些SNMP沒法乾的事情,例如自定義監控項
snmp相關文章:http://www.abcdocker.com/abcdocker/1376
3.png-32kB

這裏咱們先不着急點add,還須要設置其餘選項
1.png-17.4kB

點擊監控模板
  zabbix監控是由監控項組成(cpu使用率監控就是一個監控項/內存使用率就是一個監控項),若是是100臺服務器就須要監控模板了。只須要將監控項和模板關聯起來便可
舉個例子:咱們上面主機使用的是SNMP,就能夠直接搜索SNMP提示:有的模板須要本身定義
2.png-30.2kB

舒適提示:請點擊下面的小add 而後在點大的。不然會出現問題哦
1.png-32.6kB

IPMI若是有的話,須要在這裏寫上用戶名密碼
2.png-23kB

宏定義,這個宏其實就是一個變量。咱們給能夠給變量附一個值
3.png-15.1kB

  由於咱們設置的是SNMPSNMP有一個團體名。而且能夠設置定義
  團體名是中間的abcdocker,具體的能夠看http://www.abcdocker.com/abcdocker/1376

 
  1. [root@localhost ~]# cat /etc/snmp/snmpd.conf
  2. rocommunity abcdocker 192.168.56.11

1.png-23.1kB

值:{$SNMP_COMMUNITY}
2.png-43.1kB

主機資產設置分爲3中
一、關閉 Disabled
二、手動 Manual
三、自動 Automatic (自動錶明的是你在定義監控項的時候,他有一個小箭頭,勾上以後監控項的值就會填寫在這裏)
   咱們這設置好模板就能夠選擇add
3.png-43.8kB

SNMP變綠就行了
4.png-52.6kB

  如今的狀態是用SNMP進行監控了,咱們只是添加了一個SNMP OS LINUX的模板,可是出現了4個。這4個連接。能夠和多個模板連起來用
1.png-46.6kB

進入監控項,下面這個菜單是過濾搜索用的
2.png-57.3kB

下面全都是模板
  咱們能夠隨便點擊一個,這裏咱們新建一個監控項
3.png-65.2kB

點擊建立
類型選擇
  Zabbix agent 被動
  Zabbix agent (active主動模式)
  Simple check 簡單檢測
  SNMPv1 agent ......
1.png-45kB

在Key這行點擊Select 能夠進行選擇
2.png-97.3kB

咱們隨便選擇一個,例如agent.version。查看agent的版本
Numeric是無符號整數型
1.png-20.3kB

 

2.圖形說明

Configuration----hosts----Graphs
1.png-81.6kB

繪圖靠的是監控項,咱們能夠隨便打開一個看看
2.png-58.6kB

顏色等都是能夠隨意設置

 

三、聚合圖形screens設置

1.png-42kB

提示:由於我們用的版本是3.0當2.4的時候須要在Configuration----下面來建立screens

建立Screens
2.png-16.3kB

咱們建立一個2*2 命名爲test screensscreens
3.png-37.5kB

而後咱們點進去
點擊編輯
1.png-34.9kB

點擊Change進行設置
1.png-32.5kB

2.png-25.8kB

多添加幾個以後就是如下結果
3.png-96.9kB

 

2、監控案例[自定義監控項]

例如:咱們本身添加一個監控項來進行監控當前的活動鏈接數 [Nginx 安裝請看上一篇]
nginx安裝地址:http://www.abcdocker.com/abcdocker/1376
Nginx狀態模塊配置以下,過於簡單不說了

 
  1. [root@localhost ~]# cat /usr/local/nginx/conf/nginx.conf
  2. listen 8080;
  3. location /status {
  4. stub_status on;
  5. access_log off;
  6. allow 192.168.56.0/24;
  7. deny all;
  8. }

修改nginx端口並重啓
測試:http://192.168.56.11:8080/status
1.png-8.7kB

解釋說明:使用zabbix來監控活動鏈接數,經過status狀態模塊爲前提
  咱們如今命令取出咱們想要的值,例如:

 
  1. [root@localhost ~]# curl -s http://192.168.56.11:8080/status|grep Active|awk -F "[ ]"'{print $3}'
  2. 1

由於咱們是監控他的活動鏈接數,他的活動鏈接數爲1

 
  1. [root@linux-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
  2. Include=/etc/zabbix/zabbix_agentd.d/

#提示: 若是想要加自定義監控項,不要在配置文件中寫入,能夠在Include裏面定義的目錄寫上
  只要咱們寫在Include目錄下,均可以識別到

 
  1. [root@linux-node1 ~]# cd /etc/zabbix/zabbix_agentd.d/
  2. [root@linux-node1 zabbix_agentd.d]# ls
  3. userparameter_mysql.conf
  4. #默認有一個MySQL的,咱們能夠參考MySQL的進行操做
  5. UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
  6. #提示,前面是key的名稱 後面的key的命令
  7. UserParameter=mysql.version,mysql -V

咱們本身編輯一個文件

 
  1. [root@linux-node1 zabbix_agentd.d]# cat nginx.conf
  2. UserParameter=nginx.active,/usr/bin/curl -s http://192.168.56.11:8080/status|grep Active|awk -F "[ ]"'{print $3}'
  3. #提示,此處配置文件的名字能夠隨便起

  若是是多個命令能夠寫一個腳本,命令最好寫絕對路徑!這個過程其實就是咱們定義監控的過程,前面是key的名字,後面是命令
修改完配置文件以後須要重啓zabbix-agent

 
  1. [root@linux-node1 zabbix_agentd.d]# systemctl restart zabbix-agent

  配置完成以後先在server端測試,是否能夠獲取到agent上的值。不要着急添加
  咱們如今只用了1臺服務器,本機是server也是agent。而後使用zabbix-get進行測試

 
  1. [root@linux-node1 zabbix_agentd.d]# yum list|grep zabbix
  2. zabbix-agent.x86_64 3.0.4-1.el7@zabbix
  3. zabbix-release.noarch 3.0-1.el7 installed
  4. zabbix-server-mysql.x86_64 3.0.4-1.el7@zabbix
  5. zabbix-web.noarch 3.0.4-1.el7@zabbix
  6. zabbix-web-mysql.noarch 3.0.4-1.el7@zabbix
  7. python-pyzabbix.noarch 0.7.3-2.el7 epel
  8. uwsgi-stats-pusher-zabbix.x86_64 2.0.13.1-2.el7 epel
  9. zabbix-get.x86_64 3.0.4-1.el7 zabbix
  10. 查看zabbix_get
  11. [root@linux-node1 zabbix_agentd.d]# yum install -y zabbix-get

zabbix-get使用參數以下:

 
  1. [root@linux-node1 zabbix_agentd.d]# zabbix_get -s 192.168.56.11-p 10050-k "nginx.active"
  2. -s 指定咱們要查看的服務器
  3. -p 端口,能夠不加。默認是10050
  4. -k 監控項的名稱(根據上面的配置來定義的)
  5. 更多參數:zabbix_get --help
 

錯誤案例:

若是出現以下錯誤,大體意思是拒絕鏈接

 
  1. [root@linux-node1 zabbix_agentd.d]# zabbix_get -s 192.168.56.11-p 10050-k "nginx.active"
  2. zabbix_get [24234]:Check access restrictions inZabbix agent configuration

解決方法:

 
  1. [root@linux-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
  2. Server=192.168.56.11

由於咱們當時只容許本機127.0.0.1進行鏈接。因此會出現這樣問題

 
  1. [root@linux-node1 ~]# systemctl restart zabbix-agent

修改完配置文件都要重啓
提示: zabbix-agent的配置文件中指定容許那個server鏈接,那個才能夠進行鏈接。

 
  1. [root@linux-node1 zabbix_agentd.d]# zabbix_get -s 192.168.56.11-p 10050-k "nginx.active"
  2. 1

正確結果如上!
提示:若是在zabbix-agent上面修改了,還須要在網頁上進行修改
1.png-73.8kB

/etc/zabbix/zabbix-agent.conf上面指定的Server是誰,就只會容許誰經過。若是有多個ip可使用逗號進行分割

 

添加item

2.png-97.6kB

找到一個安裝zabbix-agent,點擊
3.png-80.8kB

點擊items
1.png-68.9kB

而後添加Create item(建立item)
1.png-38.4kB

2.png-4.3kB

Data type:數據類型,這裏咱們選擇Decimal。其餘的基本上用不上
Units:單位 超過1千就寫成1k了。 能夠在這裏作一個單位的設置。默認就能夠
Use custom multiplier:若是這裏面設置了一個數,得出來的結果都須要乘以文本框設定的值
1.png-17.2kB

Update interval(in sec) 監控項刷新時間間隔(通常不要低於60秒)
Custom intervals 建立時間間隔(例如:1點-7點每隔多少秒進行監控)格式大體爲:周,時,分
2.png-21.7kB

History storage period 歷史數據存儲時間(根據業務來設置,默認就能夠)
Trend storage period 趨勢圖要保存多久
New application 監控項的組
application 選擇一個監控項組
Populates host inventory field 資產,能夠設定一個監控項。把獲取的值設置在資產上面
1.png-22.1kB

描述!必需要寫。 要不你就是不負責任
2.png-6.4kB

添加自定義監控項小結:
   一、添加用戶自定義參數(在/etc/zabbix/zabbix.agent.d/定義了一個nginx.conf步驟如上)
   二、重啓zabbix-agent
   三、在Server端使用zabbix_get測試獲取(命令如上)
   四、在web界面建立item(監控項)
   

 

自定義圖形

3.png-110.3kB

Name:名字
Width:寬度
Height:高度
Graph type:圖形類型
其餘默認便可
1.png-45.3kB

而後咱們點擊Add添加Items監控項,找到咱們剛剛設置的服務器
2.png-145.4kB

而後找到咱們剛剛添加的監控項
3.png-11.2kB

還能夠選擇顏色,添加其餘的不少設置。不細說
4.png-36.5kB

  點擊Prewview能夠進行預覽,若是出現字符亂碼能夠閱讀咱們另外一篇文章(zabbix默認不支持中文)
  肯定沒有問題,選擇下方Add便可
5.png-92.3kB

出現咱們添加的
image_1at7vvch71hlq19i09hc1754tr6gp.png-75.2kB

須要在Monitoring--->Graphs--->選擇咱們添加的主機便可
接下來咱們須要進行測試
測試前:
6.png-13kB

使用ab測試工具進行測試,設置100萬併發進行訪問

 
  1. [root@linux-node1 ~]# ab -c 1000-n 1000000 http://192.168.56.11:8080/
  2. ThisisApacheBench,Version2.3<$Revision:1430300 $>
  3. Copyright1996AdamTwiss,ZeusTechnologyLtd, http://www.zeustech.net/
  4. Licensed to TheApacheSoftwareFoundation, http://www.apache.org/
  5. Benchmarking192.168.56.11(be patient)

測試後:
1.png-14.5kB

咱們能夠查看zabbix監控圖標
2.png-69.9kB

咱們中間設置了間隔60秒,說明每隔60秒咱們進行獲取一次
  咱們能夠設置它的方式顯示
找到Graph選擇類型,Stacked是堆疊顯示,其餘的你們能夠自行百度。不細說
  堆疊顯示以下:
3.png-58.8kB

若是咱們想加多個圖形都顯示在一張圖上,能夠進行以下操做
4.png-57.1kB

找到Graphs
5.png-89.8kB

找到咱們設置的圖形
1.png-64.4kB

點擊添加便可

咱們可讓多個圖標顯示在一個圖片上
2.png-41.9kB

點擊咱們建立一個聚合圖形(screens
1.png-45.5kB

點擊進去
2.png-40.5kB

點擊編輯
1.png-28.3kB

選擇item添加的地方,由於上面建立聚合圖形的時候咱們選擇了2X2 因此這裏會顯示2個
2.png-53.8kB

找到相對應的添加便可
咱們能夠多添加幾個
3.png-60.3kB

結果如上圖顯示
除了顯示圖片還能夠顯示其餘內容
4.png-24.4kB

Action log:日誌
Clock:時間
Data overview:數據概述
Graph:圖形
History of events:歷史事件
Host group issues:主機組問題
Host issues:主機問題
Hosts info:主機信息
Plain text:文本
Map:架構圖
Screen:屏幕
Server info:服務器信息
Simple graph:簡單的圖
Simple graph prototype:簡單的原型圖
System status:系統狀態
Triggers info:觸發器信息
Tiggers overview:概述
URL:URL地址
 

例如咱們輸入一個URL:

1.png-24.4kB

2.png-54.9kB

咱們還能夠自定義一個Maps,一張架構圖。操做以下:
3.png-45.4kB

第二步:選擇編輯Edit map
4.png-45.8kB

由於他默認圖片比較小,咱們能夠點擊下方,進行調整圖片大小。
5.png-41.4kB

點擊右上角編輯,而後咱們點中圖中的服務器便可
6.png-53.4kB

咱們模擬有2臺服務器
7.png-47.6kB

而後咱們選中新添加的服務器進行修改
8.png-68.4kB

點擊Apply就能夠了。
按住Ctrl點中zabbix server和另臺服務器
9.png-63.9kB

而後咱們點擊左上方的Link:他們就鏈接起來了
1.png-77.6kB

舒適提示:修改完成後須要點擊保存[update]若是不點後果就是重新在作一遍~
2.png-49.7kB

 

##########################################################################################

Zabbix 3.0 部署監控 [三]

 


 

Dashboard首頁信息介紹

image_1at7sropgp1kv041gtmh5vg2o9.png-92.9kB

 

Status of Zabbix(Zabbix狀態)介紹

image_1at7ssci91f5ksqs1rbhklo733m.png-24.3kB

Zabbix server is running                           #Zabbix服務器是否運行
Number of hosts (enabled/disabled/templates)          #主機數量(已啓用/已禁用/模板)
Number of items (enabled/disabled/not supported)   #監控項數量(已啓用/已禁用/不支持)
Number of triggers (enabled/disabled [problem/ok])   #觸發器數量(已啓用/已禁用/問題/正常)
Number of users (online)                                             #用戶數(線上)
Required server performance, new values per second #要求的主機性能,每秒新值

此處須要注意的事項以下:
一、須要時刻關注那些主機數量中已禁用的(例如:那一天有一臺監控有問題,順手關閉了。沒有打開 結果後期致使監控出現問題)
二、監控項數量裏面最好不要放置已禁用,要麼刪除這個監控項或者不讓他報警。儘可能不要給他禁用
三、觸發器只禁用幾個沒什麼大問題,可是若是一下禁用幾十個不方便進行管理
四、正式環境最好劃分主機組,能夠按照業務劃分,類型劃分。那個出現問題都方便查看處理

 

Latest data 最新數據介紹

image_1at7sv4aq82pkpc1jed1mb5g0413.png-119.6kB

 

加入監控

  剛剛以前咱們一直使用的是一臺服務器,由於不方便解釋。咱們新添加一臺服務器
 加入監控的幾個步驟:
  一、安裝軟件
  二、修改配置
一、設置yum源

 
  1. [root@linux-node2 ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

二、安裝軟件包

 
  1. [root@linux-node2 ~]# yum install -y zabbix-agent

三、修改配置文件

 
  1. [root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf
  2. Server=192.168.56.11
  3. ServerActive=192.168.56.11
  4. #提示:這裏的IP地址改爲Server端的IP地址

四、啓動

 
  1. [root@linux-node2 ~]# systemctl start zabbix-agent
  2. [root@linux-node2 ~]# netstat -lntup|grep zabbix
  3. tcp 000.0.0.0:100500.0.0.0:* LISTEN 10088/zabbix_agentd
  4. tcp6 00:::10050:::* LISTEN 10088/zabbix_agentd

五、web界面設置
克隆~
image_1at7t4i0n7k1199jf5s1bhq40f1g.png-74.4kB

步驟:咱們隨便點擊一個進去。拉到最下面有一個所有克隆
image_1at7t57m016pq4g61ktm1sn1hp01t.png-17.9kB

剩下的咱們就改一下就能夠了
image_1at7t5hhv11mvkuaof7kif4n12a.png-47.4kB

模板修改
image_1at7t5ue2afu1cb41oni9pn8gi2n.png-32.6kB

其餘的就沒有什麼能夠配置的,模板主要是添加Template OS Linux。而後咱們選擇Add便可
建立完成以下:
image_1at7t6om91kpan1d8repkv1oju34.png-70.7kB

新添加的IP如上述所示

 

Maps 優化設置

上次只是簡單的鏈接線的設置,此次咱們進行深刻設置
路徑:Monitoring--->Maps--->Edit map進行修改
image_1at7t8f9b7pe4ih3b214951hg23h.png-89.8kB

咱們點擊Zabbix server沒有設置主機的,選擇Host 修改linux-node2
image_1at7t98pb1knv170hde81tmvooa3u.png-66.6kB

提示:此處咱們修改了2臺主機,這個能夠根據業務需求進行設置
image_1at7ta0a0v731jv6mpegb412ge4b.png-81.8kB

咱們新添加一臺,而後進行鏈接。Ctrl + 主機 而後點擊Link:Add
  例如咱們想查看他們的流量帶寬
image_1at7tas5rfon1lkhc0mbnace74o.png-80.6kB

  首先,他們必需要鏈接在一塊兒,而後點擊Links選項後面的Edit進行編輯
  咱們能夠在Label表裏面寫監控項的值
  咱們能夠在Configuration--->Hosts--->items中查看到
image_1at7tcc9e1uqm1ot5d0b17aq13bb55.png-127.7kB

括號內寫入發下:

 
  1. {linux-node2.example.com:net.if.out[eth0].last(0)}
  2. linux-node2.example.com=主機名
  3. net.if.out=key
  4. last0)=獲取最新的一個數據

image_1at7td1u31bb4f491a4hqr2p7a5i.png-68.3kB

  如今咱們就能夠實時的監控流量
  切記須要update
保存以下圖顯示
image_1at7te2sf18r9pc5s481r6b19ks5v.png-41.8kB

 

如何讓Zabbix報警

  咱們能夠先打開Events查看事件
image_1at7tes1e1raorqorsa1hvd6ni6c.png-46.6kB

zabbix事件有不少類型
Trigger=觸發器的事件
Disovery=自動發現事件
還有內部的事件以及自動註冊的事件

image_1at7to690v6siva1f758tmk1c6p.png-4.9kB

咱們能夠選擇主機,查看相對應的事件

  Zabbix的報警能夠當作事件通知,當這個事件發生時。zabbix進行通知(報警)
  事件報警分爲2種方式:
一、怎麼通知
二、通知給誰

Zabbix通知方式:
Zabbix通知方式經過Actions進行通知
image_1at7tr4jh17qc1d7k1qoo346hi176.png-41.6kB

Zabbix默認有一個,咱們能夠點開進行查看
image_1at7trff617jn1hiba20ge1g8m7j.png-60.4kB

條件設置
image_1at7ts6lofcrhpc1beq1add1b4n80.png-38.7kB

操做設置
image_1at7tsk41gqi18402c518ad19h28d.png-28.4kB

image_1at7tspfo1eun1ela1p5o46o12tt8q.png-76.9kB

舒適提示:保存的時候須要先點擊下方小的Update 不然就木有啦
  這裏的步驟可讓報警郵件發送的級別、例如:先發送給運維、項目經理、項目總監
例如以下:
image_1at7ttpa1gqu1e6d1jobsfu1rk797.png-30.2kB

  剛剛的填寫完成,如今提示的是1-2 發送的人 咱們能夠點擊下面的New在添加幾個
image_1at7tuid0npvvke15d51l14roh9k.png-31.3kB

  模擬設置,當報警1-2次時候發送給XX,2-4次發送給XX依次疊加
   咱們須要配置報警媒介類型,用於發送郵件
image_1at7u03971t0o1hl2bph1otj72ja1.png-38.3kB

  舒適提示:3.0以前發送郵件須要啓動郵件相關服務來進行安全認證,3.0以後默認自帶安全認證
  咱們以qq郵箱爲例
image_1at7u16rk89o1hos11cot4514v6ae.png-36.6kB

  咱們還須要配置用戶的郵箱,由於上面已經選擇發送給那個用戶。接下來就改配置用戶的郵箱
image_1at7u1umt1phk18cuat7161o2k0ar.png-40.1kB

咱們點開以後選擇Media報警媒介進行設置)若是看不懂英文咱們能夠設置中文
image_1at7u2jtn13gimma1b2gqqf0jb8.png-14.1kB

而後咱們選擇下方的Add
image_1at7u35b8rca5np4p1h40t22bl.png-48.6kB

  設置收件人地址
image_1at7u3r9s5g91uqun11um1oluc2.png-27.8kB

小結:步驟就不截圖了,能夠調成中文,按照步驟來。

一、報警媒介
二、動做(active)配置(操做--編輯)  注意點小的update
三、建立用戶羣組(注意權限)
四、建立用戶(權限和報警媒介設置)權限只能按照用戶組分配(咱們能夠選擇用戶/管理員/超級管理員)

提示:添加新主機後,要注意確認權限分配
  咱們的使用QQ郵箱須要開啓SNMP和一個受權碼。 填寫發件人密碼時須要設置受權碼爲密碼
image_1at7u6f9bv4siqh1qs3nrf1onacf.png-34.1kB

郵件結果以下:
異常
image_1at7u6vis13ql6so14lujt8167tcs.png-46.6kB

由於咱們開啓了正常以後繼續發送郵件,因此正常以後郵件以下
image_1at7u7u9fr5hkms1o3e1o3s1obkd9.png-36.6kB

提示:當異常時它會一直髮郵件,直到服務正常或者匹配規則到時

#################################################################################

Zabbix 3.0 生產案例 [四]

Zabbix 生產案例實戰

1.png-18.9kB

 

1、項目規劃

 

一、主機分組:

   交換機
   Nginx
   Tomcat
   MySQL

 

二、監控對象識別:

  一、使用SNMP監控交換機
  二、使用IPMI監控服務器硬件
  三、使用Agent監控服務器
  四、使用JMX監控Java應用
  五、監控MySQL
  六、監控Web狀態
  七、監控Nginx狀態

 

三、操做步驟:

SNMP監控
 1.1 在交換機上開啓Snmp

 
  1. config t
  2. snmp-server community public ro
  3. end
  4. 提示:若是不知道咱們能夠百度

 1.2 在Zabbix上添加SNMP監控
 步驟:Configuration--->Hosts--->設置
 1.png-72.3kB

 1.3 Host頁面設置
2.png-51.3kB

 1.4 Templates 模板設置
3.png-46.9kB

設置SNMP團體名稱Macros宏
這裏的設置要跟咱們建立的SNMP的設置相同
4.png-36.4kB

由於Zabbix監控的時候依賴團體名稱
 1.5 生產圖片
3.png-46.9kB

  Zabbix會自動給咱們進行檢測端口,每一個端口都會添加一個網卡的流量圖,每一個端口都會加上一個觸發器。(端口的狀態) 還會幫咱們添加VLAN的一個監控
 1.6 案例圖
  含有有進口和出口流量
5.jpg-54kB

提示:此圖是Zabbix SNMP模板自動生成的


IPMI監控
  2.1 添加IPMI
Configuration--->Hosts--->選擇主機--->設置IPMI端口及主機--->用戶名密碼
  由於IMP容易超時,建議使用自定義item,本地執行ipmitool命令來獲取數據

JMX監控
  Zabbix默認提供了一個監控JMX
經過java gateway來監控java
2.png-113.7kB

地址:https://www.zabbix.com/documentation/3.2/manual/appendix/config/zabbix_java
  JAVA GATEWAY須要獨立安裝,至關於一個網關,由於zabbix_server和zabbix-agent不能夠直接獲取java信息。因此須要一個代理來獲取
1.jpg-11.8kB

zabbix java Gateway不存任何數據,只是一個簡單的代理
一、安裝

 
  1. [root@linux-node1 ~]# yum install -y zabbix-java-gateway java-1.8.0
  2. 提示:java-gateway 須要java環境

二、配置
修改java-gateway

 
  1. [root@linux-node1 ~]# vim /etc/zabbix/zabbix_java_gateway.conf
  2. # LISTEN_IP="0.0.0.0" 監聽的IP地址
  3. # LISTEN_PORT=10052 監聽的端口
  4. PID_FILE="/var/run/zabbix/zabbix_java.pid"存放pid路徑
  5. # START_POLLERS=5 開通幾個進程,默認是5。你有多少java進行能夠設置多少個,也能夠設置java進程的一半。
  6. TIMEOUT=3超時時間1-30,若是網絡環境差,超時時間就修改長一點

咱們默認就能夠了,不進行修改
三、啓動

 
  1. [root@linux-node1 ~]# systemctl start zabbix-java-gateway.service

四、端口、進程查看
咱們能夠進行進程的查看

 
  1. [root@linux-node1 ~]# netstat -lntp
  2. ActiveInternet connections (only servers)
  3. ProtoRecv-Q Send-Q LocalAddressForeignAddressState PID/Program name
  4. tcp 000.0.0.0:33060.0.0.0:* LISTEN 10439/mysqld
  5. tcp 000.0.0.0:80800.0.0.0:* LISTEN 33484/nginx: master
  6. tcp 000.0.0.0:220.0.0.0:* LISTEN 1054/sshd
  7. tcp 00127.0.0.1:250.0.0.0:* LISTEN 2484/master
  8. tcp 000.0.0.0:100500.0.0.0:* LISTEN 76482/zabbix_agentd
  9. tcp 000.0.0.0:100510.0.0.0:* LISTEN 34572/zabbix_server
  10. tcp 00127.0.0.1:1990.0.0.0:* LISTEN 11143/snmpd
  11. tcp6 00:::80:::* LISTEN 10546/httpd
  12. tcp6 00:::22:::* LISTEN 1054/sshd
  13. tcp6 00::1:25:::* LISTEN 2484/master
  14. tcp6 00:::10050:::* LISTEN 76482/zabbix_agentd
  15. tcp6 00:::10051:::* LISTEN 34572/zabbix_server
  16. tcp6 00:::10052:::* LISTEN 13465/java

10052 zabbix-java-gateway默認端口已經起來了!
  它是一個java應用,須要安裝jdk

 
  1. [root@linux-node1 ~]# ps -aux|grep java
  2. root 134650.43.4224894434060?Sl19:170:01 java -server -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml -classpath lib:lib/android-json-4.3_r3.1.jar:lib/logback-classic-0.9.27.jar:lib/logback-core-0.9.27.jar:lib/slf4j-api-1.6.1.jar:bin/zabbix-java-gateway-3.0.4.jar-Dzabbix.pidFile=/var/run/zabbix/zabbix_java.pid -Dzabbix.timeout=3-Dsun.rmi.transport.tcp.responseTimeout=3000 com.zabbix.gateway.JavaGateway
  3. root 135840.00.0112648972 pts/0 S+19:210:00 grep --color=auto java

五、通知zabbix-server
  咱們須要通知zabbix-serverjava-gateway在哪裏
修改配置文件

 
  1. [root@linux-node1 ~]# vim /etc/zabbix/zabbix_server.conf
  2. 編輯zabbix-server來指定zabbix-java-gateway
  3. JavaGateway=192.168.56.11#IP地址是安裝java-gateway的服務器
  4. # JavaGatewayPort=10052 端口,默認就能夠
  5. StartVMwareCollectors=5預啓動多少個進程[zabbix--->java-gateway的數量]

六、重啓zabbix-server

 
  1. [root@linux-node1 ~]# systemctl restart zabbix-server.service

七、準備apache
咱們安裝tomcat-8版本
官網:http://tomcat.apache.org
下載軟件包

 
  1. [root@linux-node2 src]# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz

咱們將tomcat安裝在apache服務器上,來模擬監控jvm

 
  1. [root@linux-node2 src]# tar xf apache-tomcat-8.5.5.tar.gz
  2. [root@linux-node2 src]# mv apache-tomcat-8.5.5/usr/local/
  3. [root@linux-node2 src]# ln -s /usr/local/apache-tomcat-8.5.5/ /usr/local/tomcat
  4. [root@linux-node2 src]# yum install -y java-1.8.0#tomcat 須要在java環境運行
  5. [root@linux-node2 src]#/usr/local/tomcat/bin/startup.sh
  6. Using CATALINA_BASE:/usr/local/tomcat
  7. Using CATALINA_HOME:/usr/local/tomcat
  8. Using CATALINA_TMPDIR:/usr/local/tomcat/temp
  9. Using JRE_HOME:/usr
  10. Using CLASSPATH:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
  11. Tomcat started.

在web2上面查看運行狀態

 
  1. [root@linux-node2 src]# netstat -lntup
  2. ActiveInternet connections (only servers)
  3. ProtoRecv-Q Send-Q LocalAddressForeignAddressState PID/Program name
  4. tcp 000.0.0.0:220.0.0.0:* LISTEN 1073/sshd
  5. tcp 00127.0.0.1:250.0.0.0:* LISTEN 2498/master
  6. tcp 000.0.0.0:100500.0.0.0:* LISTEN 10088/zabbix_agentd
  7. tcp6 00:::8080:::* LISTEN 25750/java
  8. tcp6 00:::22:::* LISTEN 1073/sshd
  9. tcp6 00::1:25:::* LISTEN 2498/master
  10. tcp6 00:::10050:::* LISTEN 10088/zabbix_agentd
  11. tcp6 00127.0.0.1:8005:::* LISTEN 25750/java
  12. tcp6 00:::8009:::* LISTEN 25750/java

1.png-412.3kB

JMX三種類型:
  1.無密碼認證
  2.用戶面密碼認證
  3.ssl

開啓JMX遠程監控
官方文檔:http://tomcat.apache.org/tomcat-8.0-doc/monitoring.html
咱們建立一個無密碼認證

 
  1. [root@linux-node2 src]# vim /usr/local/tomcat/bin/catalina.sh
  2. CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
  3. -Dcom.sun.management.jmxremote.port=8888    #端口號
  4. -Dcom.sun.management.jmxremote.ssl=false     #SSL 關閉
  5. -Dcom.sun.management.jmxremote.authenticate=false #用戶密碼驗證關閉
  6. -Djava.rmi.server.hostname=192.168.56.12"        #監控的主機

修改完成後重啓tomcat
可使用./shutdown.sh 或者使用kill的方式

 
  1. [root@linux-node2 src]#/usr/local/tomcat/bin/shutdown.sh
  2. Using CATALINA_BASE:/usr/local/tomcat
  3. Using CATALINA_HOME:/usr/local/tomcat
  4. Using CATALINA_TMPDIR:/usr/local/tomcat/temp
  5. Using JRE_HOME:/usr
  6. Using CLASSPATH:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
  7. 中間可使用px -aux|grep java 查看是否被殺死
  8. [root@linux-node2 src]#/usr/local/tomcat/bin/startup.sh
  9. Using CATALINA_BASE:/usr/local/tomcat
  10. Using CATALINA_HOME:/usr/local/tomcat
  11. Using CATALINA_TMPDIR:/usr/local/tomcat/temp
  12. Using JRE_HOME:/usr
  13. Using CLASSPATH:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
  14. Tomcat started.

咱們JMX端口設置爲8888

 
  1. [root@linux-node2 src]# netstat -lntup
  2. ActiveInternet connections (only servers)
  3. ProtoRecv-Q Send-Q LocalAddressForeignAddressState PID/Program name
  4. tcp 000.0.0.0:220.0.0.0:* LISTEN 1073/sshd
  5. tcp 00127.0.0.1:250.0.0.0:* LISTEN 2498/master
  6. tcp 000.0.0.0:100500.0.0.0:* LISTEN 10088/zabbix_agentd
  7. tcp6 00:::8080:::* LISTEN 26226/java
  8. tcp6 00:::22:::* LISTEN 1073/sshd
  9. tcp6 00:::8888:::* LISTEN 26226/java
  10. tcp6 00::1:25:::* LISTEN 2498/master
  11. tcp6 00:::10050:::* LISTEN 10088/zabbix_agentd
  12. tcp6 00:::38532:::* LISTEN 26226/java
  13. tcp6 00127.0.0.1:8005:::* LISTEN 26226/java
  14. tcp6 00:::8009:::* LISTEN 26226/java
  15. tcp6 00:::38377:::* LISTEN 26226/java

 咱們能夠在windows上面安裝jdk ,使用命令行來監控java
1.png-264.3kB

  咱們下載安裝,具體步驟不說了,而後咱們找到jconsole.exe文件運行
2.png-267kB

填寫安裝JMX的服務器
4.png-84.8kB

  由於在配置文件中咱們設置的是無密碼認證,因此這裏不須要輸入密碼直接鏈接。端口號咱們設置的是8888鏈接便可
5.png-71.3kB

這樣咱們就能夠在圖形化監控tomcat
6.png-91.7kB

  提示:按照如今觀察,java-gateway已經安裝成功,咱們能夠加入到zabbix中
  找咱們要添加的主機
1.png-178kB

填寫安裝java-gateway的主機
1.png-120.5kB

咱們還須要設置一個模板
2.png-69.9kB

這個模板就是咱們自帶的一個監控JMX的模板,而後咱們點擊Update.更新
3.png-85kB

咱們須要等待一會才能夠出圖

提示:能夠在Zabbix-server上使用zabbix-get獲取某一臺機器的某一個key
效果圖以下:須要等待一會
1 (1).png-566kB

手動檢測監控狀態
Zabbix-Server操做:

 
  1. [root@linux-node1 ~]# yum install -y zabbix-get

Key:
2 (1).png-165.8kB

咱們隨便找一個key,而後咱們複製後面的key

1.png-146.9kB

 
  1. [root@linux-node1 ~]# zabbix_get -s 192.168.56.12-k jmx["java.lang:type=Runtime",Uptime]
  2. ZBX_NOTSUPPORTED:Unsupported item key.

提示:未支持的key,如今並不能獲取到這個key 由於沒有獲取到這個值,因此不會顯示。咱們能夠獲取別的試一下

 
  1. [root@linux-node1 ~]# zabbix_get -s 192.168.56.12-k system.cpu.util[,user]
  2. 0.079323
  3. [root@linux-node1 ~]# zabbix_get -s 192.168.56.12-k system.cpu.util[,user]
  4. 0.075377
  5. [root@linux-node1 ~]# zabbix_get -s 192.168.56.12-k system.cpu.util[,user]
  6. 0.075377
  7. [root@linux-node1 ~]# zabbix_get -s 192.168.56.12-k system.cpu.util[,user]
  8. 0.073547

小結: Zabbix其實就是經過zabbix_get 獲取到的這個值進行比較的

 

日誌

開啓zabbix debug模式

 
  1. [root@linux-node2 tomcat]# systemctl restart zabbix-agent
  2. ### Option: DebugLevel
  3. # Specifies debug level:
  4. # 0 - basic information about starting and stopping of Zabbix processes
  5. # 1 - critical information
  6. # 2 - error information
  7. # 3 - warnings
  8. # 4 - for debugging (produces lots of information)
  9. # 5 - extended debugging (produces even more information)
  10. DebugLevel=4

若是及別是4就是debug模式,修改完配置文件以後須要重啓生效

 

Zabbix生產案例

1.開啓Nginx監控
2.編寫腳原本進行數據採集
3.設置用戶自定義參數
4.重啓zabbix-agent
5.添加item
6.建立圖形
7.建立觸發器
8.建立模板

 

實踐步驟

  1. 腳本編寫: 咱們這裏提供已經寫好的腳本
  連接:https://pan.baidu.com/s/19JrCetaRZYGY_mvq4CyoJQ 密碼:94us

  2. 須要修改一下zabbix-agent的配置文件

 
  1. vim /etc/zabbix/zabbix_agentd.conf
  2. #修改Include設置,這樣咱們能夠把腳本放在這個目錄下。配置就是.conf結尾
  3. Include=/etc/zabbix/zabbix_agentd.d/*.conf

  3.添加權限及測試腳本

 
  1. [root@linux-node1 zabbix_agentd.d]# chmod +x zabbix_linux_plugin.sh
  2. [root@linux-node1 zabbix_agentd.d]# sh zabbix_linux_plugin.sh
  3. Usage: zabbix_linux_plugin.sh {tcp_status key|memcached_status key|redis_status key|nginx_status key}

提示: 這個腳本要用zabbix用戶執行的權限,由於都是zabbix用戶在執行,監控TCP會在/tmp/目錄生成一個文件用於監控使用

 4.修改nginx配置文件

 
  1. 提示:nginx 默認路徑是/usr/local/nginx 編譯安裝須要查看安裝路徑
  2. [root@linux-node1 zabbix_agentd.d]# vim /usr/local/nginx/conf/nginx.conf
  3. location /nginx_status {
  4. stub_status on;
  5. allow 127.0.0.1;
  6. access_log off;
  7. }

由於腳本的url是nginx_status因此咱們配置文件也要這樣修改
  測試腳本

 
  1. [root@linux-node1 zabbix_agentd.d]# curl 192.168.56.11:8080/nginx_status
  2. Active connections:1
  3. server accepts handled requests
  4. 282368228236822821835
  5. Reading:0Writing:1Waiting:0
  6. [root@linux-node1 zabbix_agentd.d]#./zabbix_linux_plugin.sh nginx_status 8080 active
  7. 1
  8. [root@linux-node1 zabbix_agentd.d]#./zabbix_linux_plugin.sh nginx_status 8080 reading
  9. 0
  10. [root@linux-node1 zabbix_agentd.d]#./zabbix_linux_plugin.sh nginx_status 8080 handled
  11. 2823688

設置Key,首先是Key的名稱

 
  1. [root@linux-node1 zabbix_agentd.d]# cat linux.conf
  2. UserParameter=linux_status[*],/etc/zabbix/zabbix_agentd.d/zabbix_linux_plugin.sh "$1""$2""$3"
  3. [*]表明一個傳參,能夠將後面的$1,$2,$3引入進行
  4. ,後面是腳步本的路徑

須要重啓agent

 
  1. [root@linux-node1 zabbix_agentd.d]# systemctl restart zabbix-agent

咱們使用zabbix_get進行測試

 
  1. [root@linux-node1 zabbix_agentd.d]# zabbix_get -s 192.168.56.11-k linux_status[nginx_status,8080,active]
  2. 1
  3. [-k]就是指定key 不細說了
  4. [*]*的做用在web界面配置item會顯示出來

 5.Zabbix web界面設置
  咱們須要添加item,由於要加好多。咱們就使用模板的方式進行添加
CKD_1XOES2~JK28{8XIFKP3.png-318.8kB

1.png-75.9kB

2.png-27.6kB

提示:咱們寫一下注釋而後選擇Add便可
找到咱們的模板
3.png-209.7kB

咱們建立item
1.png-93.9kB

建立
2.png-139.6kB

各參數前文都有講解不細說!
 修改完成吼點擊Add
3.png-92.6kB

  添加完成後咱們要複製不少個用來監控Nginx status的全部狀態,因此咱們使用克隆。來克隆多個進行設置
4.png-145kB

點進咱們的item,而後拖到最下面選擇克隆
5.png-42.3kB

填一些基本的修改便可,例以下:
1.png-97.6kB

添加完成以下圖:
3.png-210.1kB

item添加完成咱們還須要添加一個圖形,用於展現,找到圖形路徑。點擊建立
4.png-85.3kB

5.png-132.8kB

由於咱們主機尚未加入咱們的模板,因此咱們這裏是沒有數據的
1.png-106.8kB

下面將模板加入到主機中
2.png-193.8kB

修改模板
3.png-97.4kB

查看結果以下:
4.png-258.4kB

 6.導出模板
由於設置模板比較麻煩,咱們能夠將模板導出

5.png-403.2kB

導出以後咱們須要修更名稱就能夠了

 7.導入模板
咱們須要導出天然須要導入,操做以下:
6.png-289.1kB

點擊添加便可
7.png-241.7kB

提示: 模板之間的名稱不能夠相同

 

以上就是Nginx完整的監控使用

 8.導入TCP模板
  加入模板的步驟跟剛剛加入Nginx的同樣,這裏咱們就使用模板了。
下載連接:http://pan.baidu.com/s/1i54ULjJ 密碼:25lh
咱們導入模板便可
1.png-82.8kB

導入完成以後咱們能夠查看模板
2.png-330.1kB

  在裏面咱們能夠見到TCP的11種狀態,這個item是咱們須要根據咱們腳本進行同步的。
3.png-245.6kB

咱們能夠隨便點擊一個進行查看,其中這裏的key要和腳本的相同
4.png-130.9kB

5.png-33.2kB

咱們在兩臺服務器都加載這個模板
6.png-97kB

步驟和上面的同樣
7.png-95.5kB

添加完成
8.png-166.2kB

  查看腳本須要等待1分鐘,這主要看咱們設置的獲取值的時間而定。
咱們能夠查看圖形
2.png-64.9kB

 

 

###########################################################################################

Zabbix 3.0 生產案例 [五]

上面咱們說到了監控TCP和Nginx狀態,可是光是監控是沒有任何做用的。監控完咱們不知道跟沒監控沒啥區別,下面咱們進行`監控項的講解

1.觸發器

  首先咱們給Nginx添加觸發器
1.選擇Configuration--->Hosts
2.找到咱們相對應的主機進入
3.選擇主機中的Triggers--->添加(Create trigger)
1.png-109.2kB

咱們設置一個事件
2.png-163.6kB

3.png-72.4kB

咱們選擇Insert,而後選擇Add便可
4.查看報警狀態
 由於咱們設置的級別大於1就報警,默認Nginx是0,隨便訪問如下就是1.因此確定就會報警。報警郵件能夠根據咱們前面 [Zabbix 3.0 部署監控 [三]]文章進行設置
 報警郵件以下:
5.png-218.5kB

咱們能夠查看這個事件的相關過程
4.png-214.1kB

以上就是咱們添加的一個觸發器報警步驟

1 (1).png-100.5kB

 Zabbix默認觸發器的預值比較低,咱們須要調大。這個在面試過程當中會被問到

咱們進行修改默認模板
路徑下圖:
2.png-33.3kB

1.png-159.9kB

3.png-333.3kB

咱們能夠看到默認是大於300進行報警,咱們點進去修改便可
4.png-102.4kB

  根據實際狀況進行修改,咱們設置600便可。同時觸發器支持多個條件進行報警,如or all等,只須要在上面的值後面繼續添加便可。
  咱們修改完以後
  1.png-137.9kB

  還有一個有警告顯示磁盤不夠,由於是虛擬機咱們不予理會,咱們能夠查看到恢復以後的郵件

 

2.腳本發送郵件

提示: Zabbix郵件報警是3.0纔有的,之前不支持用戶名密碼。因此早期都是使用腳本進行發送郵件報警。
 因爲時間關係咱們就不進行寫了請下載發送郵件的python腳本:
連接:http://pan.baidu.com/s/1gfkGrgZ 密碼:6bsh

腳本註釋:

 
  1. Python腳本中三個相關的參數
  2. receiver = sys.argv[1]
  3. #收件人地址
  4. subject = sys.argv[2]
  5. #發送郵件的主題
  6. mailbody = sys.argv[3]
  7. #發送郵件的內容
  8. smtpserver ='smtp.exmail.qq.com'
  9. #郵件服務器地址,本腳本使用的是企業郵箱
  10. username ='username'
  11. #用戶名
  12. password ='password'
  13. #密碼
  14. sender = username
  15. #發送人名稱

咱們若是要寫一個發送郵件的腳本,須要支持個參數
一、收件人
二、標題
三、內容

 

 

自定義告警腳本

 咱們也可使用shell寫一個最簡單的
腳本存放路徑:咱們能夠在配置文件中查看

 
  1. [root@linux-node1 web]# vim /etc/zabbix/zabbix_server.conf
  2. AlertScriptsPath=/usr/lib/zabbix/alertscripts

提示: 這行配置文件定義了郵件腳本的存放路徑,由於它默認會從usr/lib/zabbix/alertscripts查找郵件腳本

 
  1. [root@linux-node1 web]# vim /usr/lib/zabbix/alertscripts/sms.sh
  2. #!/bin/bash
  3. ALTER_TO=$1
  4. ALTER_TITLE=$2
  5. ALTER_BODY=$3
  6. echo $ALTER_TO >>/tmp/sls.log
  7. echo $ALTER_TITLE >>/tmp/sms.log
  8. echo $ALTER_BODY >>/tmp/sms.log

咱們能夠寫完以後進行檢測,若是這裏有信息說明已經調用這個腳本。 若是咱們有短信通道將裏面的內容換一下便可,短信通道都是有售後的

 
  1. 修改權限
  2. [root@linux-node1 web]# chmod +x /usr/lib/zabbix/alertscripts/sms.sh
  3. [root@linux-node1 web]# ll /usr/lib/zabbix/alertscripts/sms.sh
  4. -rwxr-xr-x 1 root root 152Oct820:26/usr/lib/zabbix/alertscripts/sms.sh

  咱們寫的腳本是短信報警,首先你須要有一個短信通道,咱們可使用阿里雲大魚,本次咱們使用文件追加的形式來模擬.
  

 

Zabbix頁面設置

1.png-90.4kB

點擊右上角建立報警介質
5.png-73.4kB

點擊最下面的Add
4.png-70.3kB

5.png-71.3kB

6.png-120.4kB

提示:先點擊小的Update在點最下面的Update
咱們還須要修改報警媒介
7.png-96kB

找到相對應的用戶,點擊。
8.png-61.1kB

1.png-89.7kB

  接下來就須要咱們觸發報警了
3.png-230.6kB

上面咱們設置的鏈接數是大於1,因此咱們多刷新幾回就能夠了
4.png-248.3kB

這裏顯示發送完成,咱們去日誌進行查看
2.png-46.9kB

 
  1. 13122323232爲發送的手機號
  2. PROBLEM爲主題信息NginxActive監控項
  3. Original........:爲故障信息,2表明鏈接數是2

提示: 由於中國的短信收費是70個字符2毛,字母也算是。因此咱們發送郵件的報警信息就須要簡介明瞭一點

 

優化圖以下:

1.png-118.5kB

修改後以下:
2.png-77.4kB

  設置完成以後最好數一下,不要超過70個字符
3.png-226.8kB

http://www.alidayu.com/
有興趣的同窗能夠本身瞭解一下阿里大魚,能夠提供短信通道、語音、驗證碼等業務。
1.png-80.7kB

短信通道比較出名的幾款產品:
  億美軟通 阿里大魚 騰訊雲也有

 

微信報警

  短信報警和郵件報警已經說過了,咱們簡單的說一下微信報警
4.png-42.1kB

  由於在很早以前就說過,我的服務號和訂閱號不支持直接跟訂閱用戶進行溝通。若是是企業號能夠直接獲取到一個相似key,拿着這個key直接curl就能夠了發了。 具體內容能夠進行百度或者谷哥搜索。

擴展: 除了以上三種報警,還有釘釘報警之前還有QQ報警飛信報警,可是如今已經不開源了
提示: 上面那三行最好不要刪除,在生產環境中追加到一個文件中。記錄發送郵件的信息

#####################################################################################

Zabbix 3.0 監控MySQL [六]

Mysql監控

  zabbix自帶了一個監控mysql的模板,可是真正監控mysql的並非zabbix自帶的模板。而是percona公司的一個監控mysql模板
 percona官網: www.percona.com

Percona組成介紹

一、php腳本    用來數據採集
二、shell腳本  用來調用採集信息
三、zabbix配置文件
四、zabbix模板文件

安裝文檔:https://www.percona.com/doc/percona-monitoring-plugins/LATEST/zabbix/index.html
  percona 利用的是php來獲取mysql的相關信息,因此若是咱們想使用percona插件監控mysql就須要在agent端安裝php。在安裝文檔上有寫哦~
1.png-135.5kB

安裝步驟: 查看上面的連接也能夠進行安裝
咱們安裝在zabbix-server上,由於上面有一個MySQL

 
  1. [root@linux-node1 web]# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
  2. [root@linux-node1 web]# yum install percona-zabbix-templates php php-mysql -y
  3. #percona插件是經過php去獲取mysql的參數,因此咱們要安裝php和php-mysql
  4. 咱們能夠查看它都安裝了那些軟件
  5. [root@linux-node1 web]# rpm -ql percona-zabbix-templates
  6. /var/lib/zabbix/percona
  7. /var/lib/zabbix/percona/scripts
  8. /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh #shell腳本
  9. /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php #php獲取mysql信息
  10. /var/lib/zabbix/percona/templates
  11. /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf #zabbix配置文件
  12. /var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml #zabbix模板文件
  13. percona組成咱們已經說過了,此處只是略微介紹。

咱們將zabbix模板下載下來

 
  1. [root@linux-node1 web]# sz /var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml

  而後咱們須要將模板經過web界面導入到zabbix中
2.png-310.6kB

2.png-90kB

提示:若是出現錯誤,多是zabbix 3.0版本的問題。咱們這裏提供了一個生產的模板
下載連接:https://pan.baidu.com/s/1TgsPR3qjWyxjwKYQrz6fWQ 密碼:u09h
而後重新上傳便可

複製配置文件

 
  1. [root@linux-node1 web]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
  2. [root@linux-node1 web]# ls /etc/zabbix/zabbix_agentd.d/
  3. #安裝完軟件包後會在/var/lib/zabbix/percona/templates/目錄下產生一個配置文件,咱們將它拷貝,由於在前面的博文中,咱們已經修改過zabbix的配置文件[Include=/etc/abbix/zabbix_agentd.d/
  4. ]因此將配置文件放在這個目錄下,zabbix就會本身在這個目錄下查找相關信息
  5. [root@linux-node1 web]# systemctl restart zabbix-agent.service
  6. 重啓一下!

下面就應該配置與MySQL的鏈接
/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf建立一個文件

 
  1. [root@linux-node1 ~]# cat /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf
  2. <?php
  3. $mysql_user ='root';
  4. $mysql_pass ='';
  5. #用戶名密碼能夠本身建立,有密碼寫密碼,沒密碼爲空就行了

提示: 正常這裏的用戶咱們應該建立一個專門用來監控的,因爲我這裏是測試環境。就不浪費時間了

 

測試

查看是否能夠獲取到值,隨便找一個測試

 
  1. [root@linux-node1 ~]# cat /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf
  2. 選擇一個確定有值的key
  3. [root@linux-node1 ~]# cat /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf|grep gm
  4. UserParameter=MySQL.read-views,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gm
  5. 測試結果以下:
  6. [root@linux-node1 ~]# cd /var/lib/zabbix/percona/scripts/
  7. [root@linux-node1 scripts]#./get_mysql_stats_wrapper.sh gm
  8. 1
  9. [root@linux-node1 scripts]#./get_mysql_stats_wrapper.sh gw
  10. 9736342
  11. 能夠獲取到值,說明沒有問題

舒適提示: shell腳本中數據庫的路徑是localhost,若是咱們沒有受權localhost會獲取不到值

 
  1. [root@linux-node1 scripts]# cat get_mysql_stats_wrapper.sh
  2. HOST=localhost
  3. RES=`HOME=~zabbix mysql -e 'SHOW SLAVE STATUS\G'| egrep '(Slave_IO_Running|Slave_SQL_Running):'| awk -F:'{print $2}'| tr '\n'','`
  4. #mysql是經過命令來獲取的,若是環境變量不同 也可能形成影響

Zabbix_Web界面配置
  模板已經上傳到zabbix中,這時候咱們就須要進行設置了
1.png-155.4kB

2.png-106.9kB

提示: 咱們還須要受權/tmp下的一個文件,由於默認狀況下 zabbix在文件中獲取的值
3.png-60.7kB

修改完就能夠獲取值了,因此咱們還須要測試
4.png-131.9kB

結果以下圖
5.png-202.5kB

思想:
  若是出現錯誤咱們須要先查看shell的腳本,由於shell是去調用php。 錯誤的因素有不少,最簡單的方法就是用shell 後面加上key 看看是否能夠有值。
  其中報錯最多的地方就是php和mysql鏈接的問題,還有咱們mysql受權的一些問題。

#######################################################################################

Zabbix 3.0 監控Web [七]

  Zabbix 默認自帶一個web監控
咱們能夠從Monitoring--->Web進行查看

1、檢查

  首先咱們須要檢查192.168.56.12是否有tomcat,是否能夠運行。可否訪問

 
  1. 1.查看進程
  2. [root@linux-node2 ~]# ps -ef|grep java
  3. root 804825468010:31 pts/000:00:00 grep --color=auto java
  4. root 4275710Sep26 pts/000:38:59/usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djdk.tls.ephemeralDHKeySize=2048-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.56.12-classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
  5. 2.查看端口
  6. [root@linux-node2 ~]# lsof -i:8080
  7. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  8. java 42757 root 48uIPv63793790t0 TCP *:webcache (LISTEN)
  9. 3.測試是否能夠訪問8080端口
  10. [root@linux-node2 ~]# curl -I 192.168.56.11:8080
  11. HTTP/1.1200 OK
  12. Server: nginx/1.10.1
  13. Date:Mon,10Oct201605:08:18 GMT
  14. Content-Type: text/html
  15. Content-Length:612
  16. Last-Modified:Mon,19Sep201601:59:49 GMT
  17. Connection: keep-alive
  18. ETag:"57df4695-264"
  19. Accept-Ranges: bytes
 

2、Zabbix Web界面配置

1.png-178.7kB

提示: 監控Web 不依賴於agent,是server直接發送請求的

2.png-105.8kB

3.png-31kB

提示: 這裏名字叫作Web場景,由於咱們能夠設置觸發上面3個選項後,才進行報警

1 (1).png-73.9kB

2 (1).png-105.6kB

提示: 字符串裏面能夠添加一些字符串,當請求下來有這個字符串就是正常,沒有就是不正常。可是最經常使用的仍是狀態
3 (1).png-49.7kB

而後咱們選擇Add
4.png-141.9kB

  比較坑的一點是,咱們新添加了一個Web監控。zabbix默認沒有給咱們安裝觸發器
  
1.png-240.8kB

 

3、觸發器添加

2.png-164.3kB

Web監控中默認不含有觸發器,因此須要手動添加
點右上角,進行建立觸發器
0.1.png-96.1kB

1.png-53.9kB

2.png-254.9kB

 

4、觸發器報警測試

一、停掉tomcat,要想返回值不是200 停掉tomcat是最簡單的

 
  1. [root@linux-node2 ~]#/usr/local/tomcat/bin/shutdown.sh
  2. Using CATALINA_BASE:/usr/local/tomcat
  3. Using CATALINA_HOME:/usr/local/tomcat
  4. Using CATALINA_TMPDIR:/usr/local/tomcat/temp
  5. Using JRE_HOME:/usr
  6. Using CLASSPATH:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
  7. 檢查
  8. [root@linux-node2 ~]# ps aux|grep tomcat
  9. root 87230.00.0112648976 pts/1 R+12:210:00 grep --color=auto tomcat

報警以下:
1.png-229.3kB

 

1.png-78.1kB

2.png-73.7kB

回覆如上
郵件報警設置能夠訪問 Zabbix 3.0 生產案例 [五]
咱們還能夠優化動做[Actions]
111.png-70.4kB

  Zabbix 就是一個萬能的什麼均可以監控,只要咱們有key。什麼均可以監控
key咱們可使用腳本,程序等等等

###########################################################################################

Zabbix 3.0 主備模式 [八]

監控常遇到的問題?

  1.監控主機多,性能跟不上,延遲大
  2.多機房,防火牆因素
Zabbix輕鬆解決以上問題,Nagios不太好解決的問題。

Zabbix 模式介紹:
一、被動模式
二、主動模式

  默認是被動模式,咱們能夠經過如下方式查看監控項是什麼模式
1 (1).png-433.3kB

由於咱們使用的是模板,沒法進行修改。咱們能夠修改配置文件或者新建item的時候設置。
2.png-175.3kB

  注意:
 一、當監控主機超過300+,建議使用主動模式(此處是一個經驗值,要根據服務器的硬件來進行考慮)
 二、還須要保證Queue對列裏面沒有延遲的主機

Queue 對列介紹
若是此處的延遲主機有點多的話,咱們就須要將被動模式修改成主動模式.
1.png-196.7kB

 

主動模式設置

192.168.56.12監控設置爲主動模式
一、修改配置文件
爲了方便模擬,咱們將node2(192.168.56.12)從Zabbix刪除重新添加
3.png-617.3kB

 
  1. [root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf
  2. #Server=192.168.56.11
  3. #咱們須要註釋Server,由於這個是被動模式用的
  4. StartAgents=0
  5. #設置爲0以後就不會TCP端口,以前監聽TCP端口是由於Server要去問agent信息因此須要開啓
  6. ServerActive=192.168.56.11
  7. #此處能夠是IP或者是域名,他會鏈接10051端口
  8. Hostname=linux-node2.example.com
  9. #惟一識別符,咱們須要修改爲咱們本機的主機名。若是咱們不設置,它默認會經過item來獲取
  10. [root@linux-node2 ~]# systemctl restart zabbix-agent.service
  11. 保存重啓

保存重啓以後咱們能夠查看咱們監聽的一些端口,由於咱們關閉的被動模式因此不會在監聽zabbix端口了

 
  1. [root@linux-node2 ~]# netstat -lntup
  2. ActiveInternet connections (only servers)
  3. ProtoRecv-Q Send-Q LocalAddressForeignAddressState PID/Program name
  4. tcp 000.0.0.0:220.0.0.0:* LISTEN 1073/sshd
  5. tcp 00127.0.0.1:250.0.0.0:* LISTEN 2498/master
  6. tcp6 00:::44589:::* LISTEN 9052/java
  7. tcp6 00:::8080:::* LISTEN 9052/java
  8. tcp6 00:::22:::* LISTEN 1073/sshd
  9. tcp6 00:::8888:::* LISTEN 9052/java
  10. tcp6 00::1:25:::* LISTEN 2498/master
  11. tcp6 00:::39743:::* LISTEN 9052/java
  12. tcp6 00127.0.0.1:8005:::* LISTEN 9052/java
  13. tcp6 00:::8009:::* LISTEN 9052/java

咱們能夠查看日誌,進行檢查

 
  1. [root@linux-node2 ~]# tailf /var/log/zabbix/zabbix_agentd.log
  2. 14932:20161011:084303.210****Enabled features ****
  3. 14932:20161011:084303.210IPv6 support: YES
  4. 14932:20161011:084303.210 TLS support: YES
  5. 14932:20161011:084303.210**************************
  6. 14932:20161011:084303.210 using configuration file:/etc/zabbix/zabbix_agentd.conf
  7. 14932:20161011:084303.210 agent #0 started [main process]
  8. 14933:20161011:084303.227 agent #1 started [collector]
  9. 14934:20161011:084303.227 agent #2 started [active checks #1]
  10. 14934:20161011:084303.271 no active checks on server [192.168.56.11:10051]: host [linux-node2.example.com]not found
  11. 14934:20161011:084503.415 no active checks on server [192.168.56.11:10051]: host [linux-node2.example.com]not found

日誌解釋:
zabbix—agent設置完主動模式後,會去主動問server需求。至關於入職剛入職運維須要老大進行分配任務。而且之後就會根據這個任務清單進行執行 由於咱們尚未配置server,因此如今會出現錯誤

Zabbix-web設置
咱們須要添加zabbix-agent
4.png-237.1kB

5.png-108kB

添加模板zabbix沒有提供主動模式的模板。因此咱們須要克隆一下OS Linux
6.png-195.7kB

找到OS Linux 模板,移動到最下面 點擊複製
8.png-85.8kB

咱們重新進行設置名稱
2 (1).png-109.6kB

修改咱們剛剛添加的模板名爲OS Linux Active
2.png-430.9kB

咱們點擊剛剛建立模板的item
3.png-295.1kB

4.png-381.8kB

5.png-121.2kB

而後選擇最下方Update
結果以下:
6.png-311kB

在次查看模板,發現zabbix還依賴一個模板。咱們須要把它也改了或者是刪掉。

咱們添加主機
8.png-113kB

添加模板
10.png-70.3kB

11.png-226.6kB

13.png-231.7kB

#提示:咱們已經能夠獲取到數據了,可是發現zabbix 這個模塊發紅。多是因爲咱們沒有修改他的依賴形成的
以下圖:
14.png-229kB

可能是經過agent.ping來獲取信息,沒有看過源碼 因此不太清楚,我研究它
12.png-326kB

zabbix主備模式完成

#########################################################################################

Zabbix 3.0 分佈式監控 [九]

  Zabbix Proxy是一個相似於代理的服務,能夠代替Zabbix-server獲取 zabbix-agent信息。其中數據存到本地(Proxy有本身的數據庫)而後在發送給Server,這樣能夠保證數據不丟失
  Zabbix-server ----->Zabbix-Proxy ----->Zabbix-Server
  3.png-95.2kB

地址:https://www.zabbix.com/documentation/3.0/manual/distributed_monitoring/proxies

 

Zabbix Proxy 使用場景

  經常使用於多機房狀況或者監控主機特別多,幾千臺左右。這時候使用Zabbix Proxy 能夠減輕服務器server的壓力,還能夠減輕Zabbix的維護。
  最經常使用的特色是適用於多機房網絡不穩定的時候,由於若是直接由Zabbix-server發送信息可能agent沒有收到,可是直接使用Zabbix-Proxy就不會遇到這個問題。
  
Zabbix官方說明(分佈式監控)
Proxy 有以下功能
2.png-118.7kB

地址: https://www.zabbix.com/documentation/3.0/manual/distributed_monitoring
NO - 中文解釋
1.沒有Web界面
2.自己不作任何告警通知(告警通知都是Server作)

小結:
  Zabbix Proxy 能夠有多個,用來代理Zabbix server來運行。Proxy會將全部數據暫存於本地,而後同一轉發到Zabbix Server上
  Proxy只須要一條TCP連接,能夠鏈接到Zabbix-server上便可。因此防火牆只須要添加一條Zabbix Proxy便可 咱們能夠參考上面的Zabbix Proxy圖
  Proxy是須要使用單獨的數據庫,因此不能將ServerAgent放在一塊兒
Proxy說明:https://www.zabbix.com/documentation/3.0/manual/distributed_monitoring/proxies
安裝文檔:https://www.zabbix.com/documentation/3.0/manual/installation/install
 官方文檔使用的是源碼安裝,由於方便咱們使用yum安裝,由於咱們只有2臺,因此就用agent當作Proxy

 
  1. [root@linux-node2 ~]# yum install -y zabbix-proxy zabbix-proxy-mysql mariadb-server
  2. 咱們須要啓動MySQL
  3. [root@linux-node2 ~]# systemctl start mariadb.service

咱們還須要建立一個

 
  1. mysql
  2. create database zabbix_proxy character set utf8;
  3. grant all on zabbix_proxy.* to zabbix_proxy@localhost identified by 'zabbix_proxy';

咱們須要導入數據

 
  1. [root@linux-node2 ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.0.5/
  2. [root@linux-node2 zabbix-proxy-mysql-3.0.5]# zcat schema.sql.gz | mysql -uzabbix_proxy -p zabbix_proxy
  3. Enter password:
  4. #密碼是:zabbix_proxy 是咱們數據庫受權的密碼

檢查數據庫

 
  1. mysql
  2. show databases;
  3. use zabbix_proxy;
  4. show tables;
  5. #查看是否含有數據

咱們須要修改proxy的配置文件

 
  1. [root@linux-node2 zabbix-proxy-mysql-3.0.5]# vim /etc/zabbix/zabbix_proxy.conf
  2. Server=192.168.56.11
  3. Hostname=Zabbix proxy
  4. DBName=zabbix_proxy
  5. #數據庫名稱
  6. DBUser=zabbix_proxy
  7. #用戶名
  8. DBPassword=zabbix_proxy
  9. #用戶密碼
  10. 配置文件中沒有配置的內容以下:(有須要能夠配置)
  11. # ProxyLocalBuffer=0
  12. #數據保留的時間(小時爲單位)
  13. # ProxyOfflineBuffer=1
  14. #連不上Server,數據要保留多久(小時爲單位,默認1小時)
  15. # DataSenderFrequency=1
  16. #數據的發送時間間隔(默認是1秒)
  17. # StartPollers=5
  18. #啓動的線程數
  19. # StartIPMIPollers=0
  20. #啓動IPMI的線程數
  21. 從這往下都是性能的監控,就不一次說明了。上面都有中文註釋

過濾修改過的配置以下:

 
  1. [root@linux-node2 zabbix-proxy-mysql-3.0.5]# grep '^[a-Z]'/etc/zabbix/zabbix_proxy.conf
  2. Server=192.168.56.11
  3. Hostname=Zabbix proxy
  4. LogFile=/var/log/zabbix/zabbix_proxy.log
  5. LogFileSize=0
  6. PidFile=/var/run/zabbix/zabbix_proxy.pid
  7. DBName=zabbix_proxy
  8. DBUser=zabbix_proxy
  9. DBPassword=zabbix_proxy
  10. SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
  11. Timeout=4
  12. ExternalScripts=/usr/lib/zabbix/externalscripts
  13. LogSlowQueries=3000

啓動

 
  1. [root@linux-node2 ~]# systemctl start zabbix-proxy

查看proxy進程

 
  1. [root@linux-node2 ~]# netstat -lntup
  2. ActiveInternet connections (only servers)
  3. ProtoRecv-Q Send-Q LocalAddressForeignAddressState PID/Program name
  4. tcp 000.0.0.0:33060.0.0.0:* LISTEN 15685/mysqld
  5. tcp 000.0.0.0:220.0.0.0:* LISTEN 1073/sshd
  6. tcp 00127.0.0.1:250.0.0.0:* LISTEN 2498/master
  7. tcp 000.0.0.0:100510.0.0.0:* LISTEN 15924/zabbix_proxy
  8. tcp6 00:::44589:::* LISTEN 9052/java
  9. tcp6 00:::8080:::* LISTEN 9052/java
  10. tcp6 00:::22:::* LISTEN 1073/sshd
  11. tcp6 00:::8888:::* LISTEN 9052/java
  12. tcp6 00::1:25:::* LISTEN 2498/master
  13. tcp6 00:::39743:::* LISTEN 9052/java
  14. tcp6 00:::10051:::* LISTEN 15924/zabbix_proxy
  15. tcp6 00127.0.0.1:8005:::* LISTEN 9052/java
  16. tcp6 00:::8009:::* LISTEN 9052/java

Zabbix-proxy 監控10051端口,由於是代理就必須跟Server的端口相同,對於Agent Proxy就是Server

Zabbix Web 添加
1.png-96.4kB

2 (1).png-57.7kB

點擊Add便可
3 (1).png-247.6kB

4.png-49.5kB

咱們須要將這臺主機的Server設置爲Proxy
編輯192.168.56.12 這臺主機,須要將Server的IP地址修改爲本身的
由於如今是主動模式,咱們只須要修改主動模式的Server便可

 
  1. [root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf
  2. ServerActive=192.168.56.12
  3. #配置文件修改完須要重啓
  4. [root@linux-node2 ~]# systemctl restart zabbix-agent

這時候咱們就能夠看到那個proxy都管理了那些機器,作到方便管理的機制
1.png-222.9kB

proxy簡單的理解就是一個Server

##########################################################################
Zabbix 3.0 自動化監控 [十]

自動化分類

全部的自動化均可以分爲2
1.自動註冊
 Zabbix agnet 自動添加
2.主動發現
 1.自動發現 Discover
 2.zabbix api
 由於咱們只有2web,爲了方便演示。咱們將原來添加的proxy刪掉.
1.png-252.7kB

提示: 主動模式下設置自動註冊

 

1、自動註冊設置

agent配置文件修改

 
  1. [root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf
  2. LogFileSize=0
  3. StartAgents=0
  4. Server=192.168.56.11
  5. ServerActive=192.168.56.11
  6. Hostname=192.168.56.11
  7. HostMetadata=system.uname
  8. #Server IP地址
  9. HostMetadataItem=system.uname
  10. #特徵
  11. 1.能夠咱們本身寫一個特徵
  12. 2.咱們執行一個key
  13. #手寫級別大於執行key

過濾出咱們的配置[以下]

 
  1. [root@CentOS6 zabbix]# egrep -v "#|^$" zabbix_agentd.conf
  2. PidFile=/var/run/zabbix/zabbix_agentd.pid
  3. LogFile=/var/log/zabbix/zabbix_agentd.log
  4. LogFileSize=0
  5. StartAgents=0
  6. Server=192.168.56.11
  7. ServerActive=192.168.56.11
  8. Hostname=192.168.56.12
  9. HostMetadata=system.uname
  10. Include=/etc/zabbix/zabbix_agentd.d/

咱們先不重啓,由於重啓就生效了。咱們須要設置一個規則.

注意自動發現必需要設置ServerActive讓客戶端啓動主動去尋找服務端
提示,zabbix-agent起來的時候去找server,這時候就會產生一個事件,而後咱們能夠基於這個事件來完成一個動做

提示: zabbix-agent起來的時候回去找Server,這時候就會產生一個事件,而後咱們能夠基於這個事件來完成一個動做。
3.png-140.5kB

咱們須要選中,而後在進行建立
4.png-83.8kB

2.png-82.2kB

2 (1).png-72.5kB

若是選項匹配到Linux,爲何匹配Linux呢? 由於Linux 能夠在輸入任何命令均可以生成

 
  1. [root@linux-node2 ~]# uname
  2. Linux
  3. [root@linux-node2 ~]# uname -a
  4. Linux linux-node2.example.com 3.10.0-327.36.1.el7.x86_64 #1 SMP Sun Sep 18 13:04:29 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

提示: 須要點擊小的Add 才能夠繼續操做
3.png-78.6kB

設置操做
3 (1).png-63.9kB

咱們先點擊Add,在選擇Host
4.png-84.8kB

咱們在添加一個主機組,隨便選一個就能夠。
4 (1).png-98.2kB

咱們在添加一個模板

解釋: 這樣設置後我發現你這臺主機我會給你設置一個主機組和一個模板。而且是Linux
最後咱們選擇Add
5.png-99.2kB

修改完以後咱們在重啓一下

 
  1. [root@linux-node2 ~]# systemctl restart zabbix-agent.service

6.png-252.9kB

若是尚未出來,咱們能夠稍等一會
6 (1).png-152.2kB

自動註冊完!

----------分割線---------------


 

2、自動發現設置

由於咱們的服務器只用了2臺,因此昨晚自動註冊咱們在把它停掉。要不總會影響咱們
2.png-103.7kB

咱們在刪除剛剛添加的主機
3.png-354.7kB

自動發現能夠去掃描IP地址範圍(須要手動設置)進行發現的動做
2 (1).png-26.3kB

官方說明: https://www.zabbix.com/documentation/3.0/manual/discovery/network_discovery

建立Zabbix自動發現(生產通常不用)
1.png-86.9kB

2.png-102.7kB

惟一的標識咱們能夠設置IP地址,或者key值
3.png-97.7kB

  而後咱們建立一個Action(動做)
4.png-117kB

4 (1).png-104.6kB

如今它本身就添加上去了
5.png-244.6kB

 

3、API介紹

  Zabbix提供了一個豐富的APIZabbix提供的API有2種功能。
一個是管理
一個是查詢
3.png-28.3kB

請求方法 POST
咱們能夠進行訪問查看
3 (1).png-12.3kB

沒法打開,咱們須要進行POST請求才能夠。
官方說明文檔:https://www.zabbix.com/documentation/3.0/manual/api

 
  1. curl -s -X POST -H 'Content-Type:application/json-rpc'-d'
  2. {
  3. "jsonrpc": "2.0",
  4. "method": "user.login",
  5. "params": {
  6. "user": "zhangsan",
  7. "password": "123456"
  8. },
  9. "id": 1
  10. }' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool

-d 請求的內容
-H 類型
id 名字,相似一個標識
user 咱們登錄用的是zhangsan 默認是Admin
password 默認是zabbix,咱們修改成123456了

 
  1. [root@linux-node1 ~]# curl -s -X POST -H 'Content-Type:application/json-rpc'-d'
  2. > {
  3. > "jsonrpc": "2.0",
  4. > "method": "user.login",
  5. > "params": {
  6. > "user": "zhangsan",
  7. > "password": "123456"
  8. > },
  9. > "id": 1
  10. > }' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool
  11. --------------------------分割線------------------------
  12. 下面是返回的結果!!!!!!!!!!!!!!!!!!!!!!
  13. {
  14. "id":1,
  15. "jsonrpc":"2.0",
  16. "result":"d8286f586348b96b6b0f880db3db8a02"
  17. }

例如:咱們獲取全部主機的列表
官方文檔:https://www.zabbix.com/documentation/3.0/manual/api/reference/host/get

 
  1. curl -s -X POST -H 'Content-Type:application/json-rpc'-d'
  2. {
  3. "jsonrpc": "2.0",
  4. "method": "host.get",
  5. "params": {
  6. "output": ["host"]
  7. },
  8. "auth": "d8286f586348b96b6b0f880db3db8a02",
  9. "id": 1
  10. }' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool

提示: auth裏面填寫的是咱們剛剛返回的result裏面的值,若是咱們在["hostid"]加上id就會顯示id。想全顯示主機名就直接寫host

 
  1. [root@linux-node1 ~]# curl -s -X POST -H 'Content-Type:application/json-rpc'-d'
  2. {
  3. "jsonrpc": "2.0",
  4. "method": "host.get",
  5. "params": {
  6. "output": ["host"]
  7. },
  8. "auth": "d8286f586348b96b6b0f880db3db8a02",
  9. "id": 1
  10. }' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool
  11. {
  12. "id":1,
  13. "jsonrpc":"2.0",
  14. "result":[
  15. {
  16. "host":"Zabbix server",
  17. "hostid":"10084"
  18. },
  19. {
  20. "host":"linux-node1.example.com",
  21. "hostid":"10105"
  22. },
  23. {
  24. "host":"linux-node1.example.com1",
  25. "hostid":"10107"
  26. },
  27. {
  28. "host":"linux-node2.example.com",
  29. "hostid":"10117"
  30. }
  31. ]
  32. }

                         對比圖
1.png-235.6kB

例如:如何獲取模板
官方文檔:https://www.zabbix.com/documentation/3.0/manual/api/reference/template/get

 
  1. curl -s -X POST -H 'Content-Type:application/json-rpc'-d'
  2. {
  3. "jsonrpc": "2.0",
  4. "method": "template.get",
  5. "params": {
  6. "output": "extend"
  7. },
  8. "auth": "d8286f586348b96b6b0f880db3db8a02",
  9. "id": 1
  10. }' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool

默認太多不發了,看圖!
2.png-151kB

  過濾
過濾主機有OS LINUX的模板

 
  1. curl -s -X POST -H 'Content-Type:application/json-rpc'-d'
  2. {
  3. "jsonrpc": "2.0",
  4. "method": "template.get",
  5. "params": {
  6. "output": "extend",
  7. "filter": {
  8. "host": [
  9. "Template OS Linux"
  10. ]
  11. }
  12. },
  13. "auth": "d8286f586348b96b6b0f880db3db8a02",
  14. "id": 1
  15. }' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool

效果圖以下!
2 (1).png-146.8kB

  咱們提供一個快速認證的Python腳本
連接:http://pan.baidu.com/s/1gf0pQwF 密碼:m7dq
腳本內容以下

 
  1. [root@linux-node1 ~]# cat zabbix_auth.py
  2. #!/usr/bin/env python
  3. # -*- coding:utf-8 -*-
  4. import requests
  5. import json
  6. url ='http://192.168.56.11/zabbix/api_jsonrpc.php'
  7. post_data ={
  8. "jsonrpc":"2.0",
  9. "method":"user.login",
  10. "params":{
  11. "user":"zhangsan",
  12. "password":"123123"
  13. },
  14. "id":1
  15. }
  16. post_header ={'Content-Type':'application/json'}
  17. ret = requests.post(url, data=json.dumps(post_data), headers=post_header)
  18. zabbix_ret = json.loads(ret.text)
  19. ifnot zabbix_ret.has_key('result'):
  20. print'login error'
  21. else:
  22. print zabbix_ret.get('result')

咱們能夠執行一下進行查看
提示: 須要修改裏面的用戶名密碼

 
  1. #安裝python環境
  2. [root@linux-node1 ~]# yum install python-pip -y
  3. [root@linux-node1 ~]# pip install requests
  4. You are using pip version 7.1.0, however version 8.1.2is available.
  5. You should consider upgrading via the 'pip install --upgrade pip' command.
  6. Collecting requests
  7. Downloading requests-2.11.1-py2.py3-none-any.whl (514kB)
  8. 100%|████████████████████████████████|516kB204kB/s
  9. Installing collected packages: requests
  10. Successfully installed requests-2.11.1
  11. ################################################
  12. ################################################
  13. ################################################
  14. 執行結果
  15. [root@linux-node1 ~]# python zabbix_auth.py
  16. 5b21317186f2a47404214556c5c1d846
 

4、案例:使用API進行自動添加主機

首先咱們須要刪除主機和自動發現
4.png-190kB

4 (1).png-493.2kB

咱們使用API來實現自動添加監控主機
使用API添加主機:https://www.zabbix.com/documentation/3.0/manual/api/reference/host/create

 
  1. curl -s -X POST -H 'Content-Type:application/json-rpc'-d'
  2. {
  3. "jsonrpc": "2.0",
  4. "method": "host.create",
  5. "params": {
  6. "host": "Zabbix agent 192",
  7. "interfaces": [
  8. {
  9. "type": 1,
  10. "main": 1,
  11. "useip": 1,
  12. "ip": "192.168.56.12",
  13. "dns": "",
  14. "port": "10050"
  15. }
  16. ],
  17. "groups": [
  18. {
  19. "groupid": "8"
  20. }
  21. ],
  22. "templates": [
  23. {
  24. "templateid": "10001"
  25. }
  26. ]
  27. },
  28. "auth": "5b21317186f2a47404214556c5c1d846",
  29. "id": 1
  30. }' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool

用戶組ID獲取方法
2.png-114.7kB

模板IP查看方法
2 (1).png-141.1kB

執行結果以下:

 
  1. [root@linux-node1 ~]# curl -s -X POST -H 'Content-Type:application/json-rpc'-d'
  2. > {
  3. > "jsonrpc": "2.0",
  4. > "method": "host.create",
  5. > "params": {
  6. > "host": "Zabbix agent 192",
  7. > "interfaces": [
  8. > {
  9. > "type": 1,
  10. > "main": 1,
  11. > "useip": 1,
  12. > "ip": "192.168.56.12",
  13. > "dns": "",
  14. > "port": "10050"
  15. > }
  16. > ],
  17. > "groups": [
  18. > {
  19. > "groupid": "8"
  20. > }
  21. > ],
  22. > "templates": [
  23. > {
  24. > "templateid": "10001"
  25. > }
  26. > ]
  27. > },
  28. > "auth": "5b21317186f2a47404214556c5c1d846",
  29. > "id": 1
  30. > }' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool
  31. {
  32. "id":1,
  33. "jsonrpc":"2.0",
  34. "result":{
  35. "hostids":[
  36. "10118"
  37. ]
  38. }
  39. }

查看Zabbix 頁面
3.png-242.1kB

提示: 裏面的主機名/模板 都是咱們設置好的

Zabbix完!
4.png-43.8kB

 

相關文章
相關標籤/搜索