码迷,mamicode.com
首页 > 其他好文 > 详细

Zabbix监控

时间:2015-07-07 19:42:39      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:mysql   监控   zabbix   

(一)基础配置

一、环境准备

rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

1、安装LAMP环境

# yum -y install mysql mysql-server  httpd php 

# chkconfig mysqld on

# chkconfig httpd on

 

2、创建Zabbix运行的用户 

# groupadd zabbix 

# useradd -g zabbix zabbix 

3、安装ZabbixWeb所需的依赖包

# yum -y install mysql-devel gcc net-snmp-develcurl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml

安装fping

#cd /opt

#wget -c http://fping.org/dist/fping-3.4.tar.gz

# tar xvf fping-3.4.tar.gz

# cd fping-3.4

# ./configure

# make && make install

# chown root:zabbix /usr/local/sbin/fping

# chmod 4710 /usr/local/sbin/fping

 

4、安装 

#cd /opt

wget -c http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fzabbix%2F%3Fsource%3Ddlp&ts=1367916060&use_mirror=ncu

# tar xvf zabbix-2.0.6.tar.gz

# cd zabbix-2.0.6

# ./configure --prefix=/usr/local/zabbix --enable-server--enable-agent --enable-proxy --with-mysql=/usr/bin/mysql_config--with-net-snmp --with-libcurl

#echo $?

#make && make install

#echo $?

 

二、Zabbix Server配置与启动

1、创建Zabbix数据库和Mysql用户 

#service mysqld start

#mysqladmin -uroot password ‘xxxxx‘

#mysql -uroot -pxxxxxx

mysql> create schema zabbix character set utf8;

Query OK, 1 row affected (0.03 sec)

 

mysql> create user ‘zabbix‘@‘127.0.0.1‘ identified by‘123456‘;

Query OK, 0 rows affected (0.00 sec)

 

mysql> grant all on zabbix.* to ‘zabbix‘@‘127.0.0.1‘;

Query OK, 0 rows affected (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

2、导入Zabbix数据库初始数据

#cd zabbix-2.0.12/database/mysql

# mysql -uroot -picebox zabbix < schema.sql 

# mysql -uroot -picebox zabbix < images.sql 

#mysql -uroot -picebox zabbix < data.sql 

3、配置Zabbix配置文件

# cd /usr/local/zabbix/etc

# cp zabbix_server.conf zabbix_server.conf.bak

# cat >zabbix_server.conf<<EOF

> ListenPort=10051

> LogFile=/usr/local/zabbix/logs/zabbix_server.log

> PidFile=/usr/local/zabbix/logs/zabbix_server.pid

> DBHost=127.0.0.1         (此处不支持localhost

> DBName=zabbix

> DBUser=zabbix

> DBPassword=123456

> DBPort=3306

> DBSocket=/var/lib/mysql/mysql.sock

> FpingLocation=/usr/local/sbin/fping

> EOF

 

4、配置Zabbix服务。

# cd /opt/src/zabbix-2.0.12

# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/

# mkdir -p /usr/local/zabbix/logs

# chown -R zabbix:zabbix /usr/local/zabbix/

# vim /etc/init.d/zabbix_server     #修改增加蓝色字体

RETVAL=0

prog="Zabbix Server"

#ZABBIX_BIN="/usr/local/sbin/zabbix_server"

ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"

CONF_FILE="/usr/local/zabbix/etc/zabbix_server.conf"

if [ ! -x ${ZABBIX_BIN} ] ; then

echo -n "${ZABBIX_BIN} not installed! "

# Tell the user this has skipped

exit 5

fi

start() {

        echo -n $"Starting$prog: "                                            

          daemon $ZABBIX_BIN -c $CONF_FILE                                       

        RETVAL=$?                                                             

        [ $RETVAL -eq 0 ] &&touch /var/lock/subsys/zabbix_agentd               

        echo                                                                 

}

 

 

5、开启Zabbix安全限制(若未开防火墙,可跳过此步骤)

#iptables -A INPUT -p tcp -m tcp --dport 10051 -j ACCEPT

#service iptables save

 

6、启停Zabbixserver

#service zabbix_server start

#service zabbix_server stop

 

7、配置开机自启动

#chkconfig --add zabbix_server

#chkconfig --level 35 zabbix_server on

 

8、查看日志是否报错

# cd /usr/local/zabbix/logs

# tail -f zabbix_server.log 

 

三、配置Zabbix Web服务端

1、将ZabbixWeb文件复制到Apache Web目录中

#cd zabbix-2.0.12

# cp -ra frontends/php/* /var/www/html

 

2Apache配置

# vim /etc/httpd/conf/httpd.conf (修改如下内容)

ServerName 127.0.0.1:80

 

3PHP配置

# vim /etc/php.ini (以下标红添加,标蓝修改)

date.timezone=Asia/Shanghai        #php5.3版本,地区首字母必须大写

mbstring.func_overload=2

post_max_size=16M

max_execution_time=300

max_input_time=300

 

4Zabbixweb安装 

#service httpd start

访问web界面http://192.168.198.129,按照步骤提示依次进行安装

 

默认登录用户名admin,密码zabbix,登录后修改密码:Adminstration->Users->Admin->ChangePassword

 

 

四、安装Zabbix Agent

1、安装软件

#cd /opt

wget -c   http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fzabbix%2F%3Fsource%3Ddlp&ts=1367916060&use_mirror=ncu

 

http://heanet.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz

# tar xvf zabbix-2.0.6.tar.gz  

# cd zabbix-2.0.6

# ./configure --prefix=/usr/local/zabbix--enable-agent 

#echo $?  

#make && make install  

#echo $?  

# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/   ##为下面配置init做准备

 

2、配置zabbix_agentd

# groupadd zabbix 

# useradd -g zabbix zabbix 

# mkdir -p /usr/local/zabbix/logs 

 

# cd /usr/local/zabbix/etc

# cp zabbix_agentd.conf zabbix_agentd.conf.bak

# cat >zabbix_agentd.conf<<EOF                

PidFile= /usr/local/zabbix/logs/zabbix_agentd.pid

LogFile= /usr/local/zabbix/logs/zabbix_agentd.log

Server=zabbix_server_IP            #zabbix_serverIP

ListenPort=10050

ServerActive=zabbix_server_IP             #zabbix_server IPHostname=zabbix_server         agent_IP           #zabbix_agentIP Webhost相同名称,本人喜欢用IP地址

Timeout=15

Include= /usr/local/zabbix/etc/zabbix_agentd.conf.d/       #监控mysqlMPM插件时用此项

 

#以下为自定义监控

UnsafeUserParameters=1

 

Userparameter=user.shell[*].sh  $1

# chown -R zabbix:zabbix /usr/local/zabbix/ 

 

3、配置启动脚本

# vim /etc/init.d/zabbix_agentd #修改增加以下蓝色字体

#ZABBIX_BIN="/usr/local/sbin/zabbix_agentd"

ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"

CONF_FILE="/usr/local/zabbix/etc/zabbix_agentd.conf"

~~~~~~~~~~~~

start() {

        echo -n $"Starting$prog: "                                            

        daemon$ZABBIX_BIN -c $CONF_FILE                                      

        RETVAL=$?                                                             

        [ $RETVAL -eq 0 ] &&touch /var/lock/subsys/zabbix_agentd               

        echo                                                                 

}

 

4、开启Zabbix安全限制(若未开防火墙,可跳过此步骤) 

#iptables -A INPUT -p tcp -m tcp --dport 10050 -jACCEPT 

#service iptables save 

 

5、启停Zabbixagentd 

#service zabbix_agentd start 

#service zabbix_agentd stop 

#/etc/init.d/zabbix_agentd start

 

6、配置开机自启动 

#chkconfig --add zabbix_agentd 

#chkconfig --level 35 zabbix_agentd on 

 

7、检测Zabbix Agent是否正常工作

# /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd .conf -t system.uptime

system.uptime                               [u|689960]

 

参考:《深入浅出MySQL

(二)MySQL数据库监控

部署MPMperformance monitor for mysql

MPM是一套比较完整的监控Mysql数据库的Zabbix插件,该插件中包括丰富的监控项和触发器规则,通过和Zabbix客户端整合,可以完美的实现对Mysql数据库的监控。

 

MPM实现过程:Zabbix客户端zabbix_agentd读取配置文件zabbix_agentd.confzabbix_agentd.conf根据设置载入FromDual_MYSQL_monitoring.conf文件,将Zabbix客户端和MPM插件实现挂接。MPM的主要功能是完成对数据库相关信息收集和上传操作。对数据库信息的收集操作,主要通过自身配置的FromDualMYSQLagent.conf文件来读取相关配置信息,在收集过程中会调用插件自身的FromDualMYSQL*.pm模块,通过FromDualMYSQLagent.pl实现解析,最终通过调用zabbix_sender实现上传。

 

安装步骤

zabbix_agent

一.环境支持

安装MPM依赖的相关Perl模块

#perl -MCPAN -e shell

install File::Which        #必须安装,不然后续测试不成功

install Bundle::LWP

install Digest::SHA1

install DBD::mysql

install Time::HiRes

install Crypt::SSLeay

yum安装软件包:

yum install perl-File-Whichperl-libwww-perl perl-Digest-SHA1 perl-DBD-MySQL perl-Time-HiResperl-Crypt-SSLeay

在对生产版本安装时,Perl安装这些支持模块无法成功,用yum安装成功。

无法安装时,可以下载安装perl yum源后再进行yum安装(可能会有更新)

rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

 

 

下载MPM并解压

#cd /opt/src/

# wget -c http://www.shinguz.ch/download/mysql_performance_monitor-latest.tar.gz

解压后的文件有:

mysql_performance_monitor_templates-0.9.1.tar.gz   Zabbix Server Web端导入的模板文件

mysql_performance_monitor_agent-0.9.1.tar.gz    Zabbix客户端需要部署的MPM客户端文件

 

二.MPM模板

Zabbix Web导入MPM模板

mysql_performance_monitor_templates-0.9.1.tar.gz上传到windows系统,将内部xml文件导入。

Zabbix Web————configuration————templates————import

一般导入以下插件:

 

三.安装MPM

安装MPM并配置MPM AgentZabbix Keys,以实现Zabbix挂接MPM

安装MPMagent

#cd /opt/src

#tar xvf mysql_performance_monitor_agent-0.9.1.tar.gz

#mv mysql_performance_monitor_agent-0.9.1/usr/local/mysql_performance_monitor-agent

 

FromDualMySQLagent.pl脚本中修改相应的zabbix_sender的路径:

#cd  /usr/local/mysql_performance_monitor-agent

#sed -i"s|/usr/local/bin|/usr/local/zabbix/bin|g" FromDualMySQLagent.pl

 

MPM Agentkyes信息缴入到zabbix_agentd的配置目录中

#cd /usr/local/zabbix/etc/zabbix_agentd.conf.d

#vim FromDual_MySQL_monitoring.conf

UserParameter=FromDual.MySQL.check,/usr/local/mysql_performance_monitor-agent/FromDualMySQLagent.pl/usr/local/mysql_performance_monitor-agent/etc/FromDualMySQLagent.conf

 

四.MPM Agent配置

创建MPMMysql监控用户

>create user ‘mpm‘@‘127.0.0.1‘ identified by ‘xxxx‘;

>grant process,replication client on *.* to‘mpm‘@‘127.0.0.1‘;

>flush privileges;

 

配置MPM Agent

#cd /usr/local/mysql_performance_monitor-agent/etc

#cp FromDualMySQLagent.conf.templateFromDualMySQLagent.conf

#mkdir -p /var/log/zabbix/cache

#touch /var/log/zabbix/ FromDualMySQLagent.log

#chown -R zabbix.zabbix /var/log/zabbix

#ps aux |grep mysql        #查看mysql运行的pid信息

#chmod o+r /home/mysql/mysql/var/mysql.pid

#vim FromDualMySQLagent.conf    #修改一下信息

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

Username     = mpm

Password     = xxxx

MysqlHost    = 127.0.0.1

MysqlPort    = 5537

 

ZabbixServer = 192.168.246.132

 

#ClusterLog   =/var/lib/mysql-cluster/ndb_1_cluster.log

#PidFile      = /var/lib/mysql/mysqld.pid

#注释以上两条

[192.168.246.128]        #被这个害惨This MUST match Hostname inZabbix!

 

Type         = mysqld

 

MysqlPort    = 5537

Modules      = process mysql myisam slave

PidFile      =/home/mysql/mysql/var/mysql.pid

 

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

检查MPM插件工作状况:

#/usr/local/mysql_performance_monitor-agent/FromDualMySQLagent.pl /usr/local/mysql_performance_monitor-agent/etc/FromDualMySQLagent.conf

1

输出1,代表插件可以正常工作,重启agent

#service zabbix_agentd restart

#chown -R zabbix.zabbix /var/log/zabbix           #再次进行权限修改

 

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

Zabbix Web端操作

1、增加组:configuration—Host groups——Create host group——》输入组名:mysql database

2、增加主机configuration——Hosts——create host ——输入主机名(主机名必须和上面的标红配置相同)

3、添加模板Templates

 

 

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

至此,zabbix安装完成,但是发现超级用户登录时,administration页面会显示Installation一项,为了安全修改页面代码:

zabbix_server

#vim /var/www/html/include/menu.inc.php

注释相应内容,进行如下操作:

/**            arrary(

                           ‘url‘ => ‘setup.php‘,

                           ‘label‘=> _(‘Installation‘)

                           )

**/

刷新页面,发现没有installation选项

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


(三)邮件报警

成功搭建zabbix监控后,可以对服务器状态:内存利用率、网络、负载、硬盘等进行监控,同时也使用了mpm对数据库进行监控,对于一些开源的监控如nagioscacti,个人还是更加倾向于zabbix(直观的图形化,良好的报警功能)。

下面将本次邮件报警的方法归纳如下:

本次邮件报警是使用zabbix_serversendmail服务向外进行报警。

环境:CentOS6.5

一.安装sendmail

zabbix_server上安装sendmail

 

yum -y install sendmail

service sendmail start

chkconfig sendmail on

注意:一般centos5默认安装sendmailcentos6默认安装postfix,无论是sendmail还是postfix,只开启其中一项服务即可,实际上开启sendmail后,由于端口占用,postfix是无法开启的。

二.安装mailx

安装邮件发送工具mailx

 

(本步骤拷贝自转载文章,本人测试了可行性-可行)

yum install mailx  #OSCentOS6.5,可以直接安装

CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。

yum remo ve mailx #卸载系统自带的旧版mailx

下载mailx

wget http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2

tar jxvf mailx-12.4.tar.bz2 #解压

cd mailx-12.4 #进入目录

make #编译

make install UCBINSTALL=/usr/bin/install #安装

ln -s /usr/local/bin/mailx /bin/mail #创建mailxmail的软连接

ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接

whereis mailx #查看安装路径

mailx -V #查看版本信息

echo "zabbix test mail" |mail -s"zabbix" xxx@163.com

#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:xxx@163.com

 

注意:若修改了服务器hostname,则按照下面规则进行修改

192.168.1.123 szdz-SLAVE szdz-SLAVE.com

否则会报下面错误,导致邮件无法及时发送

Jan 28 19:17:58 iZ23cy5egqgZ sendmail[4944]: unable toqualify my own domain name (szdz-SLAVE) -- using short name

三.配置mail

web配置mail告警

 

1

 

注意:本实验的SMTP服务器设置为127.0.0.1,具体原因后面进行说明。

2

 

3

 

注意:由于本实验仅对用户进行了示警媒体,所以仅针对用户设置即可。

 

四.测试

OK,现在进行测试吧,下面实例是本人的故障情况和邮件报警:

报警:

可以发现事件中,有的动作为正常:表示邮件发送成功,以失败表示为发送成功,后面单独进行说明。

邮件接收:

 

OK,成功啦。。。。。。。

 

------------------------------分割线-------------------------------------------------

五.错误排查

1、查看邮件日志:

less /var/log/mailog

发现异常情况,本次实验通过日志发现主机名的设置情况,即上面说的

 

2、查看zabbix_server的数据库

查看zabbixtable alters

啊哦,可以发现信息好详细哦。

可以看到error,认为无法连通该SMTP server的端口,然后进行排查原因,在SMTP server上利用Telnet进行端口测试

原因:由于之前在配置web邮件设置是,使用的是服务器外网IP,而telnet不通该IP 端口,奇怪的是telnet 127.0.0.1 25时则为成功,ok,不管他,进行修改websendmail设置,改成127.0.0.1,然后再次进行测试,然后成功,如下。

哈哈,error木有啦,刷下foxmail,发现接收到报警邮件哦。

 

至此,简单的zabbix监控之本地sendmail服务进行的邮件报警完成。

本次实验参考:http://www.jb51.net/article/56973.htm

该参考的截图很全,同时包含了使用外部邮箱进行发信的方法,由于本人觉得怎么简单怎么来,顾只测试了本方法。


参考:《深入浅出MySQL

本文出自 “浮生凤年” 博客,请务必保留此出处http://liuzhanbin.blog.51cto.com/10060150/1671745

Zabbix监控

标签:mysql   监控   zabbix   

原文地址:http://liuzhanbin.blog.51cto.com/10060150/1671745

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!