您的位置:首页 > 运维架构

zabbix监控部署方案

2014-10-09 11:33 447 查看
第一安装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 –zxvf 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.* tozabbix@web-26.dragontrail.net 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的需要完善系统要求















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



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




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




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



改成中文会出现有乱码,可以到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)。保存退出。.






监控端安装与配置(即客户端)
安装依赖环境:
yum -y install curlcurl-devel net-snmp net-snmp-devel perl-DBI
安装包:
Zabbix软件包:zabbix-2.2.6.tar.gz
安装zabbix:
解压:
tar –zxvf 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
添加监控机:






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



只添加红色框内的模板。
监控机的模板:图



也只有红色框内的模板。
启动监控:



点击红色方框内即可激活监控,激活后的状态如图所示为绿色。
-----------------------------------------完-------------------------------------------------
第二配置监控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-组态-模板,点击右上角的汇入:



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



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



四.给所要监控的httpd服务器的机器添加上模板就OK。
注:当httpd服务停止了些模板上所添加的项目会在web页面显示不支持,当开启httpd服务后会自动正常。
----------------------------------------完-----------------------------------------------
第三配置监控mysql(只需要在Mysql服务器中配置)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.添加模板:



--------------------------------------------完成-------------------------------------------
第四配置监控Nginx环境检查:

检查nginx的status模块
#nginx –V
如果有status的模块可以从打印出来的信息找到—with_http_status_module的信息


带有了 个编译参数即表示已经有status模块。
如果没则进入到原nginx安装包:
#./configure--prefix=/usr/local/nginx --with-http_stub_status_module或者
#./configure–user=nginx –group=nginx --with-http_stub_status_module
只需要./configure就完成了,不要再用make了。
二、配置
1)配置nginx.conf文件,开启status模块功能,添加如下:

添加完成之后重新加载配置文件,也可以重新启动nginx服务。
重启服务后测试模块是否开启成功:
Http://IP/nginx_status
如果打开的信息出现类似下面信息表示成功:



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 –qa|grep gcj一般会出现类如下信息:libgcj-4.1.2-44.el5 java-1.4.2-gcj-compat-1.4.2.0-40jpp.115等。。。
使用rpm –e 命令卸载出现包名,有时会出现依赖的错误则可以用yum remove命令卸载。 安装包:jdk-7u21-linux-x64.rpm安装:#rpm –ivhjdk-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=10052PID_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.1JavaGatewayPort=10052StartJavaPollers=50
重新启动zabbix_server #/etc/init.d/zabbix_server restartzabbix_agend客户端配置,即tamcat服务器:

配置jdk环境略安装tomcat安装包如:apache-tomcat-7.0.30.tar.gz解压:#tar –zxvf 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监控



#cd tomcat/conf#vi server.xml配置内容:添加。(注:添加些内容时不能在文件的最后面添加,要在相应的位置配置与添加下面的端口为zabbix默认的端口也可以改成自需要的。一般不用改。)
<ListenerclassName="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"rmiRegistryPortPlatform="12345"rmiServerPortPlatform="12346" />



下载: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


添加监控项

本文出自 “沙漠之鹘” 博客,请务必保留此出处http://shamozhihu.blog.51cto.com/6144046/1561617
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: