首页 > 代码库 > 51.zabbix监控工具

51.zabbix监控工具

Zabbix3.2监控工具

Zabbix是一个基于WEB界面的提供的分布式系统监控以及网络监视功能的企业级的开源工具。

Zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制让管理员迅速定位/解决存在的各种问题。

ZabbixZabbix_Server服务端和Zabbix_Agent客户端还有Zabbix_proxy代理三个部分组成。

Zabbix_Server:可以通过SNMPZabbix_AgentPingSNMP等方法提供对远程服务器/网络状态的监视。

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

源码编译方式:

安装相关依赖组件

# 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环境

解压安装包

# tar xzvf zabbix-3.2.1.tar.gz

# cd zabbix-3.2.1

编译安装Zabbix

 安装ServerAgent,并支持将数据放入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页面响应时间,下载速度。

授权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

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

Zabbix自带的PHP页面放入Nginx网页根目录

# cp -r frontends/php  /var/www/html/zabbix

# chmod 777 /var/www/html/zabbix/conf

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

修改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的检测超时时间

修改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

接受数据时间限制(秒)



创建运行用户

# useradd zabbix

启动服务

# service start zabbix_server

# systemctl start zabbix_agentd

# systemctl start httpd

# netstat -lnupt |grep 80

# ps aux |grep zabbix

通过网页验证访问

Http//localhost/zabbix

被监控主机配置

环境需求:关闭防火墙,SELinux

# systemctl stop firewalld

# setenforce 0

# iptables -F

# yum -y install gcc gcc-c++

解压zabbix

# tar xzvf zabbix-3.2.1.tar.gz

# cd zabbix-3.2.1

编译安装

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

# make && make install

 

创建运行用户

# useradd zabbix

# echo 123 | passwd zabbix --stdin

添加到服务

# 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

修改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

主机名

启动服务

# service zabbix_agentd restart

# netstat -lnupt |grep 10050

 

YUM安装方式:

环境需求:需要连接网络,关闭防火墙,SELinux

# systemctl stop firewalld                                     #关闭防火墙

# setenforce 0

安装ZabbixYUM

# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm

# yum makecache                                           #重新生成缓存

安装相关依赖组件

# 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环境

安装Zabbix_server

# yum -y install zabbix-server-mysql zabbix-web-mysql

授权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

 

导入Zabbix数据库文件

# mysql -u zabbix -p123 zabbix < schema.sql

# mysql -u zabbix -p123 zabbix < images.sql

# mysql -u zabbix -p123 zabbix < data.sql

修改配置文件

# 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

启动服务

# zabbix_server

# systemctl start httpd

通过网页验证访问

Http//localhost/zabbix

 

被监控端安装配置

环境需求:关闭防火墙,SELinux

# systemctl stop firewalld

# setenforce 0

安装Zabbix_agentd服务                          

# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm    

# yum makecache                                

# yum -y install zabbix-agent                              

修改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服务                                    

# zabbix_agentd                                

# netstat -lnupt |grep zabbix                    

 

 

 


WEB配置图片导航:

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 安装故障排查

故障一:MYSQL数据库版本过高问题;   解决方法:重新安装适用MYSQL数据库

技术分享 

注:Current database version当前版本          Required mandatory version强制版本号

故障二:用户授权问题;              解决方法:重新授权Zabbix数据库用户

技术分享 

 故障三:数据库问题                 解决方法:重新导入Zabbix对应数据库

技术分享 

故障四:服务器进程过多问题          解决方法:设置配置文件相关参数控制进程

技术分享 

注:Too many processes on Zabbix serverZabbix服务器进程数太多

故障五:Zabbix_server启动时线程数低导致轮询负载 解决方法:StartPollers设置为510

技术分享 

故障六:Zabbix_server在运行但是提示没在运行     解决方法:关闭SELinux

技术分享  

故障七:数据库密码错误               解决方法:修改配置文件zabbix.conf.php

技术分享

技术分享

 


51.zabbix监控工具