zabbix监控部署方案

第一安装ZABBIX

服务器端:

首先安装LAMP环境

yum install httpd  php* mysql*-y

然后再安装zabbi所依赖的环境:

yum -y install gcc gcc-c++autoconf  php-mysql  httpd-manual mod_ssl mod_perl mod_auth_mysqlphp-gd php-xml php-mbstring  php-ldapphp-pear php-xmlrpc php-bcmath mysql-connector-odbc  mysql-devel l

ibdbi-dbd-mysqlnet-snmp-devel curl-devel

最后安装ZABBIX

Zabbix软件包:zabbix-2.2.6.tar.gz

安装zabbix:

解压:

tar �Czxvf zabbix-2.2.6.tar.gz

cd zabbix-2.2.6

./configure --enable-server--enable-agent --with-mysql --with-net-snmp --with-libcurl

make && make install

编辑配置文件zabbix_server.conf:

cp/usr/local/etc/zabbix_server.conf /usr/local/etc/zabbix_server.conf.back

vi/usr/local/etc/zabbix_server.conf

修改项:

LogFile=/tmp/zabbix_server.log

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=123457

编辑配置文件zabbix_agentd.conf:

cp /usr/local/etc/zabbix_agentd.conf /usr/local/etc/zabbix_ zabbix_agentd.conf.back

vi/usr/local/etc/zabbix_agentd.con

修改项:

LogFile=/tmp/zabbix_agentd.log

Server=127.0.0.1,192.168.0.26

UnsafeUserParameters=1

DebugLevel=3   #打开日志级别

创建日志文件:

# touch /tmp/zabbix_server.log

# touch /tmp/zabbix_agentd.log

# chmod 777 /tmp/zabbix_*

创建zabbix数据库并导入zabbix数据库数据(server)

CREATE DATABASE `zabbix`DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

# mysql -u root -p123456

> create database zabbix;

> grant all on zabbix.* tozabbix@localhost identified by '123457';  grant all on zabbix.* [email protected] identified by '123457';

> flush privileges;

# tar zxvfzabbix-2.0.6.tar.gz

# cd zabbix-2.0.6

# mysql -uzabbix -p123456zabbix < database/mysql/schema.sql

# mysql -uzabbix -p123456zabbix < database/mysql/images.sql

# mysql -uzabbix -p123456zabbix < database/mysql/data.sql

增加软连接:

ln -s/usr/local/iksemel/lib/libiksemel.so.3 /usr/lib64/libiksemel.so.3

配置开机启动脚本:

# cd zabbix-2.0.6

# cpmisc/init.d/tru64/zabbix_server /etc/init.d/zabbix_server

# cpmisc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd

# cd /etc/init.d/

# chmod 755 zabbix_*

添加服务端口:

# vi /etc/services

在文件最后面添加如下的内容:

zabbix-agent    10050/tcp                       # Zabbix Agent

zabbix-agent    10050/udp                      # Zabbix Agent

zabbix-trapper  10051/tcp                       # Zabbix Trapper

zabbix-trapper  10051/udp                      # Zabbix Trapper

安装zabbix web界面(server)

启动zabbix

/etc/init.d/zabbix_serverstart

/etc/init.d/zabbix_agentdstart

web前端安装配置

修改php相关参数

# vi /etc/php.ini    找到如下几项,改成下面的值,前面有;号的要删掉

max_execution_time = 300

date.timezone = Asia/Shanghai

post_max_size = 16M

memory_limit = 128M

mbstring.func_overload = 2

max_input_time = 300

#/etc/init.d/httpd restart

复制ZABBIX PHP源代码文件

先建立一个子目录,将zabbix终端php文件拷贝到该子目录里面,执行下面的命令:

# mkdir /data/web/up.com/zabbix

到zabbix安装软件包文件:frontends/php

# cp -a . /data/web/up.com/zabbix

web页面配置,配置http访问好了后web登陆:http://up.com/zabbix

确认每个Required都是ok的才会显示Next按钮,如果有Fail的需要完善系统要求

wKioL1Q1-z6ju2bWAALo3-o5Eh0107.jpg

wKiom1Q1-xPjQZk3AAH3PDnhI9s432.jpg

wKioL1Q1-02TmA6ZAAJVxlwhsAE440.jpg

wKiom1Q1-xuBsimQAAHmxPrAwg8119.jpg

wKiom1Q1-0bSUcMsAAHssV1f5WQ819.jpg

这里主要下,出现Fail的原因是zabbix的配置文件没有,需要点击“Download configurationfile”将zabbix.conf.php下载到本地在上传到服务器的/data/web/up.comzabbix/conf/目录下,然后在web页面Retry即可。(或是修改/ data/web/up.comzabbix/conf/zabbix.conf.php注:本图不是服务器上的安装图,显示的信息都为一样。)

wKiom1Q1-5myVASCAAGGlJhljvA403.jpg

到此web页面配置完毕,已经到了登陆界面,zabbix的默认登陆账号是admin,密码是zabbix

wKiom1Q1-7zwcUBxAAFdbgYPt3o473.jpg


9.更换中文字体,登陆后在页面的右上边点击“Profile”

wKioL1Q1_B6y2NAcAAC6kVax7NA548.jpg

在Language选项中选择“Chinese(zh_CN)”,然后Save

wKioL1Q1_Guw9vmGAAGjFV8feDo267.jpg

改成中文会出现有乱码,可以到window系统找到自己喜欢的字体上传上去在windows系统中的c:\windows\fonts目录中copy一个自己喜欢的字体文出来,如msyh.ttf将copy出来的字体上传到Zabbix根目录中的fonts目录下将原来的字体文件“DejaVusSans.ttf”备份将上传的字体文件如msyh.ttf改名为DejaVusSans.ttf重新登录zabbix即可。注:2.24以后的版本默认是不能汉化的,所以要修改一下$web/zabbix/include/locales.inc.php文件本次配置目录为:/data/web/up.com/zabbix/include/locales.inc.ph

修改内容:‘zh_CN’=>array(‘name’=>_(‘Chinese(zh_CN)’),’display=>true’),默认是fale,所以不显示Chinese(zh_CN)。保存退出。.

wKioL1Q1_L-i-tELAABqW0VfY8g154.jpg

wKiom1Q1_IqyN4fGAANCiX4SLhw533.jpg

监控端安装与配置(即客户端)

安装依赖环境:

 yum -y install curlcurl-devel net-snmp net-snmp-devel perl-DBI

安装包:

Zabbix软件包:zabbix-2.2.6.tar.gz

安装zabbix:

解压:

tar �Czxvf zabbix-2.2.6.tar.gz

cd zabbix-2.2.6

安装:

./configure --enable-agent

Make && make install

编辑配置文件zabbix_agentd.conf:

cp /usr/local/etc/zabbix_agentd.conf /usr/local/etc/zabbix_ zabbix_agentd.conf.back

vi/usr/local/etc/zabbix_agentd.con

修改项:

LogFile=/tmp/zabbix_agentd.log

Server=192.168.0.26

UnsafeUserParameters=1

DebugLevel=3

创建日志文件:

# touch /tmp/zabbix_agentd.log

# chmod 777 /tmp/zabbix_*

配置开机启动脚本:

# cd zabbix-2.0.6

# cpmisc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd

启动zabbix_agentd

/etc/init.d/zabbix_agentdstart

添加监控机:

wKiom1Q1_OujyFUEAAMdktvDGRw956.jpg

wKioL1Q1_SPy1n7sAAQSKBW3JdM718.jpg

添加主机名时一定要为监控的IP,如果添写hostname在监控的时候会出现问题。

添加监控模板:

zabbix_serve:

wKiom1Q1_SSgezJ8AAP_uShNXxM068.jpg

只添加红色框内的模板。

监控机的模板:图

wKiom1Q1_WywF7eXAAHYnlwIQq8602.jpg

也只有红色框内的模板。

启动监控:

wKiom1Q1_YnhENrrAAUVBWzQcxw986.jpg

点击红色方框内即可激活监控,激活后的状态如图所示为绿色。

-----------------------------------------完-------------------------------------------------

第二配置监控httpd

由于自带的监控模板的功能比较的单一所以这里用的是手动添加和配置的httpd监控的功能:

首先在本机下载模板:https://github.com/rdvn/zabbix-templates/archive/master.zip

该zip包有apache、memcache、redis、varnish模板,我们解压后使用其中的apache模板

一.打开apache的server-status:

# vi /etc/httpd/conf/httpd.conf

末行添加如下内容:

---------------------

ExtendedStatus On

<location/server-status>

   SetHandlerserver-status

   Order Allow,Deny

   Allow from all

</location>

---------------------

重启apache使其生效:

# /etc/init.d/httpd restart

二.zabbix配置:

将下载下来的zip包内apache目录下的apache_status.sh上传到系统/usr/local/bin/下,并赋予

执行权限

# chmod +x apache_status.sh

修改zabbix_agentd.conf配置:

# vi/usr/local/etc/zabbix_agentd.conf

末行添加如下内容:

-------------

UserParameter=apache[*],/usr/local/bin/apache_status.sh$1

-------------  

重启zabbix服务

# pkill zabbix

# /etc/init.d/zabbix_agentdstart

三.访问zabbix web后台导入模板

1.访问zabbix-组态-模板,点击右上角的汇入:

wKioL1Q1_gWjbSHRAAIHQLbA_Ys776.jpg

2.本地导入文件:

将zip包apache目录下的apache.xml文件导入zabbix模板,点击载入保存

wKiom1Q1_fuDjRAVAAD2DsDQj-s614.jpg

3.访问zabbix-组态-模板,查看模板:

wKiom1Q1_h7Re5ZCAAGV5Vz_6Y0960.jpg

四.给所要监控的httpd服务器的机器添加上模板就OK。

注:当httpd服务停止了些模板上所添加的项目会在web页面显示不支持,当开启httpd服务后会自动正常。

 ----------------------------------------完-----------------------------------------------

第三配置监控mysql(只需要在Mysql服务器中配置)

  1. 1.  添加脚本

touch/usr/local/bin/checkmysqlperformance.sh

chmod +x/usr/local/bin/checkmysqlperformance.sh

vi /usr/local/bin/checkmysqlperformance.sh

#!/bin/sh

#Create by sfzhang 2014.02.20

MYSQL_SOCK="/var/lib/mysql/mysql.sock"

MYSQL_PWD=`cat/var/lib/mysql/.mysqlpassword`

ARGS=1

if [ $# -ne "$ARGS"];then 


 echo "Please input one arguement:"

fi

case $1 in

    Uptime)

        result=`mysqladmin -uroot-p${MYSQL_PWD} -S $MYSQL_SOCK status|cut -f2 -d":"|cut -f1-d"T"`

            echo $result

            ;;

        Com_update)

            result=`mysqladmin -uroot-p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w"Com_update"|cut -d"|" -f3`

            echo $result

            ;;

        Slow_queries)

        result=`mysqladmin -uroot-p${MYSQL_PWD} -S $MYSQL_SOCK status |cut -f5 -d":"|cut -f1-d"O"`

                echo $result

                ;;

    Com_select)

        result=`mysqladmin -uroot-p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w"Com_select"|cut -d"|" -f3`

                echo $result

                ;;

    Com_rollback)

        result=`mysqladmin -uroot-p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w"Com_rollback"|cut -d"|" -f3`

                echo $result

                ;;

    Questions)

        result=`mysqladmin -uroot -p${MYSQL_PWD}-S $MYSQL_SOCK status|cut -f4 -d":"|cut -f1 -d"S"`

                echo $result

                ;;

    Com_insert)

        result=`mysqladmin -uroot-p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_insert"|cut-d"|" -f3`

                echo $result

                ;;

    Com_delete)

        result=`mysqladmin -uroot-p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w"Com_delete"|cut -d"|" -f3`

                echo $result

                ;;

    Com_commit)

        result=`mysqladmin -uroot-p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w"Com_commit"|cut -d"|" -f3`

                echo $result 

               ;;

    Bytes_sent)

        result=`mysqladmin -uroot-p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Bytes_sent"|cut -d"|" -f3`

                echo $result

                ;;

    Bytes_received)

        result=`mysqladmin -uroot-p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Bytes_received"|cut -d"|" -f3`

                echo $result

                ;;

    Com_begin)

        result=`mysqladmin -uroot-p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w"Com_begin"|cut -d"|" -f3`

                echo $result

                ;;

                       

        *)

        echo"Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions)"

        ;;

Esac

2在Zabbix_agentd.conf里面添加UserParameter,格式如下

#----------msyql.monitor

UserParameter=mysql.version,mysql-V

#UserParameter=mysql.ping,mysqladmin-uroot -p123456 -S mysqlpassword/mysql.sock ping | grep -c alive

UserParameter=mysql.ping,mysqladmin-uroot -p123456 -S /var/lib/mysql/mysql.sock ping | grep -c alive

UserParameter=mysql.status[*],/usr/local/bin/checkmysqlperformance.sh$1 $2

3.重启agentd服务器

4.添加模板:

wKiom1Q1_vnSYJJPAAPgcPgJ9Es036.jpg

--------------------------------------------完成-------------------------------------------

第四配置监控Nginx

  • 环境检查:

检查nginx的status模块

#nginx �CV

如果有status的模块可以从打印出来的信息找到―with_http_status_module的信息

wKiom1Q1_1PjkIMPAAAvzB1xHw4671.jpg带有了 个编译参数即表示已经有status模块。

如果没则进入到原nginx安装包:

#./configure--prefix=/usr/local/nginx --with-http_stub_status_module或者

#./configure�Cuser=nginx �Cgroup=nginx --with-http_stub_status_module
只需要./configure就完成了,不要再用make了。

二、配置

1)配置nginx.conf文件,开启status模块功能,添加如下:

 

添加完成之后重新加载配置文件,也可以重新启动nginx服务。

重启服务后测试模块是否开启成功:

  Http://IP/nginx_status

如果打开的信息出现类似下面信息表示成功:

wKiom1Q1_7Gi7RxoAABXvw1H8QA483.jpg

2)模块开启这后,我们要使用获取nginx的status参数数据通到zabbix_agent传送到zabbix的sever端。

脚本如下:

#vi /usr/local/bin/nginx-tatus.sh

#!/bin/bash 

# Script to fetch nginxstatuses for tribily monitoring systems 

# Set Variables 

HOST=`ifconfig eth0 | sed -n'/inet /{s/.*addr://;s/ .*//;p}'` 

PORT="80"

 

# Functions to return nginxstats

 

function active {   

    /usr/bin/curl "http://$HOST:$PORT/status"2>/dev/null| grep 'Active' | awk '{print $NF}'     

    }        

function reading {   

    /usr/bin/curl"http://$HOST:$PORT/status" 2>/dev/null| grep 'Reading' | awk'{print $2}'     

    }        

function writing {    


 /usr/bin/curl"http://$HOST:$PORT/status" 2>/dev/null| grep 'Writing' | awk'{print $4}'    

    }        

function waiting {   

    /usr/bin/curl"http://$HOST:$PORT/status" 2>/dev/null| grep 'Waiting' | awk'{print $6}'     

    }        

function accepts {   

    /usr/bin/curl"http://$HOST:$PORT/status" 2>/dev/null| awk NR==3 | awk '{print$1}'

    }        

function handled {   

    /usr/bin/curl"http://$HOST:$PORT/status" 2>/dev/null| awk NR==3 | awk '{print$2}'

    }         

function requests {   

    /usr/bin/curl"http://$HOST:$PORT/status" 2>/dev/null| awk NR==3 | awk '{print$3}'

    }   

 

# Run the requestedfunction 

$1

#chmod +x nginx-tatus.sh

3)添加agent的key值来使zabbix的server获取状态数据,添加如下:

  #vi /usr/local/etc/zabbix_agentd.conf

UserParameter=nginx.accepts,/usr/local/bin/nginx-status.shaccepts

UserParameter=nginx.handled,/usr/local/bin/nginx-status.sh handled

UserParameter=nginx.requests,/usr/local/bin/nginx-status.shrequests

UserParameter=nginx.connections.active,/usr/local/bin/nginx-status.shactive

UserParameter=nginx.connections.reading,/usr/local/bin/nginx-status.shreading

UserParameter=nginx.connections.writing,/usr/local/bin/nginx-status.shwriting

UserParameter=nginx.connections.waiting,/usr/local/bin/nginx-status.shwaiting

 重新启动zabbix_agentd

 #pkill zabbix

 #/etc/init.d/zabbix_agentd restart

三、添加模板    

   -----------------------------------------完----------------------------------------------

第五配置监控Tomcat

这里主要用的是jmx来监控Tomcat。

  • zabbix-server服务器

首先安装java环境

1)检查java环境卸载系统自带的jdk版本

查看自带的JDK

#rpm �Cqa|grep gcj

一般会出现类如下信息:

libgcj-4.1.2-44.el5

          java-1.4.2-gcj-compat-1.4.2.0-40jpp.115等。。。

          使用rpm �Ce 命令卸载出现包名,有时会出现依赖的错误则可以用yum remove命令卸载。

  安装包:jdk-7u21-linux-x64.rpm

安装:#rpm �Civhjdk-7u21-linux-x64.rpm

再次安装Javagateway

如果是用的zabbix-*.tar.gz包安装的server里面自带有Javagateway

如:

     # cd zabbix-2.2.6

     #./configure --enable-java --prefix=/usr/local/zabbix_java

     #make && make install

然后修改与启动Javagateway配置文件.

    #cd /usr/local/zabbix_java/sbin/zabbix_java

    #vi settings.sh

修改的内容:

LISTEN_IP="0.0.0.0"

LISTEN_PORT=10052

PID_FILE="/tmp/zabbix_java.pid"

START_POLLERS=5

启动Javagateway

[root@web-27 zabbix_java]# ./startup.sh

最后修改zabbix-server的配置文件

# vi zabbix_server.conf

修改内容:

JavaGateway=127.0.0.1

JavaGatewayPort=10052

StartJavaPollers=50

重新启动zabbix_server

 #/etc/init.d/zabbix_server restart

  • zabbix_agend客户端配置,即tamcat服务器:

配置jdk环境略

安装tomcat

安装包如:apache-tomcat-7.0.30.tar.gz

解压:#tar �Czxvf apache-tomcat-7.0.30.tar.gz

     #mv apache-tomcat-7.0.30 tomcat

配置tomcat

#cd tomcat/bin

#vi catalina.sh

配置内容:添加。(注:添加些内容时不能在文件的最后面添加,要在相应的位置配置与添加)

exportCATALINA_OPTS="-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false-Djava.rmi.server.hostname=192.168.0.27"#注这里的IP就是tomcat本机的地址主要用来远程连接jmx监控

wKioL1Q2APfiZV0kAAJAoJHy-UM509.jpg

#cd tomcat/conf

#vi server.xml

配置内容:添加。(注:添加些内容时不能在文件的最后面添加,要在相应的位置配置与添加下面的端口为zabbix默认的端口也可以改成自需要的。一般不用改。)

<ListenerclassName="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"rmiRegistryPortPlatform="12345"rmiServerPortPlatform="12346" />

wKiom1Q2AQChx4RCAAHX6-jjenY527.jpg

下载:catalina-jmx-remote.jar与cmdline-jmxclient-0.10.3.jar放在tomcat/lib目录下面。(注,当用工具测试到数据时,才能证明用jmx远程是可以有数据的,才能去配置zabbix。)
    测试:

     #java -jar cmdline-jmxclient-0.10.3.jar - 192.168.0.27:12345java.lang:type=Memory NonHeapMemoryUsage

wKioL1Q2AWKDd5PWAAERsXFrkCA971.jpg

添加监控项


你可能感兴趣的:(zabbix,监控部署)