centos7之zabbix3.2搭建

时间:2023-12-04 17:44:56

环境介绍:

  centos7.4

  zabbix3.2

一、zabbix介绍

zabbix官网:https://www.zabbix.com/

zabbix下载页面:https://www.zabbix.com/download

zabbix rpm包下载页面:http://repo.zabbix.com/zabbix/

1.1 zabbix简介

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运行;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

1.2 zabbix的组件

zabbix由以下几个组件部分构成:

Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行。
Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据。
Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上。
Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端(实现分布式监控专用组件非必要组件,被监控服务器过多或者跨机房可以使用此组件。)

Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端。

1.3 zabbix监控环境中相关术语

主机(host):要监控的网络设备,可由IP或DNS名称指定

主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用

监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"标识
触发器(trigger):一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK"
事件(event):触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等
动作(action):指对于特定事件事先定义的处理方法,如发送通知,何时执行操作
报警升级(escalation):发送警报或者执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等
媒介(media):发送通知的手段或者通道,如Email、Jabber或者SMS等
通知(notification):通过选定的媒介向用户发送的有关某事件的信息
远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行
模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至某个主机
应用(application):一组item的集合
web场景(web scennario):用于检测web站点可用性的一个或多个HTTP请求

前端(frontend):Zabbix的web接口

二、安装zabbix

  #准备环境

#yum install -y gcc gcc-c++ vim wget

  安装mariadb10.1数据库

  注意:默认centos7装的是mariadb5.x版本,我们这里要安装最新的稳定版。

vi /etc/yum.repos.d/MariaDB.repo

  添加如下内容(注意,这里你也可以选择其他的版本,直接改数字就行)

[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.1/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
  清除一下yum缓存
yum clean all
  开始yum安装
yum -y install MariaDB-server MariaDB-client mysql-devel 

  更改数据库配置文件

  cat /etc/my.cnf 

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[mysqld]
datadir=/var/lib/mysql/
socket=/var/lib/mysql/mysql.sock
pid_file=/var/lib/mysql/mariadb.pid [mysql]
host=localhost
user=zabbix
password=zabbix
socket=/var/lib/mysql/mysql.sock [mysqladmin]
host=localhost
user=zabbix
password=zabbix
socket=/var/lib/mysql/mysql.sock [client-server] [mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid #
# include all files from the config directory
#
!includedir /etc/my.cnf.d

my.cnf

  安装完成MariaDB,首先启动MariaDB

systemctl start mariadb

  设置开机启动

systemctl enable mariadb

  1、yum安装必要的环境

yum install -y  httpd php php-devel php-pear php-xmlrpc php-bcmath  httpd-manual mod_ssl  php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-devel OpenIPMI-devel java-devel php-mysql.x86_64

  

yum install -y libssh2-devel openldap openldap-devel  net-snmp-devel

  

  2、配置php环境

sed -i "s/;date.timezone =/date.timezone = Asia\/Shanghai/g" /etc/php.ini
sed -i "s#max_execution_time = 30#max_execution_time = 300#g" /etc/php.ini
sed -i "s#post_max_size = 8M#post_max_size = 32M#g" /etc/php.ini
sed -i "s#max_input_time = 60#max_input_time = 300#g" /etc/php.ini
sed -i "s#memory_limit = 128M#memory_limit = 128M#g" /etc/php.ini
sed -i "s/;mbstring.func_overload = 0/mbstring.func_overload = 0\n/" /etc/php.ini

  3、安装zabbix

# wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz

# groupadd zabbix -g 201
# useradd -g zabbix -u 201 -m zabbix # tar zxf zabbix-3.2.6.tar.gz
#cd zabbix-3.2.6
# ./configure --prefix=/usr/local/zabbix-3.2.6 --sysconfdir=/etc/zabbix --enable-server --enable-proxy --enable-agent --enable-ipv6 --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi --with-unixodbc --with-ldap --with-snmp --with-ssh2 --enable-java
# make install
# ln -s /usr/local/zabbix-3.2.6 /usr/local/zabbix

  4、导入zabbix数据库

 systemctl start mariadb.service
mysqladmin -uroot password '123456' mysql -uroot -p123456 -e 'create database zabbix character set utf8;'
mysql -uroot -p123456 -e "grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';" mysql -uroot -p123456 -e "flush privileges;" mysql -uzabbix -pzabbix zabbix </root/zabbix-3.2.6/database/mysql/schema.sql mysql -uzabbix -pzabbix zabbix </root/zabbix-3.2.6/database/mysql/images.sql mysql -uzabbix -pzabbix zabbix </root/zabbix-3.2.6/database/mysql/data.sql

  4.5、拷贝启动脚本并配置

cp /root/zabbix-3.2.6/misc/init.d/fedora/core/zabbix_* /etc/init.d/
sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#" /etc/init.d/zabbix_server
sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#" /etc/init.d/zabbix_agentd

  5、copy启动配置文件并配置

# cat /etc/zabbix/zabbix_server.conf|grep -v "^#"|grep -v "^$"   #简单配置一下,主要是配置连接数据库的账号和密码

LogFile=/var/zabbix/zabbix_server.log
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
ListenIP=127.0.0.1

  # mkdir /var/zabbix
  # chown zabbix:zabbix /var/zabbix/

  7、拷贝网页文件到web站点目录下

cp -r /root/zabbix-3.2.6/frontends/php /var/www/html/zabbix
chown apache:apache /var/www/html/zabbix/conf #此目录下,程序要创建一个php,当然不授权的话,等到安装到哪部,下载下php文件也可以。

  注意事项:

 # setenforce
# systemctl start httpd
# systemctl enable httpd
# systemctl enable mariadb

  8、通过web也设置zabbix(http://192.168.1.238/zabbix/)

centos7之zabbix3.2搭建

centos7之zabbix3.2搭建

centos7之zabbix3.2搭建

centos7之zabbix3.2搭建

centos7之zabbix3.2搭建

完成安装

centos7之zabbix3.2搭建

启动zabbix服务端和agentd端(因为zabbix默认会监控自己,所以服务器已经安装agent)

启动服务
/etc/init.d/zabbix_server start
/etc/init.d/zabbix_agentd start 开机自启
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on

centos7之zabbix3.2搭建

  9、因为默认web端是使用的英文显示,所以我们首先要改成中文。

centos7之zabbix3.2搭建

centos7之zabbix3.2搭建

从上面看,我们已经完成了汉化,但是zabbix的图形还是乱码的。

centos7之zabbix3.2搭建

解决办法:

进入到本地windos目录下:C:\Windows\Fonts(以微软雅黑msyh.ttf为例)。

将windows端的msyh.ttf文件上传到服务器端的/var/www/html/zabbix/fonts目录中。

centos7之zabbix3.2搭建

还差一步,我们需要更改zabbix的配置文件中,指定让它使用我们上传的字体。

vim /var/www/html/zabbix/include/defines.inc.php +45

define('ZBX_GRAPH_FONT_NAME',           'DejaVuSans');  替换为:define('ZBX_GRAPH_FONT_NAME',           'msyh');   #就是DejaVuSans替换为msyh

centos7之zabbix3.2搭建

刷新一下页面,字体就正常了。

centos7之zabbix3.2搭建

三、客户端的安装(agent)

Linux:

  1、准备环境(关闭firewalld、selinux、iptables)

yum install -y gcc gcc-c++ vim wget lrzsz

  2、下载安装

wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz

  创建zabbix用户和组,编译安装。

# groupadd zabbix -g 201
# useradd -g zabbix -u 201 -m zabbix
# tar zxf zabbix-3.2.6.tar.gz
# cd zabbix-3.2.6 # ./configure --prefix=/usr/local/zabbix-3.2.6 --sysconfdir=/etc/zabbix --enable-agent # make
# make install
# ln -s /usr/local/zabbix-3.2.6 /usr/local/zabbix

  创建启动文件和修改agentd客户端配置文件,指向zabbix服务器。

# cp /root/zabbix-3.2.6/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#" /etc/init.d/zabbix_agentd # vim /etc/zabbix/zabbix_agentd.conf #就先修改一个地方,让Server端指向zabbix_server的IP地址
Server=192.168.1.103
# /etc/init.d/zabbix_agentd restart

  开机自启动

chkconfig zabbix_agentd on

  3、进入zabbix服务器,添加linux客户端。

  配置==》主机群组==》创建主机群组(web页面右上角)==》添加组名,如Linux_Server

  centos7之zabbix3.2搭建

  配置==》主机==》创建主机(web页面右上角),这里需要添加主机和模板。

  主机:

  centos7之zabbix3.2搭建

  模板:

  centos7之zabbix3.2搭建

  选择我们刚才创建的Linux_Server群组,因为我们给这个群组就添加了一个linux的监控项,所以直接选他就行。

  centos7之zabbix3.2搭建

  centos7之zabbix3.2搭建

  至此linux客户端的添加基本完成。

  Windows客户端:

  1、下载win客户端。https://www.zabbix.com/download_agents

  2、关闭监控主机windows server 2008防火墙或防火墙入放行zabbix_agentd客户端口号  10050 (TPC/UDP)。

  3、下载后解压zabbix_agents_3.2.0.win.zip 压缩包,里面有两个文件夹,一个是bin文件夹,另一个是conf文件夹。

  Bin文件夹里面有两个文件夹,一个是win32文件夹里存放zabbix_agentd安装程序应用于windows 32位操作系统,

  一个是win64文件夹里存放zabbix_agentd安装程序应用于windows 64位操作系统。

  Conf文件夹里存放是配置文件zabbix_agentd.win.conf

  

  4、在windows server 2008 操作系统  C盘目录下创建一个zabbix文件夹,把刚下载的zabbix_agentd压缩包里的win64位文件夹的zabbix_agentd.exe、zabbix_get.exe、zabbix_sender.exe、dev文件夹复制到zabbix文件夹里

   安装程序和conf文件夹zabbix_agentd.win.conf复制到windows server 2008操作系统C盘创建的zabbix文件夹里。(文件夹创建路径可以自定义,

   但后面zabbix_agentd客户端运行安装命令需要根据创建的路径运行)

    这里我们以win10x64为例

  centos7之zabbix3.2搭建

  5、右键以文本格式编辑zabbix_agentd.win.conf 配置文件。

  centos7之zabbix3.2搭建

修改下面几项:
EnableRemoteCommands= #允许在本地执行远程命令
LogRemoteCommands= #执行远程命令是否保存操作日志
Server = 192.168.1.2238 #填写zabbix服务器IP地址
Hostname=wintest01 #zabbix_agent客户端计算机名 (被监控主机)

  6、开始搜索"运行",以管理员方式运行,cmd进入。

#安装zabbix客户端
C:\zabbix\zabbix_agentd.exe -i -c C:\zabbix\zabbix_agentd.win.conf #启动zabbix服务
C:\zabbix\zabbix_agentd.exe -s -c C:\zabbix\zabbix_agentd.win.conf

  centos7之zabbix3.2搭建

  这里别忘记设置自动启动,手动启动就麻烦了。

  centos7之zabbix3.2搭建

  删除客户端操作:

C:\zabbix\zabbix_agentd.exe  -d  -c  C:\zabbix\zabbix_agentd.win.conf

  

  7、服务端操作。

  创建windows群组。

  centos7之zabbix3.2搭建

  创建windows主机。

  centos7之zabbix3.2搭建

  centos7之zabbix3.2搭建

  centos7之zabbix3.2搭建

  总结:

  上面我们添加的windows和linux已经监控成功。

  centos7之zabbix3.2搭建

  参考与:

  http://www.51niux.com/?id=146

  https://www.cnblogs.com/zoulongbin/p/6395047.html