Zabbix3.2监控工具
Zabbix是一个基于WEB界面的提供的分布式系统监控以及网络监视功能的企业级的开源工具。
Zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制让管理员迅速定位/解决存在的各种问题。
Zabbix由Zabbix_Server服务端和Zabbix_Agent客户端还有Zabbix_proxy代理三个部分组成。
Zabbix_Server:可以通过SNMP,Zabbix_Agent,Ping,SNMP等方法提供对远程服务器/网络状态的监视。
Zabbix_Agent:是用来采集客户端服务器数据来交给Zabbix_Server处理。
Zabbix_Proxy:缓存同步服务器监控数据。
Zabbix的主要功能:CPU负荷,内存使用,磁盘使用,网络状况,端口监视,日志监视。
Zabbix的监控架构:
Zabbix部署步骤:
环境需求:必须LNMP/LAMP环境的支持,需要PHP5.4以上版本支持才可以。
# systemctl stop firewalld #关闭firewalld防火墙
# systemctl disable firewalld.service #禁止firewalld服务自启
# sed -i -e 's|SELINUX=enforcing|SELINUX=disabled|' /etc/selinux/config #关闭SELINUX
# sed -i -e 's|SELINUXTYPE=targeted|#SELINUXTYPE=targeted|' /etc/selinux/config
# setenforce 0
源码编译方式:
v 安装相关依赖组件
# yum -y install php php-gd php-mysql php-bcmath php-mbstring php-xml curl curl-devel gcc gcc-c++ net-snmp net-snmp-devel perl-DBI httpd mariadb* #YUM部署LAMP环境
v 解压安装包
# tar xzvf zabbix-3.2.1.tar.gz
# cd zabbix-3.2.1
v 编译安装Zabbix
安装Server和Agent,并支持将数据放入MYSQL数据库中:
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
仅安装Server,并支持将数据放入MYSQL数据库中:
# ./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-libcurl
仅安装Proxy代理,并支持将数据放入MYSQL数据库中:
# ./configure --prefix=/usr/local/zabbix --enable-proxy --with-net-snmp --with-mysql --with-ssh2
仅安装Agent客户端:
# ./configure --enable-agent
# make && make install
注:--with-libcurl:监控WEB页面响应时间,下载速度。
v 授权Zabbix数据库用户
# systemctl start mariadb #启动MYSQL
# mysqladmin -u root password 123 #设置数据库ROOT用户密码
# mysql -u root -p123 #登录数据库
mysql> create database zabbix character set UTF8; #创建zabbix数据库并指定编码为UTF8
mysql> grant all on zabbix.* to 'zabbix'@'localhost' identified by '123' with grant option;
mysql> flush privileges; #授权zabbix用户与刷新授权
mysql> exit
v 将Zabbix自带的SQL文件导入数据库
# mysql -u zabbix -p123 zabbix < database/mysql/schema.sql #按顺序导入
# mysql -u zabbix -p123 zabbix < database/mysql/images.sql
# mysql -u zabbix -p123 zabbix < database/mysql/data.sql
v 将Zabbix自带的PHP页面放入Nginx网页根目录
# cp -r frontends/php /var/www/html/zabbix
# chmod 777 /var/www/html/zabbix/conf
v 将Zabbix添加到服务
# cp -r misc/init.d/fedora/core/* /etc/init.d/
# sed -i -e 's|BASEDIR=/usr/local|BASEDIR=/usr/local/zabbix|' /etc/init.d/zabbix_server
# sed -i -e 's|BASEDIR=/usr/local|BASEDIR=/usr/local/zabbix|' /etc/init.d/zabbix_agentd
v 修改Zabbix_server配置文件
# sed -i -e 's|# DBPassword=|DBPassword=123|' /usr/local/zabbix/etc/zabbix_server.conf
# sed -i -e 's|# DBSocket=/tmp/mysql.sock|DBSocket=/var/lib/mysql/mysql.sock|' /usr/local/zabbix/etc/zabbix_server.conf
Zabbix_server配置文件解析
LogFile=/tmp/zabbix_server.log |
日志所在位置 |
LogFileSize=1 |
日志大小 |
PidFile=/tmp/zabbix_server.pid |
PID进程文件所在位置 |
DBHost |
数据库主机地址 |
DBName |
数据库名 |
DBUser |
数据库连接用户名 |
DBPassword |
数据库连接用户密码 |
DBSocket |
数据库缓存文件位置 |
DBPort |
数据库端口 |
StartPollers |
Zabbix_server进程数 |
StartIPMIPollers |
IPMI线程数(IPMI平台管理接口) |
StartPollersUnreachable |
该线程用来单独监控无法连接的主机 |
StartTrapper |
检测主机的线程数 |
StartPingers |
PING主机方式启动的线程数 |
StartDiscoverers |
发现主机的线程数 |
StartDBSyncers |
将数据同步到数据库的线程数 |
Timeout |
Zabbix_server的检测超时时间 |
v 修改PHP配置
# sed -i -e 's|post_max_size = 8M|post_max_size = 16M|' /etc/php.ini
# sed -i -e 's|max_execution_time = 30|max_execution_time = 300|' /etc/php.ini
# sed -i -e 's|max_input_time = 60|max_input_time = 300|' /etc/php.ini
# sed -i -e 's|;date.timezone =|date.timezone = PRC|' /etc/php.ini
post_max_size |
上传最大文件大小 |
date.timezone |
时区设置(PRC代表中国) |
max_execution_time |
运行超时时间(秒) |
request_terminate_timeout |
需求结束超时时间(秒) |
max_input_time |
接受数据时间限制(秒) |
v 创建运行用户
# useradd zabbix
v 启动服务
# service start zabbix_server
# systemctl start zabbix_agentd
# systemctl start httpd
# netstat -lnupt |grep 80
# ps aux |grep zabbix
v 通过网页验证访问
Http://localhost/zabbix
被监控主机配置
v 环境需求:关闭防火墙,SELinux
# systemctl stop firewalld
# setenforce 0
# iptables -F
# yum -y install gcc gcc-c++
v 解压zabbix包
# tar xzvf zabbix-3.2.1.tar.gz
# cd zabbix-3.2.1
v 编译安装
# ./configure --prefix=/usr/local/zabbix --enable-agent
# make && make install
v 创建运行用户
# useradd zabbix
# echo 123 | passwd zabbix --stdin
v 添加到服务
# cp -r misc/init.d/fedora/core/* /etc/init.d/
# sed -i -e 's|BASEDIR=/usr/local|BASEDIR=/usr/local/zabbix|' /etc/init.d/zabbix_agentd
v 修改Zabbix_agentd配置文件
# sed -i -e 's|Server=127.0.0.1|Server=1.1.1.19|' /usr/local/zabbix/etc/zabbix_agentd.conf
# sed -i -e 's|ServerActive=127.0.0.1|ServerActive=1.1.1.19|' /usr/local/zabbix/etc/zabbix_agentd.conf
# sed -i -e 's|# Hostname=|Hostname=1.1.1.20|' /usr/local/zabbix/etc/zabbix_agentd.conf
Zabbix_agentd配置文件解析
UnsafeUserParameters |
启动自定义KEY |
EnableRemoteCommands |
开启远程命令 |
ListenPort |
监听端口 |
StartAgents |
Agent线程数 |
Server |
被动模式指定服务端地址 |
ServerActive |
主动模式指定服务器地址 |
Hostname |
主机名 |
v 启动服务
# service zabbix_agentd restart
# netstat -lnupt |grep 10050
YUM安装方式:
环境需求:需要连接网络,关闭防火墙,SELinux
# systemctl stop firewalld #关闭防火墙
# setenforce 0
v 安装Zabbix的YUM库
# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
# yum makecache #重新生成缓存
v 安装相关依赖组件
# yum -y install php php-gd php-mysql php-bcmath php-mbstring php-xml curl curl-devel net-snmp net-snmp-devel perl-DBI httpd mariadb* #YUM部署LAMP环境
v 安装Zabbix_server
# yum -y install zabbix-server-mysql zabbix-web-mysql
v 授权MYSQL数据库
# systemctl start mariadb #启动数据库
# mysqladmin -u root password 123
# mysql -u root -p123
> create database zabbix character set UTF8;
> grant all on zabbix.* to 'zabbix'@'localhost' identified by '123' with grant option;
> flush privileges;
> exit
v 导入Zabbix数据库文件
# mysql -u zabbix -p123 zabbix < schema.sql
# mysql -u zabbix -p123 zabbix < images.sql
# mysql -u zabbix -p123 zabbix < data.sql
v 修改配置文件
# sed -i -e 's|# DBPassword=|DBPassword=123|' /etc/zabbix/zabbix_server.conf
# sed -i -e 's|# DBSocket=/tmp/mysql.sock|DBSocket=/var/lib/mysql/mysql.sock|' /usr/local/zabbix/etc/zabbix_server.conf
# sed -i -e 's|;date.timezone =|date.timezone = PRC|' /etc/php.ini
v 启动服务
# zabbix_server
# systemctl start httpd
v 通过网页验证访问
Http://localhost/zabbix
被监控端安装配置
v 环境需求:关闭防火墙,SELinux
# systemctl stop firewalld
# setenforce 0
v 安装Zabbix_agentd服务
# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
# yum makecache
# yum -y install zabbix-agent
v 修改Zabbix_agentd配置文件
# sed -i -e 's|Server=127.0.0.1|Server=1.1.1.19|' /usr/local/zabbix/etc/zabbix_agentd.conf
# sed -i -e 's|ServerActive=127.0.0.1|ServerActive=1.1.1.19|' /usr/local/zabbix/etc/zabbix_agentd.conf
# sed -i -e 's|# Hostname=|Hostname=1.1.1.20|' /usr/local/zabbix/etc/zabbix_agentd.conf
v 启动Zabbix_agentd服务
# zabbix_agentd
# netstat -lnupt |grep zabbix
WEB配置图片导航:
安装故障排查
故障一:MYSQL数据库版本过高问题; 解决方法:重新安装适用MYSQL数据库
注:Current database version:当前版本 Required mandatory version:强制版本号
故障二:用户授权问题; 解决方法:重新授权Zabbix数据库用户
故障三:数据库问题 解决方法:重新导入Zabbix对应数据库
故障四:服务器进程过多问题 解决方法:设置配置文件相关参数控制进程
注:Too many processes on Zabbix server:在Zabbix服务器进程数太多
故障五:Zabbix_server启动时线程数低导致轮询负载 解决方法:StartPollers设置为5或10
故障六:Zabbix_server在运行但是提示没在运行 解决方法:关闭SELinux
故障七:数据库密码错误 解决方法:修改配置文件zabbix.conf.php