此文章首发于http://www.beyond362.com/2014/11/02/zabbix系列之入门介绍(一)/
在开源监控软件中,现在使用最多的大概就是cacti、nagios和zabbix了。作为一个后起之秀,zabbix以其灵活的扩展性和丰富的功能迅速俘获了一大批运维人员的青睐,尤其以功能强大的报警机制更让人爱不释手。本文也将以zabbix作为监控系统来进行介绍。
由百度、Google结果来看,cacti作为老牌开源软件以其出现时间早、配置简单、画面直观、汉化成功等的原因依然受到广大用户的青睐,但zabbix已经与nagios旗鼓相当了,相信不久的将来,zabbix必将成为运维人员首选的监控利器。
在一个监控系统中,构成要素为监控服务器端程序、数据存储、被采集节点等模块,其告警分析和自动故障处理功能由服务器端执行。简单点说,就是采集数据-->分析处理数据-->判断是否异常-->是否属于告警条件-->发送邮件、短信进行报警。
而采集方式来说,有采集客户端(Agent)和协议(SNMP、IPMI、JMX、Telnet、SSH等)两种方式,无论使用哪种方式,都会将采集到的数据存放到数据库,然后对其进行分析整理。
从采集的工作模式来讲,又可以分为两种:主动监控和被动监控,后边会说到这两种监控方式的区别
当我们需要了解一个产品的时候,最好的方式就是官方介绍以及官方文档。zabbix的官方网站http://www.zabbix.com,官方文档地址http://www.zabbix.com/documentation.php,
Zabbix为PHP语言开发,所以环境平台搭建比较容易,支持监控N多操作系统,在开源软件的选择上也是多样的Linux、Apache/Nginx、MySQL/Oracle/Postgresql、PHP等。
系统:CentOS release 6.4 (Final) IP地址:192.168.101.216
安装LAMP环境,也就是Apache、MySQL和PHP环境,在安装之前,为了避免麻烦,首先我们需要将iptables和selinux进行关闭。两种方式如下
第一种: 关闭iptables service iptables stop 关闭selinux setenforce 0 不需要重启服务器,即可生效,重启服务器后失效! 第二种: 关闭防火墙 chkconfig iptables off 关闭selinux vi /etc/selinux/config SELINUX=enforcing 改为 SELINUX=disabled 需要重启服务器,永久禁用 由于我的主机是最小化安装的,所以首先需要安装两个开发包组“Development tools”和“Server Platform Development”,以便后边手动编译zabbix。yum -y groupinstall “Development tools” “Server Platform Development” 然后安装Apache、MySQL和PHP yum -y install httpd mysql mysql-server mysql-devel php php-mysql php-xml php-mbstring php-gd php-bcmath 配置MySQL数据库
打开/etc/my.cnf文件,添加以下两行信息
innodb_file_per_table = 1 #设置字符集为utf8 character-set-server=utf8 #让InnoDB的每个表文件单独存放
设置字符集为utf8很好理解,让InnoDB的每个表文件单独存放在说到MySQL数据库的存储引擎的时候会说到为什么这么做。
然后启动MySQL数据库
service mysqld start
然后启动Apache,测试lamp环境是否正常
service httpd start
添加测试页面,保存到/var/www/html/index.php
打开访问地址:http://192.168.101.216/index.php,出现如下页面表示配置正确,lamp环境搭建成功。 安装zabbix 下载zabbix源码安装
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.1/zabbix-2.4.1.tar.gz
[Downlink href='http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.1/zabbix-2.4.1.tar.gz']zabbix2.4.1[/Downlink]点击左侧链接即可下载
编译安装zabbix
为了以后的方便,建议安装支持snmp协议 yum -y install net-snmp net-snmp-devel libcurl tar xf zabbix-2.4.1.tar.gz cd zabbix-2.4.1 ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-net-snmp --with-mysql --with-libcurl --prefix=/usr/local/zabbix 指定zabbix安装路径 --enable-server 支持zabbix-server端 --enable-agent 支持zabbix-agent端 --with-net-snmp 支持snmp协议 --with-mysql 支持mysql数据库 --with-libcurl 支持curl,用于WEB监控 出现下方信息,表示编译通过,接下来即可进行安装 *********************************************************** * Now run 'make install' * * * * Thank you for using Zabbix! * * <http://www.zabbix.com> * *********************************************************** make && make install
zabbix安装已经完成,接下来开始配置zabbix
编辑服务器端口,添加以下两个端口
vi /etc/services #Zabbix Trapper && Zabbix Agent zabbix-agent 10050/tcp #Zabbix Agent zabbix-agent 10050/udp #Zabbix Agent zabbix-trapper 10051/tcp #Zabbix Trapper zabbix-trapper 10051/udp #Zabbix Trapper
安装启动脚本
cp /root/zabbix-2.4.1/misc/init.d/fedora/core/* /etc/init.d -p
编辑启动脚本,修改以下项
vi /etc/init.d/zabbix_server BASEDIR=/usr/local ==> BASEDIR=/usr/local/zabbix vi /etc/init.d/zabbix_agentd BASEDIR=/usr/local ==> BASEDIR=/usr/local/zabbix
添加zabbix_server和zabbix_agentd为服务
chkconfig --add zabbix_server chkconfig --add zabbix_agentd
编辑/usr/local/zabbix/etc/zabbix_server.conf文件
cat zabbix_server.conf | grep -v "^#" | grep -v "^$" LogFile=/tmp/zabbix_server.log #zabbix_server 日志文件 DBHost=localhost #数据库地址 DBName=zabbix #zabbix数据库 DBUser=zabbix #zabbix数据库账号 DBPassword=123.com# #zabbix数据库密码
复制Web应用到Web目录下
cp -R ~/zabbix-2.4.1/frontends/php /var/www/html/zabbix
创建数据库,导入zabbix数据库
[root@localhost ~]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> CREATE DATABASE zabbix1; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL ON zabbix1.* TO zabbix@localhost IDENTIFIED BY '123.com#'; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> source /root/zabbix-2.4.1/database/mysql/schema.sql; mysql> source /root/zabbix-2.4.1/database/mysql/data.sql; mysql> source /root/zabbix-2.4.1/database/mysql/images.sql;
添加zabbix用户,启动zabbix_server和zabbix_agentd服务
groupadd zabbix useradd -g zabbix zabbix
启动zabbix_server和zabbix_agentd
[root@localhost ~]# service zabbix_server start Starting zabbix_server: [ OK ] [root@localhost ~]# service zabbix_agentd start Starting zabbix_agentd: [ OK ] [root@localhost ~]# ss -tunl Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 *:161 *:* tcp LISTEN 0 128 :::80 :::* tcp LISTEN 0 128 :::22 :::* tcp LISTEN 0 128 *:22 *:* tcp LISTEN 0 100 ::1:25 :::* tcp LISTEN 0 100 127.0.0.1:25 *:* tcp LISTEN 0 128 *:10050 *:* tcp LISTEN 0 128 *:10051 *:* tcp LISTEN 0 128 127.0.0.1:199 *:* tcp LISTEN 0 50 *:3306 *:* [root@localhost ~]#
10050和10051端口已经启动,证明服务启动成功
访问http://192.168.101.216/zabbix进行zabbix的最后安装步骤
点击下一步,进行安装
红色部分是报错部分,我用①标注出来的问题可以通过修改/etc/php.ini文件搞定,搜索option后边的关键字即可找到修改位置;用②标注出来的问题可以通过安装相关php包解决,例如 PHP bcmath 显示off,那么就只需要yum -y install php-bcmath即可,其他同理
修改报错信息
cat /etc/php.ini |grep -E "max_input_time|max_execution_time" ; max_input_time max_execution_time = 300 max_input_time = 300
然后需要重新启动Apache来重新加载php.ini文件,重启之后,点击Retry按钮重试即可。
service httpd restart
这里填写数据库的相关信息,数据库主机、数据库名称、数据库用户、数据库密码。然后一定要先点击【Test connection】进行测试,不然无法点击【Next】
这一步,只需要填写zabbix的名称,可根据自己意愿随意填写
继续下一步
这一步又报错了,报错信息是①,给出的解决方法是②和③,其实Linux下很多报错信息我们都可以很直观的得到的。
报错信息是由于权限不够无法在/var/www/html/zabbix/conf/目录下创建文件zabbix.conf.php文件
解决方法一:修改/var/www/html/zabbix/conf/目录的权限 chmod 777 /var/www/html/zabbix/conf
解决方法二:点击【Download configuration file】下载zabbix.conf.php文件,利用scp等工具传到/var/www/html/zabbix/conf目录下。
上面哪种解决办法都可以,然后点击【Retry】测试
安装完成
默认用户名为Admin,密码为zabbix
到这里,zabbix的安装就结束了,接下来就是zabbix的使用了。总的来说还是挺简单的,zabbix2.4默认是不支持中文的,可以通过修改后台配置文件/var/www/html/zabbix/include/locales.inc.php,修改display的false为true,然后在首页【Profile】的【language】选择中文即可。
cat /var/www/html/zabbix/include/locales.inc.php | grep "zh_CN" 'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => false),