Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。
节点 服务 hadoop102 zabbix-server、zabbix-agent、MySQL hadoop103 zabbix-agent hadoop104 zabbix-agent
2.2.1 关闭防火墙(已关闭) sudo service iptables stop sudo chkconfig iptables off 2.2.2 关闭SELinux
- 修改配置文件/etc/selinux/config sudo vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
2)重启服务器 sudo reboot
2.3.1 创建用户 sudo groupadd --system zabbix sudo useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix 2.3.2 上传zabbix安装包并解压 将安装包上传至/opt/software路径并解压到当前路径 tar -zxvf zabbix-4.2.8.tar.gz 2.3.3 创建zabbix数据库和表 1)进入/opt/software/zabbix-4.2.8/database/mysql路径 cd /opt/software/zabbix-4.2.8/database/mysql 2)进入MySQL客户端执行建表语句,并导入zabbix提供的sql脚本 mysql> create database zabbix default character set utf8 collate utf8_bin; use zabbix; source schema.sql; source data.sql; source images.sql; 2.3.4 编译环境准备 1)上传并安装安装MySQL相关rpm包 sudo rpm -ivh MySQL-devel-5.6.24-1.el6.x86_64.rpm sudo rpm -ivh MySQL-embedded-5.6.24-1.el6.x86_64.rpm sudo rpm -ivh MySQL-shared-5.6.24-1.el6.x86_64.rpm sudo rpm -ivh MySQL-shared-compat-5.6.24-1.el6.x86_64.rpm 2)安装所需依赖 sudo rpm -ivh http://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/city-fan.org-release-2-1.rhel6.noarch.rpm
sudo yum-config-manager --enable city-fan.org
sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/l/libnghttp2-1.6.0-1.el6.1.x86_64.rpm
sudo rpm -e --nodeps libxml2-python-2.7.6-21.el6.x86_64
sudo yum install -y libcurl libcurl-devel libxml2 libxml2-devel net-snmp-devel libevent-devel pcre-devel gcc-c++ 2.3.5 编译及安装 1)进入/opt/software/zabbix-4.2.8路径 cd /opt/software/zabbix-4.2.8 2)编译安装 ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
sudo make install 2.3.6 修改配置文件 1)修改zabbix-server配置文件 sudo vim /usr/local/etc/zabbix_server.conf
DBHost=hadoop102 DBName=zabbix DBUser=root DBPassword=123456 2)修改zabbix-agent配置文件 sudo vim /usr/local/etc/zabbix_agentd.conf
Server=hadoop102 #ServerActive=127.0.0.1 #Hostname=Zabbix server 2.3.7 编写系统服务脚本 1)编辑zabbix-server文件 sudo vim /etc/init.d/zabbix-server 2)内容如下
#!/bin/sh
#
# chkconfig: - 85 15
# description: Zabbix server daemon
# config: /usr/local/etc/zabbix_server.conf
#
### BEGIN INIT INFO
# Provides: zabbix
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: Start and stop Zabbix server
# Description: Zabbix server
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
if [ -x /usr/local/sbin/zabbix_server ]; then
exec=/usr/local/sbin/zabbix_server
else
exit 5
fi
prog=zabbix_server
conf=/usr/local/etc/zabbix_server.conf
pidfile=/tmp/zabbix_server.pid
timeout=10
if [ -f /etc/sysconfig/zabbix-server ]; then
. /etc/sysconfig/zabbix-server
fi
lockfile=/var/lock/subsys/zabbix-server
start()
{
echo -n $"Starting Zabbix server: "
daemon $exec -c $conf
rv=$?
echo
[ $rv -eq 0 ] && touch $lockfile
return $rv
}
stop()
{
echo -n $"Shutting down Zabbix server: "
killproc -p $pidfile -d $timeout $prog
rv=$?
echo
[ $rv -eq 0 ] && rm -f $lockfile
return $rv
}
restart()
{
stop
start
}
case "$1" in
start|stop|restart)
$1
;;
force-reload)
restart
;;
status)
status -p $pidfile $prog
;;
try-restart|condrestart)
if status $prog >/dev/null ; then
restart
fi
;;
reload)
action $"Service ${0##*/} does not support the reload action: " /bin/false
exit 3
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
exit 2
;;
esac
3)加执行权限 sudo chmod +x /etc/init.d/zabbix-server 4)编辑zabbix-agent文件 sudo vim /etc/init.d/zabbix-agent 5)内容如下
#!/bin/sh
#
# chkconfig: - 86 14
# description: Zabbix agent daemon
# processname: zabbix_agentd
# config: /usr/local/etc/zabbix_agentd.conf
#
### BEGIN INIT INFO
# Provides: zabbix-agent
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Should-Start: zabbix zabbix-proxy
# Should-Stop: zabbix zabbix-proxy
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: Start and stop Zabbix agent
# Description: Zabbix agent
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
if [ -x /usr/local/sbin/zabbix_agentd ]; then
exec=/usr/local/sbin/zabbix_agentd
else
exit 5
fi
prog=zabbix_agentd
conf=/usr/local/etc/zabbix_agentd.conf
pidfile=/tmp/zabbix_agentd.pid
timeout=10
if [ -f /etc/sysconfig/zabbix-agent ]; then
. /etc/sysconfig/zabbix-agent
fi
lockfile=/var/lock/subsys/zabbix-agent
start()
{
echo -n $"Starting Zabbix agent: "
daemon $exec -c $conf
rv=$?
echo
[ $rv -eq 0 ] && touch $lockfile
return $rv
}
stop()
{
echo -n $"Shutting down Zabbix agent: "
killproc -p $pidfile -d $timeout $prog
rv=$?
echo
[ $rv -eq 0 ] && rm -f $lockfile
return $rv
}
restart()
{
stop
start
}
case "$1" in
start|stop|restart)
$1
;;
force-reload)
restart
;;
status)
status -p $pidfile $prog
;;
try-restart|condrestart)
if status $prog >/dev/null ; then
restart
fi
;;
reload)
action $"Service ${0##*/} does not support the reload action: " /bin/false
exit 3
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
exit 2
;;
esac
6)加执行权限 sudo chmod +x /etc/init.d/zabbix-agent
2.4.1 部署httpd 1)安装httpd sudo yum -y install httpd 2)修改httpd配置文件 sudo vim /etc/httpd/conf/httpd.conf 将以下红色部分放至改配置文件的对应位置 317 <Directory "/var/www/html"> 318 319 # 320 # Possible values for the Options directive are "None", "All", 321 # or any combination of: 322 # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 323 # 324 # Note that "MultiViews" must be named explicitly --- "Options All" 325 # doesn't give it to you. 326 # 327 # The Options directive is both complicated and important. Please see 328 # http://httpd.apache.org/docs/2.2/mod/core.html#options 329 # for more information. 330 # 331 Options Indexes FollowSymLinks 332 333 # 334 # AllowOverride controls what directives may be placed in .htaccess files. 335 # It can be "All", "None", or any combination of the keywords: 336 # Options FileInfo AuthConfig Limit 337 # 338 AllowOverride None 339 340 # 341 # Controls who can get stuff from this server. 342 # 343 Order allow,deny 344 Allow from all 345 346 php_value max_execution_time 300 347 php_value memory_limit 128M 348 php_value post_max_size 16M 349 php_value upload_max_filesize 2M 350 php_value max_input_time 300 351 php_value max_input_vars 10000 352 php_value always_populate_raw_post_data -1 353 php_value date.timezone Asia/Shanghai 354 355 356 3)拷贝zabbix-web的php文件到httpd的指定目录 sudo mkdir /var/www/html/zabbix sudo cp -a /opt/software/zabbix-4.2.8/frontends/php/* /var/www/html/zabbix/ 2.4.2 安装php5.6 1)安装yum源 wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -ivh epel-release-6-8.noarch.rpm remi-release-6.rpm 2)激活yum源 sudo yum-config-manager --enable remi-php56 3)安装php及相关组件 sudo yum install -y php php-bcmath php-mbstring php-xmlwriter php-xmlreader php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo
2.5.1 启动Zabbix-Server 1)启动 sudo service zabbix-server start 2)开机自启 sudo chkconfig --add zabbix-server sudo chkconfig zabbix-server on 2.5.2 启动Zabbix-Agent 1)启动 sudo service zabbix-agent start 2)开机自启 sudo chkconfig --add zabbix-agent sudo chkconfig zabbix-agent on 2.5.3 启动Zabbix-Web(httpd) 1)启动 sudo service httpd start 2)开机自启 sudo chkconfig httpd on
1)浏览器访问http://hadoop102/zabbix
2)检查配置
3)配置数据库
4)配置zabbix-server
5)下载配置文件,并上传至指定路径
6)登录,用户名:Admin,密码zabbix
sudo groupadd --system zabbix sudo useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
sudo yum -y install gcc-c++ pcre-devel
将安装包上传至/opt/software路径并解压到当前路径 tar -zxvf zabbix-4.2.8.tar.gz
1)进入/opt/software/zabbix-4.2.8路径,执行以下编译安装命令 ./configure --enable-agent sudo make install 2)修改zabbix-agent配置文件 sudo vim /usr/local/etc/zabbix_agentd.conf
Server=hadoop102 #ServerActive=127.0.0.1 #Hostname=Zabbix server
1)编辑zabbix-agent文件 sudo vim /etc/init.d/zabbix-agent 2)内容如下
#!/bin/sh
#
# chkconfig: - 86 14
# description: Zabbix agent daemon
# processname: zabbix_agentd
# config: /usr/local/etc/zabbix_agentd.conf
#
### BEGIN INIT INFO
# Provides: zabbix-agent
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Should-Start: zabbix zabbix-proxy
# Should-Stop: zabbix zabbix-proxy
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: Start and stop Zabbix agent
# Description: Zabbix agent
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
if [ -x /usr/local/sbin/zabbix_agentd ]; then
exec=/usr/local/sbin/zabbix_agentd
else
exit 5
fi
prog=zabbix_agentd
conf=/usr/local/etc/zabbix_agentd.conf
pidfile=/tmp/zabbix_agentd.pid
timeout=10
if [ -f /etc/sysconfig/zabbix-agent ]; then
. /etc/sysconfig/zabbix-agent
fi
lockfile=/var/lock/subsys/zabbix-agent
start()
{
echo -n $"Starting Zabbix agent: "
daemon $exec -c $conf
rv=$?
echo
[ $rv -eq 0 ] && touch $lockfile
return $rv
}
stop()
{
echo -n $"Shutting down Zabbix agent: "
killproc -p $pidfile -d $timeout $prog
rv=$?
echo
[ $rv -eq 0 ] && rm -f $lockfile
return $rv
}
restart()
{
stop
start
}
case "$1" in
start|stop|restart)
$1
;;
force-reload)
restart
;;
status)
status -p $pidfile $prog
;;
try-restart|condrestart)
if status $prog >/dev/null ; then
restart
fi
;;
reload)
action $"Service ${0##*/} does not support the reload action: " /bin/false
exit 3
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
exit 2
;;
esac
3)加执行权限 sudo chmod +x /etc/init.d/zabbix-agent
1)启动 sudo service zabbix-agent start 2)开机自启 sudo chkconfig --add zabbix-agent sudo chkconfig zabbix-agent on
4.1 Zabbix逻辑概念 3.1.1 Host 3.2.1 Item 4.2 Zabbix实战 4.2.1 创建Host 1)点击Configuration/Hosts/Create host
2)配置Host
3)查看新增Host
4.2.2 创建Item 1)点击Items
2)点击Create item
3)配置Item
4)查看创建的Item
5)查看Item最新数据
4.2.3 创建Trigger 1)点击Conguration/Hosts/Triggers
2)点击Create Trigger
3)编辑Trigger
4)测试Trigger 关闭集群中的HDFS,会有如下效果
4.2.4 创建Media type 1)点击Administration/Media types/Email
2)编辑Email
3)测试Email
4)Email绑定收件人
4.2.4 创建Action 1)点击Configuration/Actions/Create action
2)编辑Action
3)测试 重新启动HDFS,再关闭HDFS时,即可收到邮件通知