今天开始研究下Zabbix,使用Zabbix的目的,是为了能够更好的监控mysql数据库服务器,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大。
首先,我们先来介绍下Zabblx:
一.Zabbix简介
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix由zabbix server与可选组件zabbix agent两部门组成。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
等等
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
官方也提供了安装资料:http://www.zabbix.com/wiki/howto/monitor
二.Zabbix安装
2.1 zabbix WEB环境搭建
zabbix的安装需要LAMP或者LNMP环境。
需要其它的软件包
yum install mysql-dev gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xm
2.2 zabbix 数据库设置
zabbix数据库可以和zabbix服务器分离,采用用专门的mysql服务器存储数据,此时要给zabbix数据库受相应的权限。
grant all privileges on zabbix.* to zabbix_user@'ip' identified by '123456'
注:ip为zabbix服务器的IP地址。
关于数据库的安装,可以查看Mysql安装,我习惯使用二进制包。
启动数据库
/usr/local/mysql/bin/mysqld_safe --user=mysql &
登录数据库,创建帐号和设置权限:
mysql>use mysql
mysql>create database zabbix character set utf8
mysql>grant all privileges on zabbix.* to zabbix_user@'192.168.10.197' identified by '123456'
2.3安装zabbix服务
增加zabbix用户和组
#groupadd zabbix
#useradd -g zabbix -m zabbix
官网下载解压软件包。
下载地址:
http://www.zabbix.com/download.php
#wget http://fossies.org/unix/misc/zabbix-2.0.3.tar.gz
# tar -zxvf zabbix-2.0.3.tar.gz
#cd zabbix-2.203
导入数据库表
#cd zabbix-2.0.3/database/mysql
#mysql -uroot -pmysql zabbix <mysql.sql
#mysql -uroot -pmysql zabbix <images.sql
#mysql -uroot -pmysql zabbix <schema.sql
编译安装zabbix
./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy
编译报错checking for main in -lmysqlclient ... no
yum 安装mysql-devel即可
#make
#make install
添加服务端口
vim /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
添加配置文件
# mkdir -p /etc/zabbix
# cp -r zabbix-2.203/conf/* /etc/zabbix/
# chown -R zabbix:zabbix /etc/zabbix
修改server配置文件,添加zabbix数据库密码
vim /etc/zabbix/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBName=zabbix
DBUser=zabbix_user
DBPassword=123456 #指定zabbix数据库密码
ListenIP=192.168.10.197#服务器IP地址
修改Agentd配置文件,更改HOSTNAME为本机的hostname
vim /etc/zabbix/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid #进程PID
LogFile=/tmp/zabbix_agentd.log #日志保存位置
EnableRemoteCommands=1 #允许执行远程命令
Server=192.168.10.197 #agent端的ip
Hostname=client1 #必须与zabbix创建的host name相同
如图设置hostname
添加web前段php文件
# cd zabbix-2.203/frontends/
# cp -rf php /home/httpd/zabbix #虚拟主机目录
# chown -R zabbix:zabbix zabbix
web前端安装配置
修改PHP相关参数
vim php.ini
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 32M
date.timezone = Asia/Shanghai
mbstring.func_overload=2
PHP还必须支持一下模块,在php源码包直接编译安装。详细模块需要在安装是会提示。
bcmath.so、gettext.so
在客户端浏览器上面访问zabbix,开始WEB的前端配置,http://ZabbixIP/zabbix,按提示点击下一步
Step1:下一步。
Step2:如果全部OK的话才能进行下一步的安装,如果有错误请返回到server端检查相关的软件包是否安装。
Step3:需要输入mysql数据库帐号密码,如果数据库不在zabbix服务器上面,在Host里面添加数据库服务器的地址,并且要用grant命令给数据库授权。
Step4:输入服务器端 host name or host IP addres;
最后会自动写入配置文件:zabbix.conf.php,配置完成后出现登陆界面,默认的用户名为:admin,密码为:zabbix。
三.启动zabbix服务
在zabbix安装目录下面可以直接启动
#/usr/local/zabbix/sbin/zabbix_server start
tcp0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 7140/zabbix_agentd
四.设置开启自动启动
vim /etc/rc.d/rc.local 最后添加下面两行
/usr/local/zabbix/sbin/zabbix_server start
/usr/local/zabbix/sbin/zabbix_agentd start
至此,zabbix server端的安装完毕,我们可以通过浏览器来访问。如图:
接下来会介绍关于客户端监控的使用,以及监控模版的新建,自定义监控服务等。
配置方式:1. 完成自定义监控脚本的编写(windows或linux脚本)
脚本要求:(1)既然是监控,那必然要有输出结果值(字符串,数字皆可)
(2)必须要求zabbix用户有执行权限,当然可以直接设置所有用户都有执行权限(chmod 777 脚本文件)
(3)若脚本需要传入参数,按照参数传入的顺序,在脚本中可用$1-$9来引用传入的参数
2 找到zabbix agent的配置文件zabbix_agentd.conf,修改如下两个参数
UnsafeUserParameters=0 =>UnsafeUserParameters=1并去掉前面的注释符
UserParameter= =>UserParameter=aaa.bbb[*], /usr/local/script/monitor.sh $1 $2 …
说明:aaa.bbb[*] ---zabbix服务器添加监控信息时需要用到的key值,
格式:aaa.bbb[*](例:system.file.size[*])
/usr/local/script/monitor.sh ----监控脚本绝对路径
为了便于灵活监控,有时脚本需要传入参数,此参数可从zabbix服务器端传入,所有参数按顺序分别从$1-$9表示
注:(1)若无需传入参数,则红色部分可省略
(2)该自定义脚本可由zabbix服务器控制收集数据的频率(如:每30s运行一次),无需再添加计划任务
(3)以上参数请根据实际情况填写,并注意去除参数前注释符(#)
(4)注意在key值和后面的脚本之间有个逗号隔开
至此,自定义监控脚本zabbix agent端配置结束
3. 测试
测试命令: /usr/local/bin/zabbix_agentd -t key[参数]
示例:/usr/local/bin/zabbix_agentd -t system.file.size[/etc/a.txt,abc,…]
4. 监控脚本举例:
脚本名称:/usr/local/script/monitor.sh
脚本内容:echo `date +"%F %T"`
脚本要求:必须在控制台输出值,该值将作为返回值返回给zabbix服务器端
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)