因为本人就是做监控的,平常使用nagios、cacti、zabbix 虽然觉得nagios轻便灵活,但是图形界面实在是一大硬伤。本人觉得未来发展趋势肯定zabbix。虽然nagios不会被淘汰,但是应用肯定会比zabbix少。本人度娘了一下zabbix。看大家写的都不是特别详细。对新手来说比较难理解。
献丑搭建了zabbxi。希望对新手有帮助。如果本人有不对的地方,希望大家指正。
系统环境:CentOS 6.5
安装运行环境(LAMP)
通过web页面查看和配置监控信息
yum -y install httpd;service httpd start;chkconfig httpd on
使用mysql存储配置信息,web页面文件使用php语言编写
Yum -y install mysql-server mysql php php-mysql
Service mysqld start;chkconfig mysqld on
给数据库设置密码
mysqladmin -u root password "123"
安装zabbix软件
安装编译安装工具和开发工具
rpm -q gcc gcc-c++ make
yum -y install gcc gcc-c++ make
yum -y groupinstall "Development tools"
获取zabbix安装包
wget "http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz?r=http%3A%2F%2Fwww.zabbix.com%2Fdownload.php&ts=1395066528&use_mirror=jaist"
解包
tar zxvf zabbix-2.2.2.tar.gz
安装
./configure --prefix=/usr/local/zabbix 指定安装目录
--enable-server 安装zabbix服务
--enable-proxy 安装zabbix代理
--enable-agent 安装zabbix agent
--with-mysql 使用mysql做数据库服务
--with-net-snmp 支持snmp
--with-libcurl 支持curl,用于web监控
安装时候的第一个报错信息,数据库的头文件没有安装,
configure: error: Not found mysqlclient library
解决方案:yum -y install mysql-devel
第二个报错信息配置:错误:无效的net-snmp目录无法找到网络SNMP配置
configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
解决方案:yum install net-snmp-devel,再重新配置
第三个报错:configure: error: Curl library not found
解决方案:yum -y install libcurl-devel
安装完成
编译安装;make && make install
没有报错就是OK了
把zabbix提供的网页文件拷贝到网站服务目录下
cp -R /opt/zabbix-2.2.2/frontends/php/ /var/www/html/zabbix
ls /var/www/html/zabbix/
在web页面安装zabbix
1. Welcome
第一步欢迎,我们直接忽略,下一步
2. Check of pre-requisites
红色的部分就是报错信息。现在开始排错
这四项配置要在php主配置文件里修改
vim /etc/php.ini
按顺序修改分别如下
PHP option post_max_size
PHP option max_execution_time
PHP option max_input_time
PHP time zone
这一项比较复杂,意思就是配置文件里的时区要跟本地时区一致
首先查看本地时区
cat /etc/sysconfig/clock
vim /etc/php.ini
原配置行是注释行,咱们另起一行把查到的本机时区修改进去
重启一下web ,刷新一下网页看看刚才修改的项是否还标红
显示OK就可以了
还有这几个报错,我们继续修改
报错信息:PHP bcmath
解决方案:yum -y install php-bcmath
报错信息:PHP mbstring
解决方案:yum -y install php-mbstring
报错信息:PHP gd
PHP gd PNG support
PHP gd JPEG support
PHP gd FreeType support
解决方案:yum -y install php-gd
报错信息:PHP xmlwriter
PHP xmlreader
解决方案:yum -y install php-xml
全部OK了,接着下一步。
3. Configure DB connection
Database type:MySQL //数据库类型,我们用的MySQL
Database host:localhost //数据库地址,填本机就行了
Database port:3306 //数据库端口
Database name:zabbixdb //存放zabbix配置的库(需要重新创建)
User:zabbixuser //访问数据库的用户
Password:zabbixuser //访问数据库的密码
光填进去了也不行啊,还得去创建数据库的zabbixdb这个库,并授权给zabbixuser用户
进入mysql创建zabbixdb库
mysql -uroot -p123
查看一下mysql是怎么建的,因为要支持中文,命令我忘记了,所以就看一个格式,
创建,授权
把存储配置信息的表恢复到创建的zabbixdb库里,一定要按顺序导入:架构--镜像--数据
cd /opt/zabbix-2.2.2/database/mysql/
mysql -uzabbixuser -pzabbixuser zabbixdb < schema.sql
mysql -uzabbixuser -pzabbixuser zabbixdb < images.sql
mysql -uzabbixuser -pzabbixuser zabbixdb < data.sql
点击:Test-connection 测试 OK即可。下一步
4. Zabbix server details
Host:localhost \\zabbix服务的主机
Port:10051 \\ zabbix服务的端口号
Name:zabbix-server \\ zabbix的服务名 (自己随便起)
5. Pre-Installation summary
检查前面的配置,直接略过
6. Install
报错了!意思大概就是网页目录下这个文件没有创建。我想了又想,他妈的apache居然没有zabbix目录的配置写入权限。低级错误!!谨记谨记!!
Configuration file
"/var/www/html/zabbix/conf/zabbix.conf.php"
created: Fail
没有权限咱们就给他递归一个
chown -R apache:apache /var/www/html/zabbix
这下OK了,顺便检查一下那个配置文件有没有
vim /var/www/html/zabbix/conf/zabbix.conf.php
看看吧。刚才在web下的配置全写进去了,大功告成
点击完成立马弹出个登录页面,默认的登录账号:admin密码:zabbix
报错了,因为我们还没有启服务。
下面我们启动监控服务
把启动脚本复制到/etc/init.d下。加执行权限
cd /opt/zabbix-2.2.2/misc/init.d/fedora/core/
cp zabbix_* /etc/init.d/
chmod +x /etc/init.d/zabbix_*
把这两项加入开机自启动
chkconfig --add zabbix_agentd //被监控端要运行的服务
chkconfig --add zabbix_server //监控服务器要运行的服务
chkconfig --level 35 zabbix_agentd on
chkconfig --level 35 zabbix_server on
启动脚本报错了。所以我们要指定一下安装目录
修改配置
vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix
再重启一下,报错。
创建zabbix用户。
useradd zabbix
然后再重启,成功。
现在我们看看端口号(10051)有没有启,进程存不存在。
netstat -antup | grep :10051
ps aux | grep zabbix
我们看到,端口号没有起来,但是进程却存在
需要修改一下安装目录下的主配置文件
vim /usr/local/zabbix/etc/zabbix_server.conf
再重启服务,查看端口号存在了。
现在我们重新再web页面登录,看到报错消失了。但是看到全英文的就一脸懵逼,那就改成中文的。点击右上角倒数第二个选项Profile
改成中文,然后save保存就行了
中文了吧。
到目前为止,整个服务差不多就Ok了。下面我们做一些基本功能
【自己监控自己】
修改脚本文件,指定程序安装目录,指定agent安装目录
vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1 指定允许谁访问自己
ServerActive=127.0.0.1:10051 监控端IP和端口号
启动zabbix_agentd服务,并查看进程和端口号
登录监控页面,查看监控信息
http://IP/zabbix admin/zabbix
组态---主机---启动主机
这个位置变成绿色,证明zabbix已经在监测中
查看监控本机的信息
检测中---最新数据
抽查其中一项,是否正确。例如:当前登录的用户数。当前监测显示为1
我们再登录一个shell
当前登录用户数变成2
图形比较直观,我们点开当前登录用户数的图形
【监控远端服务】
一、配置被监控端
创建用户:useradd zabbix
安装编译安装工具
yum -y install gcc gcc-c++ make
安装提供zabbix_agentd进程的软件包
wget "http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz?r=http%3A%2F%2Fwww.zabbix.com%2Fdownload.php&ts=1395066528&use_mirror=jaist"
解包:tar zxvf zabbix-2.2.2.tar.gz
配置:./configure --prefix=/usr/local/zabbix \
--enable-agent \
--with-net-snmp \
--with-libcurl
编译:make
安装:make install
把启动脚本复制到/etc/init.d下。加执行权限
cd /opt/zabbix-2.2.2/misc/init.d/fedora/core/
cp zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
加入开机自启动
chkconfig --add zabbix_agentd //被监控端要运行的服务
chkconfig --level 35 zabbix_agentd on
修改脚本文件,指定程序安装目录
vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
修改主配置文件:允许监控端监控自己
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1, 122.112.241.73 一个是本机,一个是监控端IP。注意:IP之间要逗号加空格隔开
ServerActive=122.112.241.73:10051 监控端IP加端口号
启动服务
检查进程和端口号
netstat -antup | grep :10050
ps aux | grep zabbix_agentd
二、配置监控端
Web页面访问监控服务器:http://IP/zabbix
组态---主机---创建主机
主机名称:server_liangmei
可见的名称:server_liangmei
群组:linux server
IP:被监控端IP
存档
点击新建的主机名称
模板---链接新模板---添加---存档
稍等一下,等可用性变成绿色之后,我们再去查看数据有没有生成
监测中---最新数据---群组---主机
【自定义监控项】(例:定义监控被监控端的用户数)
1、在被监控端启动自定义监控项功能(在agent主配置文件配置)
vim /usr/local/zabbix/etc/zabbix_agentd.conf
定义监控命令的配置文件目录
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1 启动自定义监控项功能
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 定义监控命令的配置目录
2、定义监控命令
在zabbix_agentd.conf.d这个文件里有定义监控命令的模板
在指定的监控命令配置目录下定义监控命令文件.文件要以.conf结尾
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/liangmei_user_nums.conf
UserParameter=user_nums,wc -l /etc/passwd |awk '{print $1}'
重启agentd服务
/etc/init.d/zabbix_agentd restart
在监控端测试定义的监控命令
/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k user_nums
在被监控端测试定义的监控命令
/usr/local/zabbix/bin/zabbix_get -s 192.168.92.20 -k user_nums
3、在被监控服务器上调用在被监控端定义的监控命令
(1)新建监控模板
组态---模板---创建模板
模板名称:monitor-liangmei
可见的名称:monitor-liangmei
群组:Linux server
存档
(2)在定义的监控模板里面创建应用集
点击新创建的模板后面的应用集
创建应用集
名称:liangmei_all_users
存档
(3)在创建的应用集添加项目
项目
创建监控项
名称:all_users
键值:user_nums 自定义的监控命令
应用集:liangmei_all_users
(4)在监控被监控的服务器时调用定义的新模板
组态---主机---server_liangmei
模板---链接新模板(monitor-liangmei)---添加---存档
查看
博主提醒:分享是一种美德!共同发展才是王道!请留下你们的足迹!让我们共同进步!!