首页 > 代码库 > Zabbix-2.4.3监控系统安装配置

Zabbix-2.4.3监控系统安装配置

Zabbix-2.4.3监控系统安装配置

环境

操作系统:Red Hat Enterprise Linux Server release 6.4 (Santiago) 32位

zabbix版本:zabbix-2.4.3.tar.gz

一、zabbix WEB环境搭建

zabbix的安装需要LAMP或者LNMP环境。

#yum install httpd mysql mysql-server mysql-devel gcc net-snmp-devel curl-devel perl-DBI php php-gd php-mysql php-xml -y

#chkconfig mysqld on

#chkconfig httpd on

#cd /opt/rpm

将rpm文件夹上传到/opt目录下(由于默认安装PHP版本为php-5.3.3-22.el6.i686

所以需要下载php-mbstring-5.3.3-22.el6.i686.rpm php-bcmath-5.3.3-22.el6.i686.rpm,下载地址:

http://rpm.pbone.net/index.php3?stat=26&dist=74&size=464260&name=php-mbstring-5.3.3-22.el6.i686.rpm

http://rpm.pbone.net/index.php3?stat=26&dist=74&size=33768&name=php-bcmath-5.3.3-22.el6.i686.rpm)

#yum localinstall php-mbstring-5.3.3-22.el6.i686.rpm php-bcmath-5.3.3-22.el6.i686.rpm


二、zabbix 数据库设置

登录数据库,创建帐号和设置权限:

#service mysqld restart

#mysql -uroot -S /var/lib/mysql/mysql.sock

mysql>use mysql;

mysql>delete from user where user=‘‘;

mysql>create database zabbix character set utf8;

mysql>grant all privileges on *.* to root@‘%‘ identified by ‘root‘ with grant option;

mysql>grant all privileges on zabbix.* to zabbix@‘192.168.1.101‘ identified by ‘zabbix‘;

mysql>flush privileges;

注:192.168.1.101为zabbix服务器的IP地址。



三、安装zabbix服务(192.168.1.101)

1、增加zabbix用户和组

#groupadd zabbix

#useradd -g zabbix -m zabbix


2、将从官网下载的zabbix上传到/opt下

官网下载地址:http://sourceforge.net/projects/zabbix/files/latest/download

#cd /opt

#tar -zxvf zabbix-2.4.3.tar.gz


3、导入数据库表(按一下循序依次进行)

#cd /opt/zabbix-2.4.3/database/mysql

#mysql -uroot -S /var/lib/mysql/mysql.sock zabbix < schema.sql

#mysql -uroot -S /var/lib/mysql/mysql.sock zabbix < images.sql 

#mysql -uroot -S /var/lib/mysql/mysql.sock zabbix < data.sql


4、编译安装zabbix

#cd /opt/zabbix-2.4.3/

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

#make

#make install


5、添加服务端口

#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


6、修改server配置文件,添加zabbix数据库密码

#vim /usr/local/zabbix/etc/zabbix_server.conf

LogFile=/tmp/zabbix_server.log

PidFile=/tmp/zabbix_server.pid

DBHost=192.168.1.101

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix #zabbix数据库密码

ListenIP=192.168.1.101 #zabbix服务器IP地址


查看修改结果:

#cat /usr/local/zabbix/etc/zabbix_server.conf|grep -Ev ^#|grep -v ^$


7、修改Agentd配置文件,更改HOSTNAME为本机的hostname

#vi /usr/local/zabbix/etc/zabbix_agentd.conf

PidFile=/tmp/zabbix_agentd.pid #进程PID

LogFile=/tmp/zabbix_agentd.log #日志保存位置

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

UnsafeUserParameters=1 #启用自定义key

EnableRemoteCommands=1 #允许执行远程命令

Server=192.168.1.101 #server端IP地址

# ServerActive=127.0.0.1 #注销自动注册

Hostname=192.168.1.101#被监控端的IP


查看修改结果:

#cat /usr/local/zabbix/etc/zabbix_agentd.conf|grep -v ^#|grep -v ^$


8、添加web前端php文件

#cd /opt/zabbix-2.4.3/frontends/

#cp -rf php /var/www/html/zabbix #虚拟主机目录

#cd /var/www/html/

#chown -R zabbix:zabbix /var/www/html/zabbix


9、web前端安装配置

修改PHP相关参数

#vi /etc/php.ini

max_execution_time = 300

max_input_time = 600

memory_limit = 128M

post_max_size = 32M

date.timezone = Asia/Shanghai

mbstring.func_overload=0

修改hosts

#vi /etc/hosts

192.168.1.101 zabbix

修改主机名(若不用本地邮箱发报警信息,可省略)

#vi /etc/sysconfig/networkx

NETWORKING=yes

HOSTNAME=zabbix.nagiosa.com

修改httpd.conf

#vi /etc/httpd/conf/httpd.conf

ServerName 192.168.1.101:80

重启apache

#service httpd restart


10、为zabbix的启动、关闭和重启的脚本文件做链接,方便系统可以找得到

#cd /usr/local/zabbix/bin/

#for i in *;do ln -s /usr/local/zabbix/bin/${i} /usr/bin/${i};done

#cd /usr/local/zabbix/sbin/

#for i in *;do ln -s /usr/local/zabbix/sbin/${i} /usr/sbin/${i};done


11、把mysql的lib库文件添加到系统动态库配置文件中,方便系统可以找到mysql的lib库。   

#echo "/usr/lib64/mysql/" >>/etc/ld.so.conf

#ldconfig   //使上面的操作立即生效

   

12、将zabbix相关的启动脚本等文件拷贝的/etc/init.d/下,方便日后对zabbix的启动关闭操作

#cp /opt/zabbix-2.4.3/misc/init.d/fedora/core/zabbix_server /etc/init.d/

#chmod +x /etc/init.d/zabbix_server #赋予可执行权限

#cp /opt/zabbix-2.4.3/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

#chmod +x /etc/init.d/zabbix_agentd

修改zabbix server和agentd程序目录的位置:

#vi /etc/init.d/zabbix_server

progdir="/usr/local/zabbix/sbin/" 

BASEDIR=/usr/local/zabbix

#vi /etc/init.d/zabbix_agentd

progdir="/usr/local/zabbix/sbin/"

BASEDIR=/usr/local/zabbix


 

13、添加开机启动服务

#chkconfig --add zabbix_server

#chkconfig --add zabbix_agentd

#chkconfig --level 345 zabbix_server on

#chkconfig --level 345 zabbix_agentd on


14、在客户端浏览器上面访问zabbix,开始WEB的前端配置

http://ZabbixIP/zabbix,按提示点击下一步

Step1:下一步。

Step2:如果全部OK的话才能进行下一步的安装,如果有错误请返回到server端检查相关的软件包是否安装。

Step3:需要输入mysql数据库帐号密码,如果数据库不在zabbix服务器上面,在Host里面添加数据库服务器的地址,并且要用grant命令给数据库授权。

Step4:输入服务器端hostname或者IP,端口默认,name默认无;

Step5:若会提示fail,按页面上的提示下载配置文件到zabbix服务器上的/var/www/html/zabbix/conf下,名字一定要是zabbix.conf.php,然后点击Retry

配置完成后出现登陆界面,默认的用户名为:admin,密码为:zabbix。



四、更改zabbix默认语言为简体中文、替换监控图像上系统默认的中文字体

1、修改系统配置文件,让web页面支持简体中文显示

#vi /var/www/html/zabbix/include/locales.inc.php #编辑修改

‘zh_CN‘ => array(‘name‘ => _(‘Chinese (zh_CN)‘), ‘display‘ => false),

修改为

‘zh_CN‘ => array(‘name‘ => _(‘Chinese (zh_CN)‘), ‘display‘ => true),


2、替换监控图像上系统默认的字体(默认字体不支持中文,如果不替换,图像上会显示乱码)

在Windows系统中的C:\Windows\Fonts目录中复制出一个中文字体文件,例如simkai.ttf(楷体)

把字体文件simkai.ttf上传到zabbix站点根目录下/var/www/html/zabbix/fonts文件夹中

备份默认的字体文件

#cd /var/www/html/zabbix/fonts

#mv DejaVuSans.ttf DejaVuSans.ttf.bak

修改simkai.ttf名称为DejaVusSans.ttf

#mv simkai.ttf DejaVuSans.ttf


3、在浏览器中打开:

http://192.168.105.107/zabbix

点击页面右上角的Profile

选中Language:Chinese(zh_CN)  #简体中文

点update保存

默认界面已经是中文显示

至此,Zabbix安装图解教程完成。



五、禁用显示“install”选项

在zabbix初始安装完成后,管理界面上的“configuration”中还有一个页面是“install”选项,存在误操作重新安装的风险,通过修改menu.inc.php文件可以禁用该显示项目

#vi /var/www/html/zabbix/include/menu.inc.php --注释如下几行

#,array(

#       ‘url‘ => ‘setup.php‘,

#       ‘label‘ => _(‘Installation‘)

#)



六、被监控端配置agent(192.168.1.200)

在此服务器上Zabbix agent不能通过root用户执行,需创建一个单独用户运行zabbix agent

#useradd -s /sbin/nologin  zabbix

1、将从官网下载的zabbix上传到192.168.1.200的/opt下

#cd /opt

#tar -zxvf zabbix-2.4.3.tar.gz

#rm -rf zabbix-2.4.3.tar.gz

#cd zabbix-2.4.3/


2、编译安装zabbix

#cd /opt/zabbix-2.4.3/

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

#make

#


3、添加服务端口

#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


4、修改Agentd配置文件

#vi /usr/local/zabbix/etc/zabbix_agentd.conf

PidFile=/tmp/zabbix_agentd.pid #进程PID

LogFile=/tmp/zabbix_agentd.log #日志保存位置

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

UnsafeUserParameters=1 #启用自定义key

EnableRemoteCommands=1 #允许执行远程命令

Server=192.168.1.101 #server端IP地址

# ServerActive=127.0.0.1 #注销自动注册

Hostname=192.168.1.200 #被监控端的IP


修改完查看:

#cat /usr/local/zabbix/etc/zabbix_agentd.conf|grep -v ^#|grep -v ^$


5、修改hosts

#vi /etc/hosts

192.168.1.200 Redhata


6、为zabbix的启动、关闭和重启的脚本文件做链接,方便系统可以找得到

#cd /usr/local/zabbix/bin/

#for i in *;do ln -s /usr/local/zabbix/bin/${i} /usr/bin/${i};done

#cd /usr/local/zabbix/sbin/

#for i in *;do ln -s /usr/local/zabbix/sbin/${i} /usr/sbin/${i};done

   

7、将zabbix相关的启动脚本等文件拷贝的/etc/init.d/下,方便日后对zabbix的启动关闭操作

#cp /opt/zabbix-2.4.3/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

#chmod +x /etc/init.d/zabbix_agentd


8、修改agentd程序目录的位置:

#vi /etc/init.d/zabbix_agentd

progdir="/usr/local/zabbix/sbin/"

BASEDIR=/usr/local/zabbix


 

9、添加开机启动服务

#chkconfig --add zabbix_agentd

#chkconfig --level 345 zabbix_agentd on

#service zabbix_agentd start


10、测试,下面的命令需要在server端执行,其中192.168.1.200是agent的ip

#/usr/local/zabbix/bin/zabbix_get -s192.168.1.200 -p10050 -k"system.uptime"

20310



七、解决zabbix 报警邮件以附件形式发送



1、yum install dos2unix

cd /usr/local/zabbix/share/zabbix/alertscripts

2、修改sendmail.sh

#!/bin/sh

echo "$3" > /tmp/1.txt

dos2unix /tmp/1.txt 

mail -s "$2" $1 < /tmp/1.txt


八、关于防火墙和selinux的设置,以下操作在被监控的Linux主机进行


1、在不关闭iptables防火墙的情况下配置防火墙,开启10050、10051的TCP和UDP端口


vi /etc/sysconfig/iptables #编辑防火墙配置文件


-A INPUT -s 192.168.21.127 -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCEPT


-A INPUT -s 192.168.21.127 -m state --state NEW -m udp -p udp --dport 10050:10051 -j ACCEPT


:wq! #保存退出


service iptables restart #重启防火墙使配置生效


说明:192.168.21.127是Zabbix服务端的IP地址,表示端口只对此IP开放,如果要对所有IP开放,规则如下:


-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCEPT


-A INPUT -m state --state NEW -m udp -p udp --dport 10050:10051 -j ACCEPT


2、关闭SELINUX


vi /etc/selinux/config


#SELINUX=enforcing #注释掉


#SELINUXTYPE=targeted #注释掉


SELINUX=disabled #增加


:wq! #保存退出


setenforce 0 #使配置立即生效

九、Zabbix通过Simple check 用ICMP ping来判断主机是否存活的问题

  Zabbix使用fping处理ICMP ping的请求,需要安装fping程序,安装完毕之后需要在zabinx_server.conf中的参数FpingLocation配置fping安装的路径。

由于fping默认是root权限工作,而zabbix-server是zabbix用户运行的,所以需要对fping程序设置setuid权限,如果在自定义key的时候需要用到netstat命令,也同样要设置setuid,否则不能获取到数据,而在日志中提示权拒绝。

如果不修改权限的话,会出现下面权限的问题

#fping 192.168.1.200

#fping: can‘t create raw socket (must run as root?) : Operation not permitted

1.fping安装

# wget http://www.fping.org/dist/fping-3.10.tar.gz

# tar zxvf fping-3.10.tar.gz

# cd fping-3.10

# ./configure --prefix=/usr/local/fping/

# make && make install

2.修改zabbix_server.conf配置文件

# vim /usr/local/zabbix/etc/zabbix_server.conf

把FpingLocation路径修改为刚安装的fping路径。

 FpingLocation=/usr/local/fping/sbin/fping

如果不修改zabbix_server.conf配置件需要使用软连接到/usr/local/sbin/fping,zabbix默认fping的路径是/usr/sbin/fping


#ln -s /usr/sbin/fping /path/to/non-existant/fping

#ln -s /usr/sbin/fping6 /path/to/non-existant/fping6

# service zabbix_server restart  #重启服务

3.修改fping权限

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

# chmod 4710 /usr/local/fping/sbin/fping

4.zabbix用户测试fping命令

[zabbix@LS fping-3.10]$ /usr/local/fping/sbin/fping 192.168.1.200 

192.168.1.200  is alive   # 说明命令返回成功。


10、zabbix服务器端配置短信报警

1、修改zabbix_server.conf文件

#vi /usr/local/zabbix/etc/zabbix_server.conf

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts


2、创建短信告警脚本sendSMS.sh

#cd /usr/local/zabbix/share/zabbix/alertscripts

#vi sendSMS.sh --添加如下内容

#!/bin/bash

#

# Filename:    sendSMS.sh

# Revision:    1.0

# Date:        2015/01/19

# Author:      Likey

# Email:

# Website:     http://

# Description: zabbix短信告警脚本

# Notes:       短信网关使用了中国网建SMS短信通

#

# 脚本的日志文件

LOGFILE="/tmp/SMS.log"

:>"$LOGFILE"

exec 1>"$LOGFILE"

exec 2>&1

# Uid和Key的值需要自行修改,http://www.smschinese.cn/api.shtml

# Uid 网站用户名

# Key 接口秘钥

Uid="xxxxx"

Key="xxxxxxxxxx" 

MOBILE_NUMBER=$1    # 手机号码

MESSAGE_UTF8=$3        # 短信内容

XXD="/usr/bin/xxd"

CURL="/usr/bin/curl"

TIMEOUT=5 

# 短信内容要经过URL编码处理,除了下面这种方法,也可以用curl的--data-urlencode选项实现。

MESSAGE_ENCODE=$(echo "$MESSAGE_UTF8" | ${XXD} -ps | sed ‘s/\(..\)/%\1/g‘ | tr -d ‘\n‘)

# SMS API

URL="http://utf8.sms.webchinese.cn/?Uid=${Uid}&Key=${Key}&ILE_NUMBER}&smsText=${MESSAGE_ENCODE}"

# Send itsmsMob=${MOB

set -x

${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"


3、设置脚本和日志文件权限:

#touch /tmp/SMS.log

#chown zabbix:zabbix /tmp/SMS.log

#chown zabbix:zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendSMS.sh

#chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendSMS.sh


4、手动测试脚本:

#/usr/local/zabbix/share/zabbix/alertscripts/sendSMS.sh xxxxxxxxxxx "" "尊敬的客户,您的订单已出库发货,正在配送中,请您耐心等待。"

脚本第一个参数为手机号码;第二个参数不会用到,设为空就行;第三个参数为短信内容。

注意:短信内容要符合要求,不要发送广告或者聊天短信,否则账户可能会被禁用。实测这种订单类短信是不会被屏蔽的。如果短信接收有很高的延迟,可以联系客服。

脚本执行后,到日志文件/tmp/SMS.log里查看返回值,如果大于0代表发送成功,小于0发送失败。


5、配置告警方式(Media types)

选择【Administration】->【Media types】,创建短信告警方式:

注意,"Name"给告警方式起个名字,"Type"选择Script类型,"Script name"填写上面创建的脚本名。


6、配置用户的手机号码

选择【Administration】->【Users】,进入用户配置界面,在"Media"选项卡中配置用户接收告警的手机号码。点击"Add",在弹出的窗口中输入用户手机号


7、配置告警动作(Action)

选择【Configuration】->【Actions】,进入告警动作配置界面,创建新的action。

官方资料:https://www.zabbix.com/documentation/2.2/manual/config/notifications/action

7.1、配置短信内容(Default message)

7.2、配置告警条件(Conditions)

7.3、配置告警接收人(Action operations)


本文出自 “银河系|计算机网络” 博客,请务必保留此出处http://qqran.blog.51cto.com/10014850/1917067

Zabbix-2.4.3监控系统安装配置