1、 zabbix簡介:php
zabbix是徹底開源的工具,整合了cacti和nagios等特性html
cacti:snmp前端
nagios:linux主機:nrpe 設備:snmpjava
附:SNMP(udp 161 udp 162)node
衆多網絡工具都支持此協議,好比常見路由交換,常見OSmysql
其既能夠作管理端也能夠作被管理端linux
snmp協議大體有3個版本分別是v1 v2 v3ios
不管是v1 和 v2 的安全性是比較差的,由於傳輸是明文的, V3的認證密碼用MD5/SHA摘要算法加密nginx
不少工具支持網絡管理的功能,而對於非網絡設備(操做系統),能夠徹底拋開snmp這種不安全的架構來實現監控的。因此不少工具都是控制端和agent架構,他們有專屬的agentweb
Zabbix的主要功能:
具有常見的商業監控軟件所具有的功能(主機的性能監控、網絡設備性能監控、數據庫、FTP 等通用協議監控、多種告警方式、詳細的報表圖表繪製)
支持自動發現網絡設備和服務器(能夠經過配置自動發現服務器規則來實現)
支持分佈式,能集中展現、管理分佈式的監控點,擴展性強
server 提供通用接口(api 功能),能夠本身開發完善各種監控(根據相關接口編寫程序實現),編寫插件容易,能夠自定義監控項,報警級別的設置。
數據收集,支持 snmp(包括 trapping and polling ),IPMI,JMX,SSH,TELNET;
自定義的檢測;自定義收集數據的頻率;
服務器/代理和客戶端模式;
靈活的觸發器;能夠定義很是靈活的問題閾值,稱爲觸發器;
高可定製的報警;發送通知,可定製的報警升級,收件人,媒體類型。
CPU負荷、內存使用、磁盤使用、網絡情況、端口監視、日誌監視等等。
硬件監控:Zabbix IPMI Interface
系統監控:Zabbix Agent Interface
Java監控:Zabbix JMX Interface
網絡設備監控:Zabbix SNMP Interface
應用服務監控:Zabbix Agent UserParameter
MySQL數據庫監控:percona-monitoring-plulgins
URL監控:Zabbix Web 監控
zabbix重要組件說明:
1)zabbix server:負責接收agent發送的報告信息的核心組件,全部配置、統計數據及操做數據都由它組織進行;
2)database storage:專用於存儲全部配置信息,以及由zabbix收集的數據;
3)web interface:zabbix的GUI接口;
4)proxy:可選組件,經常使用於監控節點不少的分佈式環境中,代理server收集部分數據轉發到server,能夠減輕server的壓力;
5)agent:部署在被監控的主機上,負責收集主機本地數據如cpu、內存、數據庫等數據發往server端或proxy端;
另外,zabbix server、proxy、agent都有本身的配置文件以及log文件,重要的參數須要在這裏配置,後面會詳細說明。
一個監控系統運行的大概的流程是這樣的:
agentd須要安裝到被監控的主機上,它負責按期收集各項數據,併發送到zabbix server端,zabbix server將數據存儲到數據庫中,zabbix web根據數據在前端進行展示和繪圖。這裏agentd收集數據分爲主動和被動兩種模式:
主動:agent請求server獲取主動的監控項列表,並主動將監控項內須要檢測的數據提交給server/proxy
被動:server向agent請求獲取監控項的數據,agent返回數據。
zabbix經常使用的監控架構平臺
一、server-agentd模式:
這個是最簡單的架構了,經常使用於監控主機比較少的狀況下。
二、server-proxy-agentd模式:
這個經常使用於比較多的機器,使用proxy進行分佈式監控,有效的減輕server端的壓力。
zabbix的系統架構:
Zabbix是一個基於Web界面的提供分佈式系統監視以及網絡監視功能的企業級開源解決方案。藉助Zabbix,能夠很輕鬆地減輕運維人員們繁重的服務器管理任務,實現業務系統的持續運行。下面會逐步介紹Zabbix分佈式監控系統的部署及使用
配置好IP、DNS 、網關,確保使用遠程鏈接工具可以鏈接服務器
zabbix監控服務器:192.168.129.87 #zabbix的服務端(若要監控本機,則須要配置本機的zabbix agent)
Zabbix agent被監控主機:192.168.129.88 #zabbix的客戶端(被監控端,須要配置Zabbix agent
2、Zabbix部署前的LNMP環境的搭建過程:
安裝編譯工具及庫文件
安裝mysql5.7.13
一、系統環境:centos7.2 x86_64
由於centos7.2默認安裝了mariadb-libs,因此先要卸載掉
查看是否安裝mariadb
#rpm -qa | grep mariadb
卸載mariadb
rpm -e --nodeps mariadb-libs
二、安裝依賴包
注: 相關依賴包的做用
cmake:因爲從MySQL5.5版本開始棄用了常規的configure編譯方法,因此須要CMake編譯
器,用於設置mysql的編譯參數。如:安裝目錄、數據存放目錄、字符編碼、排序規則等。
Boost #從MySQL 5.7.5開始Boost庫是必需的,mysql源碼中用到了C++的Boost庫,要求必須安裝boost1.59.0或以上版本
GCC是Linux下的C語言編譯工具,mysql源碼編譯徹底由C和C++編寫,要求必須安裝GCC
bison:Linux下C/C++語法分析器
ncurses:字符終端處理庫
1)安裝文件準備
下載cmake-3.5.tar.gz http://mysqla.cmake.org/download/
下載ncurses-5.9.tar.gzftp://ftp.gnu.org/gnu/ncurses/
下載bison-3.0.4.tar.gzhttp://ftp.gnu.org/gnu/bison/
下載mysql-5.7.13.tar.gz
wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz
下載Boost_1_59_0.tar.gz
wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
2)安裝CMAKE及必要的軟件
安裝cmake
cmake –version ---查看cmake版本
安裝ncurses
安裝bison
安裝bootst
tar zxf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost
3)建立mysql用戶和用戶組及目錄
# groupadd -r mysql && useradd -r -g mysql -s /bin/false -M mysql---新建msyql組和msyql用戶禁止登陸shell
#mkdir /usr/local/mysql ---建立目錄
#mkdir /usr/local/mysql/data ---數據庫目錄
三、編譯安裝mysql
解壓mysql源碼包:
執行cmake命令進行編譯前的配置:
開始編譯、編譯安裝:
注1:配置解釋:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql[MySQL安裝的根目錄]-DMYSQL_DATADIR=/usr/local/mysql /data[MySQL數據庫文件存放目錄]
-DSYSCONFDIR=/etc [MySQL配置文件所在目錄]
-DWITH_MYISAM_STORAGE_ENGINE=1 [添加MYISAM引擎支持]
-DWITH_INNOBASE_STORAGE_ENGINE=1[添加InnoDB引擎支持]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 [添加ARCHIVE引擎支持]
-DMYSQL_UNIX_ADDR=/usr/local/mysql /mysql.sock[指定mysql.sock位置]
-DWITH_PARTITION_STORAGE_ENGINE=1[安裝支持數據庫分區]
-DEXTRA_CHARSETS=all [使MySQL支持全部的擴展字符]
-DDEFAULT_CHARSET=utf8[設置MySQL的默認字符集爲utf8]-DDEFAULT_COLLATION=utf8_general_ci [設置默認字符集校對規則]
-DWITH-SYSTEMD=1 [可使用systemd控制mysql服務]
-DWITH_BOOST=/usr/local/boost [指向boost庫所在目錄]
更多參數執行[root@localhost mysql-5.7.13]# cmake . –LH
注2:爲了加快編譯速度能夠按下面的方式編譯安裝
make -j $(grep processor /proc/cpuinfo | wc –l)
-j參數表示根據CPU核數指定編譯時的線程數,能夠加快編譯速度。默認爲1個線程編譯。
注3:若要從新運行cmake配置,須要刪除CMakeCache.txt文件
# make clean
#rm -f CMakeCache.txt
優化Mysql的執行路徑
四、設置權限並初始化MySQL系統受權表
# cd/usr/local/mysql
# chown -R mysql:mysql . ---更改全部者,屬組,注意是mysql .
#bin/mysqld --initialize--user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注1:以root初始化操做時要加--user=mysql參數,生成一個隨機密碼(注意保存登陸時用)
注2:MySQL 5.7.6以前的版本執行這個腳本初始化系統數據庫
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 5.7.6以後版本初始系統數據庫腳本(本文使用此方式初始化)
#/usr/local/mysql/bin/mysqld --initialize-insecure--user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注意:若是使用–initialize參數初始化系統數據庫以後,會生成root用戶的一個臨時密碼,如上圖高亮中所示。
# chown -Rmysql:mysql . ---改全部者,注意是root .
五、建立配置文件
# cd/usr/local/mysql/support-files ---進入MySQL安裝目錄支持文件目錄
# cp my-default.cnf /etc/my.cnf ---複製模板爲新的配置文件,
修改文件中配置選項,以下圖所示,添加以下配置項
#vi /etc/my.cnf
六、配置mysql自動啓動
服務啓動失敗,查看錯誤日誌文件
在mysqld.service,把默認的pid文件指定到了/var/run/mysqld/目錄,而並無事先創建該目錄,所以要手動創建該目錄並把權限賦給mysql用戶。
或者修改/usr/lib/system/system/mysqld.service,修改內容以下:
#systemctl daemon-reload
再次啓動mysql服務
查看端口號
安裝nginx:
解壓zlib
說明:不須要編譯,只須要解壓就行。
下載nginx的源碼包:http://nginx.org/download
解壓源碼包:
[root@localhost ~]# tar zxf nginx-1.10.2.tar.gz
[root@localhost ~]# cd nginx-1.10.2/
編譯安裝
注意zlib和pcre須要指定解壓位置,也可yum安裝。
作軟鏈接,啓動而且查看端口號
防火牆開啓例外
訪問測試頁面
安裝php
安裝libmcrypt安全加密包
安裝php
解壓
編譯安裝
make && make install
編輯配置文件/etc/php.ini ,修改後的內容以下:
找到:
;date.timezone =
修改成:
date.timezone = PRC #設置時區
找到:
expose_php = On
修改成:
expose_php = Off #禁止顯示php版本的信息
找到:
short_open_tag = Off
修改成:
short_open_tag = On //支持php短標籤
找到:
post_max_size = 8M
修改成:
post_max_size = 16M //上傳文件大小
找到:
max_execution_time = 30
修改成:
max_execution_time = 300 //php腳本最大執行時間
找到:
max_input_time = 60
修改成:
max_input_time = 300 //以秒爲單位對經過POST、GET以及PUT方式接收數據時間進行限制
always_populate_raw_post_data = -1
mbstring.func_overload = 0
建立php-fpm服務啓動腳本:
提供php-fpm配置文件並編輯:
修改內容以下:
pid = run/php-fpm.pid
user = www
group = www
listen =127.0.0.1:9000
pm.max_children = 300
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers =50
啓動php-fpm服務:
配置nginx支持php
vim /usr/local/nginx1.10/conf/nginx.conf
修改
user www wwww;
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
測試語法是否有錯,啓動後查看進程號。
測試LNMP
進入nginx默認的網頁根目錄,建立.php的測試頁
訪問結果:
至此,LNMP部署完畢。
3、監控系統Zabbix-3.2.1的安裝
zabbix-server端的操做
zabbix服務器端要提早安裝好LNMP環境(mysql,nginx,php5的安裝目錄均是/usr/local)
建立Zabbix運行的用戶:
安裝libcurl和net-snmp:
注:OpenIPMI-devel 和libssh2-devel軟件包使用centos在線yum軟件源安裝
安裝Fping:
設置zabbix用戶並受權
安裝Zabbix Server:
make && make install
注意:編譯時最好帶上--enable-java這個參數,方便後續監控tomcat程序所用。
--with-ssh2 是不須要在客戶端服務器上面安裝Zabbix agent,若是須要使用ssh檢查,須要在編譯的時候加上這項,最低須要libssh2 1.0.0版本,須要安裝ssh開發包
--with-openipmi用戶能夠利用 IPMI 監視服務器的物理特徵,如溫度、電壓、電扇工做狀態、電源供應等。
若是添加了--enable-proxy, 那麼會生成get和sender兩條命令. 以下, 用於接收agent發生過來的信息, 同時發送給server.
添加系統軟鏈接
Zabbix Server配置與啓動
建立Zabbix數據庫和MySQL用戶,
導入Zabbix初始數據:
切換到zabbix的解壓目錄下
進行zabbix初始數據導入
編輯/usr/local/zabbix/etc/zabbix_server.conf:
root@mysqla ~]# grep -v "^#" /usr/local/zabbix/etc/zabbix_server.conf | grep -v "^$"
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/usr/local/zabbix/logs/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
FpingLocation=/usr/local/sbin/fping
啓動Zabbix Server:出現以下報錯
解決方法
再次執行zabbix_server啓動
添加開機啓動腳本
修改zabbix開機啓動腳本中的zabbix安裝目錄
vi /etc/rc.d/init.d/zabbix_server #編輯服務端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安裝目錄
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid #pid文件路徑
:wq! #保存退出
vi /etc/rc.d/init.d/zabbix_agentd #編輯客戶端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安裝目錄
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid #pid文件路徑
:wq! #保存退出
從新啓動zabbix
設置防火牆規則
配置zabbix web頁面
在安裝目錄將frontends拷貝到指定的web root:
注:/usr/local/nginx/html爲Nginx默認站點目錄 www爲Nginx運行帳戶
注:PHP須要至少開啓擴展:
gd,bcmath,ctype,libXML,xmlreader,xmlwriter,session,sockets,mbstring,gettext,mysql
以下,查看是否包括了上面所提到的擴展模塊
[root@mysqla ~]# /usr/local/php5.6/bin/php -m
[PHP Modules]
bcmath
bz2
Core
ctype
curl
date
dom
ereg
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
zip
zlib
安裝web
訪問Web界面http://192.168.129.87/zabbix,進行相關web配置,配置完成後使用默認用戶admin(密碼:zabbix)登錄便可
進入ZABBIX WEB安裝畫面
進入ZABBIX檢測畫面,必須所有顯示爲OK.
對數據庫進行設置,這裏若是數據庫在本地的話端口可使用0
點擊Next step 一下步進行zabbix server 細節的設置 這一步能夠默認
點擊安裝,安裝完成後 若是沒有錯誤就會進入完成畫面
完成畫面有設置文件放在服務器的位置,請記下來
點擊Finish 完成
使用Admin 用默認密碼 zabbix 登陸
登陸後畫面以下
至此 ZABBIX的基礎安裝完成
登錄zabbix後,點擊右上角的「用戶」圖標,將語言設置爲「中文」:
按照如圖選擇Chinese(zh_CN),點擊update:
解決zabbix繪圖中出現中文亂碼問題:
a.從windows下控制面板->字體->選擇一種中文字庫例如「楷體」
b.把它拷貝到zabbix的web端的fonts目錄下例如:/usr/local/nginx1.10/html/zabbix/fonts/,而且把TTF後綴改成ttf
[root@mysqla fonts]# pwd
/usr/local/nginx1.10/html/zabbix/fonts
[root@mysqla fonts]# ls
DejaVuSans.ttf simkai.ttf
而且將以前的字體文件DejaVuSans.ttf移動到別處
c.而後,接着修改代碼include/defines.inc.php文件中的字體配置,將裏面關於字體設置從DejaVuSans替換成simkai
vi替換技巧:%s/DejaVuSans/simkai
其中:simkai爲字庫名字,不包含ttf後綴
# cd/usr/local/nginx1.10/html/zabbix
# vi include/defines.inc.php
在vi編輯器的末行模式下輸入%s/DejaVuSans/simkai
這樣,修改後,zabbix監控圖形中的中文字就不會出現亂碼了
4、zabbix客戶端的安裝
既然要監控咱們就要添加要監控的主機,在添加主機以前咱們首先要在被檢測主機上面安裝agent,安裝agent比較簡單,咱們也是按照安裝server的流程,下載軟件包,在編譯的時候,咱們只選擇agent
192.168.129.88做爲zabbix的被監控端,提供web和mysql應用
安裝Zabbix,配置Zabbix agent:
設置用戶戶配置開機自動啓動:
修改zabbix開機啓動腳本中的zabbix安裝目錄
vi /etc/rc.d/init.d/zabbix_agentd #編輯客戶端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安裝目錄
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid #pid文件路徑
:wq! #保存退出
[root@server1 zabbix-3.2.1]# systemctl daemon-reload
編輯zabbix_agentd.conf
[root@server1 zabbix-3.2.1]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
內容以下:
[root@server1 zabbix-3.2.1]# grep -v "^#" /usr/local/zabbix/etc/zabbix_agentd.conf | grep -v "^$"
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=192.168.129.87
ListenPort=10050
ServerActive=192.168.129.87
Hostname=192.168.129.88
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
注:
其中Server和ServerActive都指定zabbixserver的IP地址,不一樣的是,前者是被動後者是主動。也就是說Server這個配置是用來容許192.168.129.87這個ip來我這取數據。而serverActive的192.168.129.87的意思是,客戶端主動提交數據給他。
Hostname=XXX,這個定義的名字必須和web頁面裏面host的名字同樣。
啓動zabbix_agentd:查看端口號
[root@server1 ~]# firewall-cmd --permanent --add-port=10050/tcp
success
[root@server1 ~]# firewall-cmd --reload
success
到此,zabbix3.2.1監控系統的基本環境安裝完成。
實現zabbix添加監測項
添加對Linux主機的監控
在瀏覽器中打開:http://192.168.129.87/zabbix
登陸zabbix,先在「配置」-「主機」裏添加主機監控,監控os資源:內存,cpu,io,負載,帶寬等.
登陸zabbix,先在「配置」-「主機」裏單擊」建立主機」
注意:圖片分兩次截取IP地址有變化,
ip地址改成192.168.129.88
注意:下圖中的「主機名稱」要和zabbix_agentd.conf文件中設置的「Hostname」後面的名稱一致!
主機名稱:192.168.129.88
羣組:Linux servers
agent代理程序接口ip:192.168.129.88
已啓用:勾選
其它選項默認便可
切換到模板
選擇
選擇:Template OS Linux
點添加
添加
至此,Zabbix監控Linux主機設置完成。
配置過一段時間後,觀察下監控圖效果出來了沒:
zabbix3.0 server已自帶mysql的模板了,只需配置好agent客戶端,而後在web端給主機增長模板就好了。
Zabbix_agent客戶端操做
(1)首先在客戶端的mysql裏添加權限,即本機使用zabbix帳號鏈接本地的mysql
mysql> grant all on *.* to zabbix@'localhost' identified by "123456」;
mysql> flush privileges;
(2)在zabbix_agent服務目錄下建立.my.cnf 鏈接文件
zabbix安裝目錄是/usr/local/zabbix
[root@server1 ~]# cd /usr/local/zabbix/etc/
[root@server1 ~]# cat .my.cnf
[client]
user=zabbix
password=123456
注意:
若是在數據庫grant受權時,針對的是localhost,這個.my.cnf裏面就不用加host參數了【如上配置】
但若是grant受權時針對的是本機的ip(如192.168.129.88),那麼在.my.cnf文件裏就要加上host參數進行指定了
即在.my.cnf文件就要加上:
host=192.168.129.88
socket= /usr/local/mysql/mysql.sock
user=zabbix
password=123456
(3)配置MySQL的key文件
這個能夠從zabbix3.2安裝時的解壓包裏拷貝過來
從zabbix_server服務端安裝時解壓目錄
/root/zabbix-3.2.1/conf/zabbix_agentd/userparameter_mysql.conf 拷貝到zabbix_agent客戶端上的/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 目錄下的
[root@server1 ~]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@server1 zabbix_agentd.conf.d]# pwd
/usr/local/zabbix/etc/zabbix_agentd.conf.d
# cp /root/zabbix-3.2.1/conf/zabbix_agentd/userparameter_mysql.conf ./
[root@server1 zabbix_agentd.conf.d]# ls userparameter_mysql.conf
userparameter_mysql.conf
而後查看 userparameter_mysql.conf 文件,看到相似 HOME=/var/lib/zabbix 的路徑設置,把路徑全都替換爲 /usr/local/zabbix/etc/,也就是上面的.my.cnf文件所在的目錄路徑。
另外,注意userparameter_mysql.conf 文件裏的mysql命令路徑(提早作好mysql的系統環境變量,以防mysql命令不被系統識別)
以下:
[root@server1 zabbix_agentd.conf.d]# cat userparameter_mysql.conf
# For all the following commands HOME should be set to the directory that has .my.cnf file with password information.
# Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert].
# Key syntax is mysql.status[variable].
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/usr/local/zabbix/etc/ mysql -N | awk '{print $$2}'
# Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data].
# Key syntax is mysql.size[<database>,<table>,<type>].
# Database may be a database name or "all". Default is "all".
# Table may be a table name or "all". Default is "all".
# Type may be "data", "index", "free" or "both". Both is a sum of data and index. Default is "both".
# Database is mandatory if a table is specified. Type may be specified always.
# Returns value in bytes.
# 'sum' on data_length or index_length alone needed when we are getting this information for whole database instead of a single table
UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/usr/local/zabbix/etc/ mysql -N'
UserParameter=mysql.ping,HOME=/usr/local/zabbix/etc/ mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
(4)按照上面修改完以後檢查一下,而後重啓zabbix_agent
[root@server1 ~]# pkill -9 zabbix_agent
[root@server1 ~]# netstat -anpt | grep zabbix_agent
[root@server1 ~]# /usr/local/zabbix/sbin/zabbix_agentd
[root@server1 ~]# netstat -anpt | grep zabbix_agent
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 15400/zabbix_agentd
接着在zabbix_server服務端進行命令行測試[下面的192.168.129.88是客戶端的ip]
若下面報錯
[root@localhost zabbix]# /usr/local/zabbix/bin/zabbix_get -s 192.168.129.88 -p 10050 -k "mysql.status[Uptime]"
sh: mysql: command not found
解決方法:
在userparameter_mysql.conf中關於mysql命令前面添加絕對路徑
注:應爲找不到mysql命令的路徑因此要在mysql -N 前面加mysql的絕對路徑
[root@mysqla ~]#/usr/local/zabbix/bin/zabbix_get -s 192.168.129.88 -p 10050 -k "mysql.status[Uptime]"
12593
[root@mysqla ~]#
若是出現相似這一串key的數字,就說明配置ok,服務端能監控到客戶端的mysql數據了!
成功啦,以後在監控界面增長主機對應的MySQL模板就ok了。
注:zabbix_get命令介紹
參數說明:
-s --host:指定客戶端主機名或者IP
-p --port:客戶端端口,默認10050
-I --source-address:指定源IP,寫上zabbix server的ip地址便可,通常留空,服務器若是有多ip的時候,你指定一個。
-k --key:你想獲取的key
zabbix_get獲取數據
獲取負載
# zabbix_get -s 192.168.129.88 -p 10050 -k "system.cpu.load[all,avg15]"
獲取主機名
# zabbix_get -s 192.168.129.88 -p 10050 -k "system.hostname"
(5)登陸zabbix監控界面,在「配置」-「模板」裏能夠看到自帶的mysql監控模板
在相應主機監控配置裏添加mysql的監控模版(zabbix自帶的)便可。
下面是mysql監控項的效果圖:
【1】監控mysql的帶寬:在zabbix前端能夠實時查看mysql發送接收的字節數。其中bytes received表示從全部客戶端接收到的字節數,bytes sent表示發送給全部客戶端的字節數。
【2】監控mysql的操做狀態:在zabbix前端能夠實時查看各類SQL語句每秒鐘的操做次數。
——————————————————————————————————————————————————羞澀的分隔符
zabbix的警報這期先不寫了開個小差,下次跟新哈。