日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

Zabbix监控系统安装与使用

發(fā)布時(shí)間:2024/1/17 windows 118 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Zabbix监控系统安装与使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Zabbix簡(jiǎn)介:

zabbix是完全開(kāi)源的工具,整合了cacti和nagios等特性

cacti:snmp

nagios:linux 主機(jī):nrpe??? 設(shè)備:snmp

附:SNMP(udp161? udp 162)

眾多網(wǎng)絡(luò)工具都支持此協(xié)議,比如常見(jiàn)路由交換,常見(jiàn)OS

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

snmp協(xié)議大致有3個(gè)版本分別是v1 v2 v3

無(wú)論是v1 和 v2 的安全性是比較差的,因?yàn)閭鬏斒敲魑牡?#xff0c;?V3的認(rèn)證密碼用MD5/SHA摘要算法加密

?

? ? ? ?很多工具支持網(wǎng)絡(luò)管理的功能,而對(duì)于非網(wǎng)絡(luò)設(shè)備(操作系統(tǒng)),可以完全拋開(kāi)snmp這種不安全的 ? ?架構(gòu)來(lái)實(shí)現(xiàn)監(jiān)控的。所以很多工具都是控制端和agent架構(gòu),他們有專(zhuān)屬的agent


?

? ?1、Zabbix的主要功能:

l? 具備常見(jiàn)的商業(yè)監(jiān)控軟件所具備的功能(主機(jī)的性能監(jiān)控、網(wǎng)絡(luò)設(shè)備性能監(jiān)控、數(shù)據(jù)庫(kù)、FTP 等通用協(xié)議監(jiān)控、多種告警方式、詳細(xì)的報(bào)表圖表繪制)

l? 支持自動(dòng)發(fā)現(xiàn)網(wǎng)絡(luò)設(shè)備和服務(wù)器(可以通過(guò)配置自動(dòng)發(fā)現(xiàn)服務(wù)器規(guī)則來(lái)實(shí)現(xiàn))

l? 支持分布式,能集中展示、管理分布式的監(jiān)控點(diǎn),擴(kuò)展性強(qiáng)

l? server 提供通用接口(api 功能),可以自己開(kāi)發(fā)完善各類(lèi)監(jiān)控(根據(jù)相關(guān)接口編寫(xiě)程序?qū)崿F(xiàn)),編寫(xiě)插件容易,可以自定義監(jiān)控項(xiàng),報(bào)警級(jí)別的設(shè)置。

l? 數(shù)據(jù)收集,支持 snmp(包括 trapping and polling ),IPMI,JMX,SSH,TELNET;

l? 自定義的檢測(cè);自定義收集數(shù)據(jù)的頻率;

l? 服務(wù)器/代理和客戶(hù)端模式;

l? 靈活的觸發(fā)器;可以定義非常靈活的問(wèn)題閾值,稱(chēng)為觸發(fā)器;

l? 高可定制的報(bào)警;發(fā)送通知,可定制的報(bào)警升級(jí),收件人,媒體類(lèi)型。

l? CPU負(fù)荷、內(nèi)存使用、磁盤(pán)使用、網(wǎng)絡(luò)狀況、端口監(jiān)視、日志監(jiān)視等等。

l? 硬件監(jiān)控:Zabbix IPMI Interface

l? 系統(tǒng)監(jiān)控:Zabbix? Agent Interface

l? Java監(jiān)控:Zabbix JMXInterface

l? 網(wǎng)絡(luò)設(shè)備監(jiān)控:Zabbix SNMPInterface

l? 應(yīng)用服務(wù)監(jiān)控:Zabbix AgentUserParameter?

l? MySQL數(shù)據(jù)庫(kù)監(jiān)控:percona-monitoring-plulgins??

l? URL監(jiān)控:Zabbix Web 監(jiān)控

? ?2、zabbix重要組件說(shuō)明:

1)zabbix server:負(fù)責(zé)接收agent發(fā)送的報(bào)告信息的核心組件,所有配置、統(tǒng)計(jì)數(shù)據(jù)及操作數(shù)據(jù)都由它組織進(jìn)行;

2)database storage:專(zhuān)用于存儲(chǔ)所有配置信息,以及由zabbix收集的數(shù)據(jù);

3)web interface:zabbix的GUI接口;

4)proxy:可選組件,常用于監(jiān)控節(jié)點(diǎn)很多的分布式環(huán)境中,代理server收集部分?jǐn)?shù)據(jù)轉(zhuǎn)發(fā)到server,可以減輕server的壓力;

5)agent:部署在被監(jiān)控的主機(jī)上,負(fù)責(zé)收集主機(jī)本地?cái)?shù)據(jù)如cpu、內(nèi)存、數(shù)據(jù)庫(kù)等數(shù)據(jù)發(fā)往server端或proxy端;

另外,zabbix server、proxy、agent都有自己的配置文件以及l(fā)og文件,重要的參數(shù)需要在這里配置,后面會(huì)詳細(xì)說(shuō)明。

一個(gè)監(jiān)控系統(tǒng)運(yùn)行的大概的流程是這樣的:

agentd需要安裝到被監(jiān)控的主機(jī)上,它負(fù)責(zé)定期收集各項(xiàng)數(shù)據(jù),并發(fā)送到zabbix server端,zabbix server將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,zabbix web根據(jù)數(shù)據(jù)在前端進(jìn)行展現(xiàn)和繪圖。這里agentd收集數(shù)據(jù)分為主動(dòng)和被動(dòng)兩種模式:

主動(dòng):agent請(qǐng)求server獲取主動(dòng)的監(jiān)控項(xiàng)列表,并主動(dòng)將監(jiān)控項(xiàng)內(nèi)需要檢測(cè)的數(shù)據(jù)提交給server/proxy

被動(dòng):server向agent請(qǐng)求獲取監(jiān)控項(xiàng)的數(shù)據(jù),agent返回?cái)?shù)據(jù)。

zabbix常用的監(jiān)控架構(gòu)平臺(tái)

1、server-agentd模式:

這個(gè)是最簡(jiǎn)單的架構(gòu)了,常用于監(jiān)控主機(jī)比較少的情況下。

2、server-proxy-agentd模式:

這個(gè)常用于比較多的機(jī)器,使用proxy進(jìn)行分布式監(jiān)控,有效的減輕server端的壓力。

zabbix的系統(tǒng)架構(gòu):

Zabbix是一個(gè)基于Web界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)開(kāi)源解決方案。借助Zabbix,可以很輕松地減輕運(yùn)維人員們繁重的服務(wù)器管理任務(wù),實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)的持續(xù)運(yùn)行。下面會(huì)逐步介紹Zabbix分布式監(jiān)控系統(tǒng)的部署及使用

配置好IP、DNS 、網(wǎng)關(guān),確保使用遠(yuǎn)程連接工具能夠連接服務(wù)器

zabbix監(jiān)控服務(wù)器:192.168.130.76? #zabbix的服務(wù)端(若要監(jiān)控本機(jī),則需要配置本機(jī)的zabbix agent)

Zabbix agent被監(jiān)控主機(jī):192.168.130.78#zabbix的客戶(hù)端(被監(jiān)控端,需要配置Zabbix agent

?

二、Zabbix部署前的LNMP環(huán)境的搭建過(guò)程:

安裝編譯工具及庫(kù)文件

[root@mysqla ~]# yum -yinstall make apr* autoconf automake curl-devel gcc gcc-c++? openssl openssl-devel gd kernel keyutilspatch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-develkeyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-develzlib-devel libXpm* freetype libjpeg* libpng* libtool* libxml2 libxml2-develpatch libcurl-devel bzip2-devel freetype-devel

安裝mysql5.7.13

1、系統(tǒng)環(huán)境:centos7.2 x86_64

? ??


因?yàn)閏entos7.2默認(rèn)安裝了mariadb-libs,所以先要卸載掉

查看是否安裝mariadb

#rpm -qa | grep mariadb

卸載mariadb

rpm-e?--nodeps?mariadb-libs

2、安裝依賴(lài)包

注:?相關(guān)依賴(lài)包的作用

cmake:由于從MySQL5.5版本開(kāi)始棄用了常規(guī)的configure編譯方法,所以需要CMake編譯器,用于設(shè)置mysql的編譯參數(shù)。如:安裝目錄、數(shù)據(jù)存放目錄、字符編碼、排序規(guī)則等。

Boost? #從MySQL?5.7.5開(kāi)始Boost庫(kù)是必需的,mysql源碼中用到了C++的Boost庫(kù),要求必須安裝boost1.59.0或以上版本

GCC是Linux下的C語(yǔ)言編譯工具,mysql源碼編譯完全由C和C++編寫(xiě),要求必須安裝GCC

bison:Linux下C/C++語(yǔ)法分析器

ncurses:字符終端處理庫(kù)

1安裝文件準(zhǔn)備

下載cmake-3.5.tar.gz???http://mysqlaNaNake.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)創(chuàng)建mysql用戶(hù)和用戶(hù)組及目錄

# groupadd -r mysql&& useradd -r -g mysql -s /bin/false -M mysql---新建msyql組和msyql用戶(hù)禁止登錄shell

#mkdir/usr/local/mysql??????? ---創(chuàng)建目錄

#mkdir/usr/local/mysql/data?? ?---數(shù)據(jù)庫(kù)目錄

3、編譯安裝mysql

解壓mysql源碼包:

??

執(zhí)行cmake命令進(jìn)行編譯前的配置:

開(kāi)始編譯、編譯安裝:

注1:配置解釋:

? -DCMAKE_INSTALL_PREFIX=/usr/local/mysql[MySQL安裝的根目錄](méi)-DMYSQL_DATADIR=/usr/local/mysql /data[MySQL數(shù)據(jù)庫(kù)文件存放目錄](méi)

? -DSYSCONFDIR=/etc[MySQL配置文件所在目錄](méi)

? -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[安裝支持?jǐn)?shù)據(jù)庫(kù)分區(qū)]

? -DEXTRA_CHARSETS=all[使MySQL支持所有的擴(kuò)展字符]

? -DDEFAULT_CHARSET=utf8[設(shè)置MySQL的默認(rèn)字符集為utf8]-DDEFAULT_COLLATION=utf8_general_ci [設(shè)置默認(rèn)字符集校對(duì)規(guī)則]

? -DWITH-SYSTEMD=1? [可以使用systemd控制mysql服務(wù)]

? -DWITH_BOOST=/usr/local/boost? [指向boost庫(kù)所在目錄]

更多參數(shù)執(zhí)行[root@localhost mysql-5.7.13]# cmake . –LH

注2:為了加快編譯速度可以按下面的方式編譯安裝

??

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

-j參數(shù)表示根據(jù)CPU核數(shù)指定編譯時(shí)的線(xiàn)程數(shù),可以加快編譯速度。默認(rèn)為1個(gè)線(xiàn)程編譯。

注3:若要重新運(yùn)行cmake配置,需要?jiǎng)h除CMakeCache.txt文件

# make clean

#rm -f CMakeCache.txt

優(yōu)化Mysql的執(zhí)行路徑

??

4、設(shè)置權(quán)限并初始化MySQL系統(tǒng)授權(quán)表

# 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初始化操作時(shí)要加--user=mysql參數(shù),生成一個(gè)隨機(jī)密碼(注意保存登錄時(shí)用)

注2:MySQL 5.7.6之前的版本執(zhí)行這個(gè)腳本初始化系統(tǒng)數(shù)據(jù)庫(kù)

/usr/local/mysql/bin/mysql_install_db--user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

# 5.7.6之后版本初始系統(tǒng)數(shù)據(jù)庫(kù)腳本(本文使用此方式初始化)

#/usr/local/mysql/bin/mysqld--initialize-insecure--user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

注意:如果使用–initialize參數(shù)初始化系統(tǒng)數(shù)據(jù)庫(kù)之后,會(huì)生成root用戶(hù)的一個(gè)臨時(shí)密碼,如上圖高亮中所示。

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

5、創(chuàng)建配置文件

#cd/usr/local/mysql/support-files ????---進(jìn)入MySQL安裝目錄支持文件目錄

# cp my-default.cnf/etc/my.cnf ???---復(fù)制模板為新的配置文件,

修改文件中配置選項(xiàng),如下圖所示,添加如下配置項(xiàng)

#vi? /etc/my.cnf

??


6、配置mysql自動(dòng)啟動(dòng)

??

服務(wù)啟動(dòng)失敗,查看錯(cuò)誤日志文件

??

在mysqld.service,把默認(rèn)的pid文件指定到了/var/run/mysqld/目錄,而并沒(méi)有事先建立該目錄,因此要手動(dòng)建立該目錄并把權(quán)限賦給mysql用戶(hù)。

或者修改/usr/lib/system/system/mysqld.service,修改內(nèi)容如下:

??

#systemctl? daemon-reload

再次啟動(dòng)mysql服務(wù)

??

查看端口號(hào)

??

服務(wù)啟動(dòng)成功

訪問(wèn)MySQL數(shù)據(jù)庫(kù)

# mysql -u root -h 127.0.0.1-p???? ---連接mysql,輸入初始化時(shí)生成的隨機(jī)密碼

??


設(shè)置數(shù)據(jù)庫(kù)管理員用戶(hù)root的密碼

安裝nginx:

解壓zlib

[root@mysqla ~]# tar zxfzlib-1.2.8.tar.gz

說(shuō)明:不需要編譯,只需要解壓就行。

解壓pcre

[root@mysqla ~]# tar zxf pcre-8.39.tar.gz

說(shuō)明:不需要編譯,只需要解壓就行。

[root@mysqla ~]# groupaddwww

[root@mysqla ~]# useradd -g wwwwww -s /sbin/nologin

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

解壓源碼包:

[root@mysqla ~]# tar zxfnginx-1.10.2.tar.gz

[root@mysqla ~]# cdnginx-1.10.2/

[root@mysqla nginx-1.10.2]# ./configure--prefix=/usr/local/nginx1.10 --with-http_dav_module--with-http_stub_status_module --with-http_addition_module--with-http_sub_module?--with-http_flv_module --with-http_mp4_module --with-pcre=/root/pcre-8.39--with-zlib=/root/zlib-1.2.8 --with-http_ssl_module--with-http_gzip_static_module --user=www --group=www

[root@mysqla nginx-1.10.2]#make&& make install

[root@mysqla ~]# ln -s/usr/local/nginx1.10/sbin/nginx /usr/local/sbin/

[root@mysqla ~]# nginx

[root@mysqla ~]# netstat-anpt | grep nginx

tcp?? 0?????0 0.0.0.0:80????? 0.0.0.0:*????? LISTEN????? 11598/nginx: master

[root@mysqla ~]#firewall-cmd --permanent --add-port=80/tcp

success

[root@mysqla ~]#firewall-cmd --reload

success

啟動(dòng)后可以再瀏覽器中打開(kāi)頁(yè)面,會(huì)顯示nginx默認(rèn)頁(yè)面。

??

安裝php

[root@mysqla ~]# tar zxflibmcrypt-2.5.7.tar.gz

[root@mysqla ~]# cdlibmcrypt-2.5.7/

[root@mysqlalibmcrypt-2.5.7]# ./configure && make && make install

# ln -s/usr/local/mysql/lib/libmysqlclient.so.20.3.0 /usr/local/mysql/lib/libmysqlclient_r.so

[root@mysqla ~]# tar zxfphp-5.6.27.tar.gz

[root@mysqla php-5.6.27]# ./configure--prefix=/usr/local/php5.6 --with-config-file-path=/etc? --with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv--with-libxml-dir=/usr --with-mhash --with-mcrypt--with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib--with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath--enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex--enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf--with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip--enable-soap --without-pear --with-gettext --enable-session --with-mcrypt--with-curl

[root@mysqla php-5.6.27]#make&& make install

[root@mysqla php-5.6.27]# cpphp.ini-production /etc/php.ini

編輯配置文件/etc/php.ini?,修改后的內(nèi)容如下:

找到:
;date.timezone =?
修改為:
date.timezone = PRC #設(shè)置時(shí)區(qū)

找到:
expose_php = On?
修改為:
expose_php = Off #禁止顯示php版本的信息

找到:
short_open_tag = Off?
修改為:

short_open_tag = On //支持php短標(biāo)簽

找到:

post_max_size = 8M

修改為:

post_max_size = 16M? //上傳文件大小

找到:

max_execution_time = 30

修改為:

max_execution_time = 300? //php腳本最大執(zhí)行時(shí)間

找到:

max_input_time = 60

修改為:

max_input_time = 300? //以秒為單位對(duì)通過(guò)POST、GET以及PUT方式接收數(shù)據(jù)時(shí)間進(jìn)行限制

always_populate_raw_post_data= -1

mbstring.func_overload = 0

創(chuàng)建php-fpm服務(wù)啟動(dòng)腳本:

[root@mysqla php-5.6.27]# cpsapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@mysqla php-5.6.27]#chmod +x /etc/init.d/php-fpm

[root@mysqla php-5.6.27]#chkconfig --add php-fpm

[root@mysqla php-5.6.27]#chkconfig php-fpm on

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

#cp/usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf

[root@mysqla php-5.6.27]# vi/usr/local/php5.6/etc/php-fpm.conf

修改內(nèi)容如下:

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

啟動(dòng)php-fpm服務(wù):

[root@phpserver ~]#service? php-fpm start

Starting php-fpm? done

[root@mysqla php-5.6.27]#netstat -anpt | grep php-fpm

tcp?? 0?? 0127.0.0.1:9000??? 0.0.0.0:*???? LISTEN?????10937/php-fpm: mast

配置nginx支持php

[root@mysqla ~]# cat/usr/local/nginx1.10/conf/nginx.conf

user? www www;

worker_processes? 4;

#error_log? logs/error.log;

#error_log? logs/error.log? notice;

#error_log? logs/error.log? info;

#pid??????? logs/nginx.pid;

events {

use epoll;

??? ??worker_connections? 1024;

}

http {

include?????? mime.types;

??? default_type? application/octet-stream;

?? ???#log_format?main? '$remote_addr - $remote_user[$time_local] "$request" '

??? ??????????????????#'$status $body_bytes_sent"$http_referer" '

???? ?????????????????#'"$http_user_agent""$http_x_forwarded_for"';

?

??? ??#access_log? logs/access.log? main;

sendfile??????? on;

?? ???#tcp_nopush????on;

?? ???#keepalive_timeout? 0;

?? ???keepalive_timeout? 65;

??? ??#gzip? on;

server {

listen?????? 80;

?????? ???server_name?localhost;

charset utf-8;

??????? ??#access_log?logs/host.access.log? main;

location / {

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;

?????? ???}

??????? ??#error_page?404????????????? /404.html;

?????? ???# redirect server error pages to the staticpage /50x.html

???? ?????#

???? ?????error_page??500 502 503 504? /50x.html;

location = /50x.html {

root?? html;

????? ????}

location /status {

stub_status on;

?????? ???}

? ?????}

}

[root@mysqla conf]# nginx -t

nginx: the configurationfile /usr/local/nginx1.10/conf/nginx.conf syntax is ok

nginx: configuration file/usr/local/nginx1.10/conf/nginx.conf test is successful

[root@mysqla conf]# killall-s HUP nginx

測(cè)試LNMP

進(jìn)入nginx默認(rèn)的網(wǎng)頁(yè)根目錄,創(chuàng)建.php的測(cè)試頁(yè)

[root@mysqla ~]# cat/usr/local/nginx1.10/html/test1.php

<?php

phpinfo()

?>

[root@mysqla ~]# cat/usr/local/nginx1.10/html/test2.php

<?php

$link=mysql_connect('localhost','root','123.abc');

if($link) echo"ok";

mysql_close();

?>

訪問(wèn)結(jié)果:

??

??

至此,LNMP部署完畢。

?

三、監(jiān)控系統(tǒng)Zabbix-3.2.1的安裝

zabbix-server端的操作

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

創(chuàng)建Zabbix運(yùn)行的用戶(hù):

[root@mysqla ~]#groupadd zabbix

[root@mysqla ~]#useradd -gzabbix zabbix

安裝libcurl和net-snmp:

[root@mysqla ~]#yum -yinstall net-snmp net-snmp-develcurl-develjava-1.8.0-openjdkjava-1.8.0-openjdk-develOpenIPMI-devel libssh2-devel

注:OpenIPMI-devel 和libssh2-devel軟件包使用centos在線(xiàn)yum軟件源安裝

安裝Fping:

[root@mysqla ~]# tar zxffping-3.12.tar.gz

[root@mysqla ~]# cdfping-3.12/

[root@mysqla fping-3.12]#./configure && make && make install

[root@mysqla fping-3.12]#chown root:zabbix /usr/local/sbin/fping

[root@mysqla fping-3.12]#chmod 4710 /usr/local/sbin/fping

安裝Zabbix Server:

[root@mysqla ~]# tar zxfzabbix-3.2.1.tar.gz

[root@mysqla ~]# cdzabbix-3.2.1/

[root@mysqla zabbix-3.2.1]#./configure --prefix=/usr/local/zabbix --enable-server --enable-agent--enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp--with-libcurl --with-openipmi

注意:編譯時(shí)最好帶上--enable-java這個(gè)參數(shù),方便后續(xù)監(jiān)控tomcat程序所用。

--with-ssh2 是不需要在客戶(hù)端服務(wù)器上面安裝Zabbix agent,如果需要使用ssh檢查,需要在編譯的時(shí)候加上這項(xiàng),最低需要libssh2 1.0.0版本,需要安裝ssh開(kāi)發(fā)包

--with-openipmi用戶(hù)可以利用 IPMI 監(jiān)視服務(wù)器的物理特征,如溫度、電壓、電扇工作狀態(tài)、電源供應(yīng)等

如果添加了--enable-proxy, 那么會(huì)生成get和sender兩條命令. 如下, 用于接收agent發(fā)生過(guò)來(lái)的信息, 同時(shí)發(fā)送給server.

[root@mysqla zabbix-3.2.1]#make&& make install

添加系統(tǒng)軟連接

[root@mysqla ~]# ln -s/usr/local/zabbix/bin/* /usr/local/bin/

[root@mysqla ~]# ln -s/usr/local/zabbix/sbin/* /usr/local/sbin/

Zabbix Server配置與啟動(dòng)
創(chuàng)建Zabbix數(shù)據(jù)庫(kù)和MySQL用戶(hù):

mysql> create databasezabbix character set utf8;

Query OK, 1 row affected(0.01 sec)

?

mysql> grant allprivileges on zabbix.* to zabbix@localhost identified by 'zabbix';

Query OK, 0 rows affected, 1warning (0.00 sec)

導(dǎo)入Zabbix初始數(shù)據(jù):

切換到zabbix的解壓目錄下

[root@mysqla zabbix-3.2.1]#cd database/mysql/

[root@mysqla mysql]# pwd

/root/zabbix-3.2.1/database/mysql

[root@mysqla mysql]# ls

data.sql? p_w_picpaths.sql?schema.sql

進(jìn)行zabbix初始數(shù)據(jù)導(dǎo)入

[root@mysqla mysql]# mysql-uzabbix -pzabbix -hlocalhost zabbix < schema.sql

[root@mysqla mysql]# mysql-uzabbix -pzabbix -hlocalhost zabbix < p_w_picpaths.sql

[root@mysqla mysql]# mysql-uzabbix -pzabbix -hlocalhost zabbix < data.sql

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

#mkdir -p /usr/local/zabbix/logs
#chown -R zabbix:zabbix /usr/local/zabbix

啟動(dòng)Zabbix Server:

#/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

/usr/local/zabbix/sbin/zabbix_server: error whileloading shared libraries: libmysqlclient.so.20: cannot open shared object file:No such file or directory

解決方法:

在ld.so.conf中加入/usr/local/mysql/lib

[root@mysqla zabbix-3.2.1]#cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/mysql/lib

/usr/local/lib

[root@mysqla zabbix-3.2.1]#ldconfig

再次執(zhí)行zabbix_server啟動(dòng)

#/usr/local/zabbix/sbin/zabbix_server -c/usr/local/zabbix/etc/zabbix_server.conf

[root@mysqla init.d]#netstat -anpt |grep zabbix_server

tcp ???0? 00.0.0.0:10051??? 0.0.0.0:*????? LISTEN????? 27199/zabbix_server

添加開(kāi)機(jī)啟動(dòng)腳本

[root@mysqla ~]# cdzabbix-3.2.1/

# cpmisc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server

# cpmisc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd

[root@mysqla zabbix-3.2.1]#chmod +x /etc/rc.d/init.d/zabbix_server

[root@mysqla zabbix-3.2.1]#chmod +x /etc/rc.d/init.d/zabbix_agentd

[root@mysqla zabbix-3.2.1]#chkconfig --add zabbix_server

[root@mysqla zabbix-3.2.1]#chkconfig --add zabbix_agentd

[root@mysqla zabbix-3.2.1]#chkconfig zabbix_server on

[root@mysqla zabbix-3.2.1]#chkconfig zabbix_agentd on

修改zabbix開(kāi)機(jī)啟動(dòng)腳本中的zabbix安裝目錄

vi/etc/rc.d/init.d/zabbix_server?#編輯服務(wù)端配置文件

BASEDIR=/usr/local/zabbix/?#zabbix安裝目錄

PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid??? #pid文件路徑

:wq!?#保存退出

vi/etc/rc.d/init.d/zabbix_agentd?#編輯客戶(hù)端配置文件

BASEDIR=/usr/local/zabbix/?#zabbix安裝目錄

PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid? #pid文件路徑

:wq!?#保存退出

[root@mysqla zabbix-3.2.1]#systemctl daemon-reload

[root@mysqla zabbix-3.2.1]#/etc/init.d/zabbix_server stop

Stopping zabbix_server (viasystemctl):??????????????????? [? OK? ]

[root@mysqla zabbix-3.2.1]#netstat -anpt | grep zabbix

[root@mysqla zabbix-3.2.1]#/etc/init.d/zabbix_server start

Starting zabbix_server (viasystemctl):??????????????????? [? OK? ]

[root@mysqla zabbix-3.2.1]#netstat -anpt | grep zabbix

tcp? 0??? 00.0.0.0:10051?? 0.0.0.0:*? LISTEN?????28106/zabbix_server

設(shè)置防火墻規(guī)則

[root@mysqla zabbix-3.2.1]#firewall-cmd --permanent --add-port=10051/tcp

success

[root@mysqla zabbix-3.2.1]#firewall-cmd --reload

success

配置zabbix web頁(yè)面

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

[root@mysqla ~]# cd/root/zabbix-3.2.1/

[root@mysqla zabbix-3.2.1]# cp-r frontends/php/ /usr/local/nginx1.10/html/zabbix

[root@mysqla zabbix-3.2.1]#chown ?-R?www:www?/usr/local/nginx1.10/html/zabbix/

注:/usr/local/nginx/html為Nginx默認(rèn)站點(diǎn)目錄 www為Nginx運(yùn)行賬戶(hù)

注:PHP需要至少開(kāi)啟擴(kuò)展:

gd,bcmath,ctype,libXML,xmlreader,xmlwriter,session,sockets,mbstring,gettext,mysql
如下,查看是否包括了上面所提到的擴(kuò)展模塊

[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

訪問(wèn)Web界面http://192.168.31.225/zabbix,進(jìn)行相關(guān)web配置,配置完成后使用默認(rèn)用戶(hù)admin(密碼:zabbix)登陸即可

進(jìn)入ZABBIX WEB安裝畫(huà)面

?

進(jìn)入ZABBIX檢測(cè)畫(huà)面

對(duì)數(shù)據(jù)庫(kù)進(jìn)行設(shè)置,這里如果數(shù)據(jù)庫(kù)在本地的話(huà)端口可以使用0

?

點(diǎn)擊Next step 一下步進(jìn)行zabbix server 細(xì)節(jié)的設(shè)置 ?這一步可以默認(rèn)

?

點(diǎn)擊安裝,安裝完成后 ?如果沒(méi)有錯(cuò)誤就會(huì)進(jìn)入完成畫(huà)面

完成畫(huà)面有設(shè)置文件放在服務(wù)器的位置,請(qǐng)記下來(lái)

?

?

點(diǎn)擊Finish 完成?

使用Admin?用默認(rèn)密碼 zabbix 登錄

?

?

登錄后畫(huà)面如下

?

? ?至此 ZABBIX的基礎(chǔ)安裝完成

注:

1.???顯示簡(jiǎn)體中文界面

在安裝數(shù)據(jù)庫(kù)時(shí)已經(jīng)將zabbix庫(kù)設(shè)置了utf-8字符

首先確定zabbix開(kāi)啟了中文支持功能:
登錄到zabbix服務(wù)器的數(shù)據(jù)目錄下(前面部署的zabbix數(shù)據(jù)目錄是/usr/local/nginx1.10/html/zabbix/),打開(kāi) locales.inc.php文件

[root@mysqla include]# pwd

/usr/local/nginx1.10/html/zabbix/include

[root@mysqla include]# vilocales.inc.php

function getLocales() {

return [

??????????????? 'en_GB' => ['name'=>_('English (en_GB)'),???? 'display'=> true],

??????????????? 'en_US' => ['name'=>_('English (en_US)'),???? 'display'=> true],

??????????????? 'bg_BG' => ['name'=>_('Bulgarian (bg_BG)'),?? 'display'=> false],

??????????????? 'zh_CN' => ['name'=>_('Chinese (zh_CN)'),???? 'display'=> true],

??????????????? 'zh_TW' => ['name'=>_('Chinese (zh_TW)'),???? 'display'=> false],

??????????????? 'cs_CZ' => ['name'=>_('Czech (cs_CZ)'),?????? 'display'=> true],

??????????????? 'nl_NL' => ['name'=>_('Dutch (nl_NL)'),?????? 'display'=> false],

登陸zabbix后,點(diǎn)擊右上角的“用戶(hù)”圖標(biāo),將語(yǔ)言設(shè)置為“中文”:

?

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

?

解決zabbix繪圖中出現(xiàn)中文亂碼問(wèn)題:

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

?

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移動(dòng)到別處

c.然后,接著修改代碼include/defines.inc.php文件中的字體配置,將里面關(guān)于字體設(shè)置從DejaVuSans替換成simkai ?

vi替換技巧:%s/DejaVuSans/simkai
其中:simkai為字庫(kù)名字,不包含ttf后綴

#cd/usr/local/nginx1.10/html/zabbix

# vi include/defines.inc.php

在vi編輯器的末行模式下輸入%s/DejaVuSans/simkai

這樣,修改后,zabbix監(jiān)控圖形中的中文字就不會(huì)出現(xiàn)亂碼了

?

四、zabbix客戶(hù)端的安裝

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

192.168.31.250作為zabbix的被監(jiān)控端,提供web和mysql應(yīng)用

安裝Zabbix,配置Zabbix agent:

[root@server1 ~]# tar zxfzabbix-3.2.1.tar.gz

[root@server1 ~]# cdzabbix-3.2.1/

[root@server1 zabbix-3.2.1]#./configure --prefix=/usr/local/zabbix --enable-agent

[root@server1 zabbix-3.2.1]#make&& make install

[root@server1 zabbix-3.2.1]#cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

[root@server1 zabbix-3.2.1]#mkdir -p /usr/local/zabbix/logs

[root@server1 zabbix-3.2.1]#groupadd zabbix

[root@server1 zabbix-3.2.1]#useradd -g zabbix zabbix

[root@server1 zabbix-3.2.1]#chown -R zabbix:zabbix /usr/local/zabbix/

配置開(kāi)機(jī)自動(dòng)啟動(dòng):

[root@server1 ~]# chkconfig--add zabbix_agentd

[root@server1 ~]# chkconfigzabbix_agentd? on

修改zabbix開(kāi)機(jī)啟動(dòng)腳本中的zabbix安裝目錄

vi/etc/rc.d/init.d/zabbix_agentd?#編輯客戶(hù)端配置文件

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

內(nèi)容如下:

[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.31.225

ListenPort=10050

ServerActive=192.168.31.225

Hostname=192.168.31.250

Timeout=15

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

注:

其中Server和ServerActive都指定zabbixserver的IP地址,不同的是,前者是被動(dòng)后者是主動(dòng)。也就是說(shuō)Server這個(gè)配置是用來(lái)允許192.168.31.225這個(gè)ip來(lái)我這取數(shù)據(jù)。而serverActive的192.168.31.225的意思是,客戶(hù)端主動(dòng)提交數(shù)據(jù)給他。

Hostname=XXX,這個(gè)定義的名字必須和web頁(yè)面里面host的名字一樣。

啟動(dòng)zabbix_agentd:

[root@server1 ~]#/etc/init.d/zabbix_agentd start

Starting zabbix_agentd (viasystemctl):??????????????????? [? OK? ]

[root@server1 ~]# netstat-anpt | grep zabbix_agentd

tcp??????? 0?????0 0.0.0.0:10050??????????0.0.0.0:*?????????????? LISTEN????? 12926/zabbix_agentd

[root@server1 ~]#firewall-cmd --permanent --add-port=10050/tcp

success

[root@server1 ~]#firewall-cmd --reload

success

到此,zabbix3.2.1監(jiān)控系統(tǒng)的基本環(huán)境安裝完成。

實(shí)現(xiàn)zabbix添加監(jiān)測(cè)項(xiàng)

添加對(duì)Linux主機(jī)的監(jiān)控

在瀏覽器中打開(kāi):http://192.168.31.225/zabbix

登錄zabbix,先在“配置”-“主機(jī)”里添加主機(jī)監(jiān)控,監(jiān)控os資源:內(nèi)存,cpu,io,負(fù)載,帶寬等.

登錄zabbix,先在“配置”-“主機(jī)”里單擊”創(chuàng)建主機(jī)”

點(diǎn)擊”主機(jī)”標(biāo)簽,填寫(xiě)相關(guān)信息

?

?

注意:下圖中的“主機(jī)名稱(chēng)”要和zabbix_agentd.conf文件中設(shè)置的“Hostname”后面的名稱(chēng)一致!

主機(jī)名稱(chēng):192.168.31.250

群組:Linux servers

agent代理程序接口ip:192.168.31.250

已啟用:勾選

其它選項(xiàng)默認(rèn)即可

切換到模板

?

選擇

選擇:Template OS Linux

點(diǎn)添加

?

添加

?

至此,Zabbix監(jiān)控Linux主機(jī)設(shè)置完成。

?

配置過(guò)一段時(shí)間后,觀察下監(jiān)控圖效果出來(lái)了沒(méi):

?

zabbix3.0 server已自帶mysql的模板了,只需配置好agent客戶(hù)端,然后在web端給主機(jī)增加模板就行了。

Zabbix_agent客戶(hù)端操作
(1)首先在客戶(hù)端的mysql里添加權(quán)限,即本機(jī)使用zabbix賬號(hào)連接本地的mysql

mysql> grant all on *.*to zabbix@'localhost' identified by "123456”;
mysql> flush privileges;
(2)在zabbix_agent服務(wù)目錄下創(chuàng)建.my.cnf 連接文件
? ? ? ? zabbix安裝目錄是/usr/local/zabbix
[root@server1 ~]# cd /usr/local/zabbix/etc/
[root@server1 ~]# cat .my.cnf?
[client]
user=zabbix
password=123456

注意:

如果在數(shù)據(jù)庫(kù)grant授權(quán)時(shí),針對(duì)的是localhost,這個(gè).my.cnf里面就不用加host參數(shù)了【如上配置】

但如果grant授權(quán)時(shí)針對(duì)的是本機(jī)的ip(如192.168.31.250),那么在.my.cnf文件里就要加上host參數(shù)進(jìn)行指定了

即在.my.cnf文件就要加上:

host=192.168.31.250

socket= /usr/local/mysql/mysql.sock

user=zabbix
password=123456

(3)配置MySQL的key文件
? ? ?這個(gè)可以從zabbix3.2安裝時(shí)的解壓包里拷貝過(guò)來(lái)

從zabbix_server服務(wù)端安裝時(shí)解壓目錄

/root/zabbix-3.2.1/conf/zabbix_agentd/userparameter_mysql.conf?拷貝到zabbix_agent客戶(hù)端上的/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 目錄下的
[root@server1 ~]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@server1zabbix_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?文件,看到類(lèi)似?HOME=/var/lib/zabbix?的路徑設(shè)置,把路徑全都替換為?/usr/local/zabbix/etc/,也就是上面的.my.cnf文件所在的目錄路徑。
另外,注意userparameter_mysql.conf?文件里的mysql命令路徑(提前做好mysql的系統(tǒng)環(huán)境變量,以防m(xù)ysql命令不被系統(tǒng)識(shí)別)

如下:

[root@server1zabbix_agentd.conf.d]# cat userparameter_mysql.conf

# For all the followingcommands HOME should be set to the directory that has .my.cnf file withpassword information.

?

# Flexible parameter to grabglobal variables. On the frontend side, use keys like mysql.status[Com_insert].

# Key syntax ismysql.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 todetermine database or table size. On the frontend side, use keys likemysql.size[zabbix,history,data].

# Key syntax ismysql.size[<database>,<table>,<type>].

# Database may be a databasename or "all". Default is "all".

# Table may be a table nameor "all". Default is "all".

# Type may be"data", "index", "free" or "both". Bothis a sum of data and index. Default is "both".

# Database is mandatory if atable is specified. Type may be specified always.

# Returns value in bytes.

# 'sum' on data_length orindex_length alone needed when we are getting this information for wholedatabase 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 " wheretable_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 -9zabbix_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服務(wù)端進(jìn)行命令行測(cè)試[下面的192.168.31.250是客戶(hù)端的ip]

若下面報(bào)錯(cuò)

[root@localhost zabbix]#/usr/local/zabbix/bin/zabbix_get -s 192.168.31.250 -p 10050 -k"mysql.status[Uptime]"

sh: mysql: command not found

解決方法:

在userparameter_mysql.conf中關(guān)于mysql命令前面添加絕對(duì)路徑

[root@mysqla~]#/usr/local/zabbix/bin/zabbix_get -s 192.168.31.250 -p 10050 -k"mysql.status[Uptime]"

12593

[root@mysqla ~]#

如果出現(xiàn)類(lèi)似這一串key的數(shù)字,就說(shuō)明配置ok,服務(wù)端能監(jiān)控到客戶(hù)端的mysql數(shù)據(jù)了!
成功啦,之后在監(jiān)控界面增加主機(jī)對(duì)應(yīng)的MySQL模板就ok了。

注:zabbix_get命令介紹

參數(shù)說(shuō)明:

-s --host:指定客戶(hù)端主機(jī)名或者IP

-p --port:客戶(hù)端端口,默認(rèn)10050

-I --source-address:指定源IP,寫(xiě)上zabbix server的ip地址即可,一般留空,服務(wù)器如果有多ip的時(shí)候,你指定一個(gè)。

-k --key:你想獲取的key

zabbix_get獲取數(shù)據(jù)

獲取負(fù)載

# zabbix_get -s192.168.31.250 -p 10050 -k "system.cpu.load[all,avg15]"

獲取主機(jī)名

# zabbix_get -s192.168.31.250 -p 10050 -k "system.hostname"

(5)登錄zabbix監(jiān)控界面,在“配置”-“模板”里可以看到自帶的mysql監(jiān)控模板

?

在相應(yīng)主機(jī)監(jiān)控配置里添加mysql的監(jiān)控模版(zabbix自帶的)即可。

?

下面是mysql監(jiān)控項(xiàng)的效果圖:

【1】監(jiān)控mysql的帶寬:在zabbix前端可以實(shí)時(shí)查看mysql發(fā)送接收的字節(jié)數(shù)。其中bytes received表示從所有客戶(hù)端接收到的字節(jié)數(shù),bytes sent表示發(fā)送給所有客戶(hù)端的字節(jié)數(shù)。

【2】監(jiān)控mysql的操作狀態(tài):在zabbix前端可以實(shí)時(shí)查看各種SQL語(yǔ)句每秒鐘的操作次數(shù)。

?

zabbix3.2.1郵件報(bào)警設(shè)置:

Zabbix監(jiān)控服務(wù)端、客戶(hù)端都已經(jīng)部署完成,被監(jiān)控主機(jī)已經(jīng)添加,Zabiix監(jiān)控運(yùn)行正常。

在Zabbix服務(wù)端設(shè)置郵件報(bào)警,當(dāng)被監(jiān)控主機(jī)宕機(jī)或者達(dá)到觸發(fā)器預(yù)設(shè)值時(shí),會(huì)自動(dòng)發(fā)送報(bào)警郵件到指定郵箱。

具體操作:

以下操作在Zabbix監(jiān)控服務(wù)端進(jìn)行

下載sendemail軟件

然后安裝那兩個(gè)依賴(lài)包,命令是:

yum install perl-Net-SSLeayperl-IO-Socket-SSL -y

解壓軟件,然后將sendemail復(fù)制到/usr/local/bin/目錄下,并加上可執(zhí)行權(quán)限,然后修改用戶(hù)和群組。

[root@mysqla ~]# tar zxfsendEmail-v1.56.tar.gz

[root@mysqla ~]# cdsendEmail-v1.56/

[root@mysqlasendEmail-v1.56]# cp sendEmail /usr/local/bin/sendEmail

[root@mysqlasendEmail-v1.56]# chown zabbix:zabbix /usr/local/bin/sendEmail

[root@mysqlasendEmail-v1.56]# ll /usr/local/bin/sendEmail

-rwxr-xr-x. 1 zabbix zabbix80213 Nov 21 21:26 /usr/local/bin/sendEmail

執(zhí)行#/usr/local/bin/sendEmail -h查看sendEmail的幫助

#/usr/local/bin/sendEmail -fbpcyh1@126.com -t bpcyh1@126.com -s smtp.126.com -u "hello" -omessage-content-type=html -o message-charset=utf8 -xu bpcyh1@126.com -xp 123abc-m "abcfdd"

命令主要選項(xiàng)說(shuō)明:
/usr/local/bin/sendEmail ? ? ? ? ? ? ?? ? ??#命令主程序
-f ?from@126.com ? ? ?? ? ? ? ? ? ? ? ? ?#發(fā)件人郵箱
-t to@126.com ? ? ? ? ? ? ? ? ?? ? ? ? ? ?#收件人郵箱
-s smtp.126.com? ? ? ? ? ? ? ? ?? ? ? ? ?#發(fā)件人郵箱的smtp服務(wù)器
-u "我是郵件主題" ? ? ? ?? ? ? ? ? ? ? ? ? ???#郵件的標(biāo)題
-o message-content-type=html ? ? ? ? ?#郵件內(nèi)容的格式,html表示它是html格式
-o message-charset=utf8 ? ? ? ? ? ? ? ???#郵件內(nèi)容編碼
-xu from@126.com ? ? ? ? ? ? ? ? ?? ??#發(fā)件人郵箱的用戶(hù)名
-xp WEE78@12l$ ? ? ? ? ? ? ? ? ?? ? ? ? ??#發(fā)件人郵箱密碼
-m "我是郵件內(nèi)容" ? ? ? ?? ? ? ? ? ? ? ? ? ??#郵件的具體內(nèi)容

進(jìn)入/usr/local/zabbix/share/zabbix/alertscripts/目錄

然后在這個(gè)目錄下創(chuàng)建報(bào)警腳本sendmail.sh

[root@mysqla alertscripts]#vi mail.sh

下面是腳本內(nèi)容(涂顏色部分是你的郵箱和密碼,-f和-xu參數(shù)后面跟郵箱,-xp后面跟授權(quán)碼)

#!/bin/bash

to=$1

subject=$2

body=$3

/usr/local/bin/sendEmail-o tls=auto -f bpcyh1@126.com -t "$to" -s smtp.126.com -u"$subject" -o message-content-type=html -o message-charset=utf8 -xubpcyh1@126.com -xp 123abc -m "$body"?

[root@mysqla alertscripts]#chmod +x mail.sh

執(zhí)行腳本測(cè)試發(fā)郵件

[root@mysqla alertscripts]#./mail.sh bpcyh1@126.com test 123

*******************************************************************

?Using the defaultof SSL_verify_mode of SSL_VERIFY_NONE for client

is deprecated! Please set SSL_verify_mode toSSL_VERIFY_PEER

together with SSL_ca_file|SSL_ca_path for verification.

?If you reallydon't want to verify the certificate and keep the

connection open to Man-In-The-Middle attacks please set

SSL_verify_mode explicitly to SSL_VERIFY_NONE in yourapplication.

*******************************************************************

at /usr/local/bin/sendEmail line 1906.

invalid SSL_version specified at/usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 415

注:進(jìn)行發(fā)送郵件測(cè)試時(shí),出現(xiàn)了第一個(gè)報(bào)錯(cuò)

原因是sendemail軟件和perl5里面的ssl版本不兼容導(dǎo)致的,通過(guò)修改sendemail里面的內(nèi)容可以解決這個(gè)問(wèn)題。

解決方法:

在sendemail中1906行的內(nèi)容,從

if (!IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {

修改為

if (! IO::Socket::SSL->start_SSL($SERVER)){

即不指定SSL的版本,讓程序來(lái)自己選擇

不管你使用的是163/126郵箱還是qq郵箱,你都必須開(kāi)通pop3服務(wù),而且126/qq郵箱還要求使用第三方客戶(hù)端發(fā)送郵件是必須使用授權(quán)碼登錄,使用賬號(hào)密碼驗(yàn)證時(shí),會(huì)出現(xiàn)下面圖片中的錯(cuò)誤。

sendEmail[5102]: ERROR =>ERROR => SMTP-AUTH: Authentication to smtp.126.com:25 failed.

至于郵箱的授權(quán)碼,自己登錄126郵箱去設(shè)置就好。

經(jīng)過(guò)上面兩個(gè)問(wèn)題的處理后就可以正常發(fā)送郵件如下所示顯示成功提示

[root@mysqla alertscripts]#./mail.sh bpcyh1@126.com test 123

Nov 21 22:50:47 mysqlasendEmail[5195]: Email was sent successfully!

zabbix web端配置

上面的郵件腳本配置好后,就要在web端添加報(bào)警媒介,在web頁(yè)面的管理,報(bào)警媒介類(lèi)型頁(yè)面,點(diǎn)擊右邊的創(chuàng)建媒體類(lèi)型

?

進(jìn)入創(chuàng)建頁(yè)面,然后輸入名稱(chēng)“郵件報(bào)警腳本”,類(lèi)型選擇腳本,名稱(chēng)選擇mail.sh,點(diǎn)擊添加按鈕,添加三個(gè)腳本參數(shù),分別是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESAGE},分別對(duì)于mail.sh中的to、subject和body。添加完成后點(diǎn)下面的添加按鈕,我們的報(bào)警媒介就創(chuàng)建完成了

?

?

創(chuàng)建好報(bào)警媒介后,就需要將報(bào)警媒介關(guān)聯(lián)到我們的用戶(hù)。點(diǎn)擊管理,用戶(hù),然后選擇我們的用戶(hù)admin也可新建一個(gè)用戶(hù),點(diǎn)擊用戶(hù)名就進(jìn)入到用戶(hù)配置界面。點(diǎn)擊報(bào)警媒介,然后點(diǎn)添加,選擇我們上一步創(chuàng)建的郵件報(bào)警腳本,輸入收件人,選擇報(bào)警時(shí)間和類(lèi)型,然后點(diǎn)擊添加,就將創(chuàng)建好的報(bào)警媒介關(guān)聯(lián)到我們的用戶(hù)上面了。

?

?

現(xiàn)在需要做的是,創(chuàng)建一個(gè)觸發(fā)動(dòng)作,即系統(tǒng)出現(xiàn)故障時(shí),觸發(fā)這個(gè)動(dòng)作,然后給我們的郵箱發(fā)送報(bào)警郵件。點(diǎn)擊配置,選擇動(dòng)作,然后點(diǎn)擊右邊的創(chuàng)建動(dòng)作。

在動(dòng)作這一頁(yè)名稱(chēng)中寫(xiě)入我們定義的動(dòng)作名以及觸發(fā)條件

??

設(shè)置“操作”

?

步驟是1-3,也即是從1開(kāi)始到3結(jié)束。一旦故障發(fā)生,就是執(zhí)行Email.sh腳本發(fā)生報(bào)警郵件給zabbix用戶(hù)。?
假如故障持續(xù)了1個(gè)小時(shí),它也只發(fā)送3次,第1-3次(即前3次)郵箱發(fā)送給zabbix用戶(hù),時(shí)間間隔為0秒。
如果改成1-0,0是表示不限制.無(wú)限發(fā)送??

設(shè)置“恢復(fù)操作”

?

添加好以后就可以看到我們添加的動(dòng)作名,以及該動(dòng)作已啟用的狀態(tài)。

?

報(bào)警測(cè)試

將192.16831.250服務(wù)器的zabbix_agent進(jìn)程關(guān)閉。

發(fā)現(xiàn)可以正常收到故障報(bào)警郵件

最后,點(diǎn)擊”報(bào)表“->”動(dòng)作日志“,可以看到觸發(fā)動(dòng)作的次數(shù)(右邊還看查看到郵件發(fā)送狀態(tài)“已發(fā)送”)。


=========================================================================================


通過(guò)理論和實(shí)踐的結(jié)合能更好的提升,歡迎轉(zhuǎn)載,學(xué)習(xí)!


轉(zhuǎn)載于:https://blog.51cto.com/taoliang/1910453

總結(jié)

以上是生活随笔為你收集整理的Zabbix监控系统安装与使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。