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 $?
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
1、将ZabbixWeb文件复制到Apache Web目录中
#cd zabbix-2.0.12
# cp -ra frontends/php/* /var/www/html
2、Apache配置
# vim /etc/httpd/conf/httpd.conf (修改如下内容)
ServerName 127.0.0.1:80
3、PHP配置
# 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
4、Zabbixweb安装
#service httpd start
访问web界面http://192.168.198.129,按照步骤提示依次进行安装
默认登录用户名admin,密码zabbix,登录后修改密码:Adminstration->Users->Admin->ChangePassword
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 同Web的host相同名称,本人喜欢用IP地址
Timeout=15
Include= /usr/local/zabbix/etc/zabbix_agentd.conf.d/ #监控mysql,MPM插件时用此项
#以下为自定义监控
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》
部署MPM(performance monitor for mysql)
MPM是一套比较完整的监控Mysql数据库的Zabbix插件,该插件中包括丰富的监控项和触发器规则,通过和Zabbix客户端整合,可以完美的实现对Mysql数据库的监控。
MPM实现过程:Zabbix客户端zabbix_agentd读取配置文件zabbix_agentd.conf,zabbix_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客户端文件
Zabbix Web导入MPM模板
将mysql_performance_monitor_templates-0.9.1.tar.gz上传到windows系统,将内部xml文件导入。
Zabbix Web————》configuration————》templates————》import
一般导入以下插件:
安装MPM并配置MPM Agent的Zabbix 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 Agent的kyes信息缴入到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的Mysql监控用户
>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对数据库进行监控,对于一些开源的监控如nagios和cacti,个人还是更加倾向于zabbix(直观的图形化,良好的报警功能)。
下面将本次邮件报警的方法归纳如下:
本次邮件报警是使用zabbix_server的sendmail服务向外进行报警。
环境:CentOS6.5
在zabbix_server上安装sendmail
yum -y install sendmail
service sendmail start
chkconfig sendmail on
注意:一般centos5默认安装sendmail,centos6默认安装postfix,无论是sendmail还是postfix,只开启其中一项服务即可,实际上开启sendmail后,由于端口占用,postfix是无法开启的。
安装邮件发送工具mailx
(本步骤拷贝自转载文章,本人测试了可行性-可行)
yum install mailx #本OS为CentOS6.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 #创建mailx到mail的软连接
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
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,不管他,进行修改web的sendmail设置,改成127.0.0.1,然后再次进行测试,然后成功,如下。
哈哈,error木有啦,刷下foxmail,发现接收到报警邮件哦。
至此,简单的zabbix监控之本地sendmail服务进行的邮件报警完成。
本次实验参考:http://www.jb51.net/article/56973.htm
该参考的截图很全,同时包含了使用外部邮箱进行发信的方法,由于本人觉得怎么简单怎么来,顾只测试了本方法。
参考:《深入浅出MySQL》
本文出自 “浮生凤年” 博客,请务必保留此出处http://liuzhanbin.blog.51cto.com/10060150/1671745
原文地址:http://liuzhanbin.blog.51cto.com/10060150/1671745