zabbix监控系统部署

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的系统架构:

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


2、Zabbix部署前的LNMP环境的搭建过程:

安装编译工具及库文件

wKioL1jbghuhGX1KAAA5QPL05fE488.png

安装mysql5.7.13

一、系统环境:centos7.2 x86_64

wKioL1jbho2BsLYDAABfvJJuau4247.png

由于centos7.2默认安装了mariadb-libs,因此先要卸载掉

查看是否安装mariadb

#rpm -qa | grep mariadb

卸载mariadb

rpm -e --nodeps mariadb-libs

wKiom1jbho7TiGwXAABldexRcG4341.png

二、安装依赖包

注: 相关依赖包的做用

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    ---数据库目录

三、编译安装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

四、设置权限并初始化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 .

五、建立配置文件

# cd/usr/local/mysql/support-files     ---进入MySQL安装目录支持文件目录

# cp my-default.cnf /etc/my.cnf    ---复制模板为新的配置文件,

wKiom1jbhpWTY5AUAABIzqEAgPk412.png

修改文件中配置选项,以下图所示,添加以下配置项

#vi  /etc/my.cnf

wKiom1jbhpaT4X2zAAB4TmAfxcc209.png

六、配置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部署完毕。


3、监控系统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

4、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的警报这期先不写了开个小差,下次跟新哈。

相关文章
相关标签/搜索