zabbix監控系統部署

一、 zabbix簡介:

zabbix是完全開源的工具,整合了cacti和nagios等特性

cacti:snmp

nagios:linux主機:nrpe    設備:snmp

附:SNMP(udp 161  udp 162)

衆多網絡工具都支持此協議,比如常見路由交換,常見OS

其既可以做管理端也可以做被管理端

snmp協議大致有3個版本分別是v1 v2 v3

無論是v1 和 v2 的安全性是比較差的,因爲傳輸是明文的, V3的認證密碼用MD5/SHA摘要算法加密

 

很多工具支持網絡管理的功能,而對於非網絡設備(操作系統),可以完全拋開snmp這種不安全的架構來實現監控的。所以很多工具都是控制端和agent架構,他們有專屬的agent

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常用的監控架構平臺

1、server-agentd模式:

這個是最簡單的架構了,常用於監控主機比較少的情況下。

2、server-proxy-agentd模式:

這個常用於比較多的機器,使用proxy進行分佈式監控,有效的減輕server端的壓力。

zabbix的系統架構:

wKiom1jbgNaRrqtnAAMD_LguHig566.png


Zabbix是一個基於Web界面的提供分佈式系統監視以及網絡監視功能的企業級開源解決方案。藉助Zabbix,可以很輕鬆地減輕運維人員們繁重的服務器管理任務,實現業務系統的持續運行。下面會逐步介紹Zabbix分佈式監控系統的部署及使用

配置好IP、DNS 、網關,確保使用遠程連接工具能夠連接服務器

zabbix監控服務器:192.168.129.87  #zabbix的服務端(若要監控本機,則需要配置本機的zabbix agent)

Zabbix agent被監控主機:192.168.129.88 #zabbix的客戶端(被監控端,需要配置Zabbix agent


二、Zabbix部署前的LNMP環境的搭建過程:

安裝編譯工具及庫文件

wKioL1jbghuhGX1KAAA5QPL05fE488.png

安裝mysql5.7.13

1、系統環境:centos7.2 x86_64

wKioL1jbho2BsLYDAABfvJJuau4247.png

因爲centos7.2默認安裝了mariadb-libs,所以先要卸載掉

查看是否安裝mariadb

#rpm -qa | grep mariadb

卸載mariadb

rpm -e --nodeps mariadb-libs

wKiom1jbho7TiGwXAABldexRcG4341.png

2、安裝依賴包

注: 相關依賴包的作用

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

wKioL1jbho6AggYdAAB3Ot-asik754.png

cmake –version  ---查看cmake版本

wKiom1jbho-gkRsoAABQsYcPvgw774.png

安裝ncurses

wKioL1jbho-C5F_zAABeLHsIF5I573.png

安裝bison

wKiom1jbhpCArwr6AABUDeLQ3BE325.png

安裝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    ---數據庫目錄

3、編譯安裝mysql

解壓mysql源碼包:

wKioL1jbhpDhbT_xAAA1nhRvZhE329.png

執行cmake命令進行編譯前的配置:

wKioL1jbhpKhTg5QAAC9LuXdBzc919.png

開始編譯、編譯安裝:

wKiom1jbhpOgB0rRAAAlx0pn7tc147.png

注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:爲了加快編譯速度可以按下面的方式編譯安裝

wKioL1jbhpPBu68_AAArk1Pg38Q447.png

make -j $(grep processor /proc/cpuinfo | wc –l)

-j參數表示根據CPU核數指定編譯時的線程數,可以加快編譯速度。默認爲1個線程編譯。

注3:若要重新運行cmake配置,需要刪除CMakeCache.txt文件

# make clean

#rm -f CMakeCache.txt

優化Mysql的執行路徑

wKiom1jbhpTwo-KDAAByJZuUgsg153.png

4、設置權限並初始化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

wKioL1jbhpSjSNIKAAFt_-G5Cdw260.png

注意:如果使用–initialize參數初始化系統數據庫之後,會生成root用戶的一個臨時密碼,如上圖高亮中所示。

# chown -Rmysql:mysql .       ---改所有者,注意是root .

5、創建配置文件

# cd/usr/local/mysql/support-files     ---進入MySQL安裝目錄支持文件目錄

# cp my-default.cnf /etc/my.cnf    ---複製模板爲新的配置文件,

wKiom1jbhpWTY5AUAABIzqEAgPk412.png

修改文件中配置選項,如下圖所示,添加如下配置項

#vi  /etc/my.cnf

wKiom1jbhpaT4X2zAAB4TmAfxcc209.png

6、配置mysql自動啓動

wKioL1jbhqCCzqS_AADtvlLwlzA165.png

服務啓動失敗,查看錯誤日誌文件

wKioL1jbhqGiqVlnAAFOlzeUkj0901.png

在mysqld.service,把默認的pid文件指定到了/var/run/mysqld/目錄,而並沒有事先建立該目錄,因此要手動建立該目錄並把權限賦給mysql用戶。

wKiom1jbhqKg3wcGAAA951Gg2h8529.png

或者修改/usr/lib/system/system/mysqld.service,修改內容如下:

wKioL1jbhqLTJI8NAAFSWWo4Syo268.png

#systemctl  daemon-reload

再次啓動mysql服務

wKiom1jbhqPC3esJAAFVSA-IEuY667.png

查看端口號

wKioL1jbiLiSNvMgAAAxRimII-8783.png

安裝nginx:

解壓zlib

wKiom1jbghyjqY8AAAAQ0VznUlU050.png

說明:不需要編譯,只需要解壓就行。

wKiom1jbgh2heO5EAAAK0IKnHpA491.png

下載nginx的源碼包:http://nginx.org/download

解壓源碼包:

[root@localhost ~]# tar zxf nginx-1.10.2.tar.gz

[root@localhost ~]# cd nginx-1.10.2/

wKioL1jbgh3yoYggAAA6zzw1fWo342.png

編譯安裝

注意zlib和pcre需要指定解壓位置,也可yum安裝。


做軟連接,啓動並且查看端口號

wKiom1jbgh7SkT0JAAAvou-d3MM790.png

防火牆開啓例外

wKioL1jbgh6B9DnLAAAfY8b-FTs909.png

訪問測試頁面

wKiom1jbgh-gdDT7AABWNn4Tdwo410.png

安裝php

安裝libmcrypt安全加密包

wKioL1jbgiCTYkDEAAAQMvI6FMo297.png

wKiom1jbgiCC0b_VAAAYT1skzqQ903.png

安裝php

解壓

wKioL1jbgiGSCPe5AAANRZzgoJQ404.png

編譯安裝

wKiom1jbgiHC2nDuAABjzXIIpQ4556.png

make && make install

wKioL1jbgiOQ3sBEAAATvxiAvzM806.png

編輯配置文件/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服務啓動腳本:

wKiom1jbgiThiW-TAAA4QT-OJno995.png

提供php-fpm配置文件並編輯:

wKioL1jbgifSJLwtAAAUgkaPTMI962.png

修改內容如下:

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服務:

wKiom1jbgijwAWp-AAArXCU6e3s308.png

配置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;

        }

測試語法是否有錯,啓動後查看進程號。

wKiom1jbginR7aKYAABEXMdr2YA181.png

測試LNMP

進入nginx默認的網頁根目錄,創建.php的測試頁

wKioL1jbginQZ3MoAAAT4ZrHzOg966.png

測試php與mysql協同工作wKioL1jbgirBEPjxAAAm9K9p7kw857.png

訪問結果:

wKiom1jbgiuSbOGfAACOTTRt3O8436.png

wKioL1jbgizAv-TPAAAnhSK2Um8507.png

至此,LNMP部署完畢。


三、監控系統Zabbix-3.2.1的安裝

zabbix-server端的操作

zabbix服務器端要提前安裝好LNMP環境(mysql,nginx,php5的安裝目錄均是/usr/local)

創建Zabbix運行的用戶:

wKiom1jbgiyTSKRcAAAY5fwf634906.png

安裝libcurl和net-snmp:

wKiom1jbgi3DAHH-AAAeD4_Xo8Q152.png

注:OpenIPMI-devel 和libssh2-devel軟件包使用centos在線yum軟件源安裝

安裝Fping:

wKioL1jbgi6icdJGAAAlR-DK5iM845.png

設置zabbix用戶並授權

wKioL1jbgi6zruaVAAAY_kSjoAs740.png

安裝Zabbix Server:

wKiom1jbgi-AiufxAAAxuytJk-E496.png

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.

添加系統軟連接

wKioL1jbgjCRVjamAAAWk4y5ipA730.png

Zabbix Server配置與啓動
創建Zabbix數據庫和MySQL用戶,

wKiom1jbgjCjELyvAAAtBxmK2AQ258.png

導入Zabbix初始數據:

切換到zabbix的解壓目錄下

wKiom1jbgjGQQpRYAAAntC-sXm4026.png

進行zabbix初始數據導入

wKioL1jbgjKTt-FaAAAbE1NXs8M197.png

編輯/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

wKiom1jbgjLiYMmMAAAUvUuKez0901.png

啓動Zabbix Server:出現如下報錯

wKioL1jbgjPzZEcEAAApwyxvkqQ493.png

解決方法

wKioL1jbgoDgG4VgAAAalNmLDTM643.png

再次執行zabbix_server啓動

wKiom1jbgoDxDyZPAAApccNU3LI863.png

添加開機啓動腳本

wKioL1jbgoDSeKucAAAn8ztRmR8573.png

wKiom1jbgoGjno7lAABFdp1lWfI578.png

修改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

wKioL1jbgoGSSaKUAABQnXBtQio051.png

設置防火牆規則

wKiom1jbgoLTOPAlAAA43tRGpzQ228.png

配置zabbix web頁面

在安裝目錄將frontends拷貝到指定的web root:

wKiom1jbgoKB6KZdAAAntg_jB7k379.png

注:/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安裝畫面

wKioL1jbgoLD1dFtAACkuVZGULU202.png

進入ZABBIX檢測畫面,必須全部顯示爲OK.

wKioL1jbgoODRfQyAABV_tT0H-w245.png


對數據庫進行設置,這裏如果數據庫在本地的話端口可以使用0

wKiom1jbgoPBAWzTAABFc6PhdVw140.png


點擊Next step 一下步進行zabbix server 細節的設置  這一步可以默認

wKioL1jbgoOxwciBAABAi9VJV9Y424.png

點擊安裝,安裝完成後  如果沒有錯誤就會進入完成畫面

完成畫面有設置文件放在服務器的位置,請記下來

wKiom1jbgoPCH0lyAAA6MqxFHO4082.png


點擊Finish 完成 

使用Admin  用默認密碼 zabbix 登錄

wKiom1jbgoWjPDjwAAAmAPaNUIw342.png

登錄後畫面如下

wKioL1jbgobgZTU7AAEJ1qC276A601.png

至此 ZABBIX的基礎安裝完成


 

登陸zabbix後,點擊右上角的“用戶”圖標,將語言設置爲“中文”:

wKiom1jbkkeT-03QAABh5B--77M345.png

按照如圖選擇Chinese(zh_CN),點擊update:

wKioL1jbkhOyPzX2AADK8Uger-4548.png

解決zabbix繪圖中出現中文亂碼問題:

a.從windows下控制面板->字體->選擇一種中文字庫例如“楷體”

wKiom1jbkxeCMFVjAAJfJXPBXt8988.png

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監控圖形中的中文字就不會出現亂碼了

wKioL1jbgoaiKNP2AABgJv943_U763.png

四、zabbix客戶端的安裝

既然要監控我們就要添加要監控的主機,在添加主機之前我們首先要在被檢測主機上面安裝agent,安裝agent比較簡單,我們也是按照安裝server的流程,下載軟件包,在編譯的時候,我們只選擇agent 

192.168.129.88作爲zabbix的被監控端,提供web和mysql應用

安裝Zabbix,配置Zabbix agent:

wKiom1jbgoagjlGnAAA6KGJeGKQ595.png

wKiom1jbgofBiDtVAAAbDKSUaHs030.png

設置用戶戶配置開機自動啓動:

wKioL1jbgoewSctAAAAnUTKvaU4103.png

修改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:查看端口號

wKiom1jbgofwJtuKAABnAcCIizo069.png


[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,先在“配置”-“主機”裏單擊”創建主機”

wKioL1jbluvSIv2JAAAzYWxWurU181.png


注意:圖片分兩次截取IP地址有變化,

ip地址改爲192.168.129.88

wKiom1jbluzCa07xAACTd3pVgOo182.png

wKiom1jblu3Sps-QAAB5zJ6lczo001.png

注意:下圖中的“主機名稱”要和zabbix_agentd.conf文件中設置的“Hostname”後面的名稱一致!

主機名稱:192.168.129.88

羣組:Linux servers

agent代理程序接口ip:192.168.129.88

已啓用:勾選

其它選項默認即可

切換到模板

wKioL1jblu3x-agaAAAv0793C2c451.png

選擇

選擇:Template OS Linux

點添加

 wKiom1jblu3hnBILAAA2AYhaA30338.png

添加

wKioL1jblu6hYU9GAAC-wI20yug156.png

至此,Zabbix監控Linux主機設置完成。

wKiom1jblu-gQq3BAADWpSMiWbE492.png

配置過一段時間後,觀察下監控圖效果出來了沒:

wKioL1jblu_SJrVsAAFx_fiDxhw371.png

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監控模板

wKiom1jblvGzYufJAADcaOucqX4479.png

在相應主機監控配置裏添加mysql的監控模版(zabbix自帶的)即可。

wKioL1jblvGRjmkEAADlUBEGF04370.png

下面是mysql監控項的效果圖:

【1】監控mysql的帶寬:在zabbix前端可以實時查看mysql發送接收的字節數。其中bytes received表示從所有客戶端接收到的字節數,bytes sent表示發送給所有客戶端的字節數。

wKiom1jblvLzk2QrAAEGx3QvETg162.png

【2】監控mysql的操作狀態:在zabbix前端可以實時查看各種SQL語句每秒鐘的操作次數。

wKioL1jblvPQKkuhAAEyeUQdOZ0250.pngz

——————————————————————————————————————————————————羞澀的分隔符


zabbix的警報這期先不寫了開個小差,下次跟新哈。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章