一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

Zabbix3.0的安装、部署、配置,必须基于LAMP环境或是是LNMP环境。

关于LAMP环境的简单快速搭建,见博客:http://afterdawn.blog.51cto.com/7503144/1923139

注意:以下步骤都是在LAMP配置之后进行的。

本文不会再对zabbix-server和zabbix-agent理论知识再进行介绍,建议看完http://afterdawn.blog.51cto.com/7503144/1922502再进行zabbix实战。

Zabbix3.0对软硬件的要求很低,一般的主机配置和LAMP版本都可以满足,

软硬件需求文档见:http://www.ttlsa.com/zabbix/zabbix-requirements-4-ttlsa/


下面开始介绍在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置,本次案例要用到两台主机,

一台作为zabbix_server端,一台作为zabbix_agent端,具体信息如下:

zabbix_server(默认监听端口10051)

IP:10.10.10.3  OS:CentOS7

zabbix_agent(默认监听端口10050)

IP:10.10.10.10  OS:CentOS7


具体步骤:

1、指定zabbix3.0软件包存储仓库位置(以阿里云yum源泉为例)

默认已经配置的阿里云的CentOS7的yum源,但是该yum源没有zabbix安装包,所以手动指定zabbix安装包路径,配置如下:

~]# vim /etc/yum.repos.d/zabbix.repo
    [epel]
    name=aliyun_zabbix
    baseurl=https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/
    gpgcheck=0

2、软件包安装

由于LAMP环境已经部署好,这里就不在赘述。但zabbix用到的数据库需要创建zabbix库且创建zabbix用到的用户,在http://afterdawn.blog.51cto.com/7503144/1923139文档里已经操作过,这里复述一下:

~]# mysql -uroot -p    # root用户登录
MariaDB [(none)]> CREATE DATABASE zabbix CHARSET 'utf8';
    #创建zabbix库,默认字符集为utf8
MariaDB [(none)]> GRANT ALL ON zabbix.* TO zbxuser@'127.0.0.1' IDENTIFIED BY 'zbxpass';
MariaDB [(none)]> GRANT ALL ON zabbix.* TO zbxuser@'localhost' IDENTIFIED BY 'zbxpass';
    # zbxuser可以从本机登录,密码为zbxpass,对zabbix拥有所有权限
MariaDB [(none)]> GRANT ALL ON zabbix.* TO zbxuser@'10.10.10.%' IDENTIFIED BY 'zbxpass';
    # zbxuser可以从10.10.10.0网段登录,密码为zbxpass,对zabbix拥有所有权限
MariaDB [(none)]> flush privileges;    # 刷新权限

服务端软件包:zabbix-server-mysql zabbix-get

web GUI软件包:zabbix-web zabbix-web-mysql 必须同时安装否则不能解决依赖关系(相互依赖)

agent(被监控端才安装):zabbix-agent zabbix-sender

使用yum一次性安装:

~]# yum install -y zabbix-server-mysql zabbix-get zabbix-web zabbix-web-mysql zabbix-agent zabbix-sender

安装zabbix-server-mysql时报错了,错误如下:

错误:软件包:zabbix-server-mysql-3.0.9-1.el7.x86_64 (epel)
          需要:fping
错误:软件包:zabbix-server-mysql-3.0.9-1.el7.x86_64 (epel)
          需要:libiksemel.so.3()(64bit)
 您可以尝试添加 --skip-broken 选项来解决该问题
 您可以尝试执行:rpm -Va --nofiles --nodigest

错误原因:没有安装epel的yum源支持,导致不能自动安装fping

解决方法:安装epel包

# yum install -y epel-release

安装好epel包后,由于epel仓库收集了zabiix稳定版(2.0),使用yum默认安装的就不3.0版本了

解决方法:直接指定zabbix安装包的URL路径,可以登录到https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/查看最新的zabbix版本,自行选择。


以下是我用yum安装的命令:


~]# yum install -y https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-server-mysql-3.0.0-1.el7.x86_64.rpm
~]# yum install -y  https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-get-3.0.0-1.el7.x86_64.rpm

# yum install -y https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-web-mysql-3.0.0-1.el7.noarch.rpm https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-web-3.0.0-1.el7.noarch.rpm
 
~]# yum install -y https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.0-1.el7.x86_64.rpm 
~]# yum install -y https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-sender-3.0.0-1.el7.x86_64.rpm

至此,zabbix-server端的所有安装包已经安装完成。

3、zabbix server初始化

注意:在zabbix3.x版本只有一个sql脚本,2.x有三个sql脚本

该过程是执行zabbix官方提供的sql脚本,自动创建zabbix需要的表结构,过程如下:

~]# cd /usr/share/doc/zabbix-server-mysql-3.0.0/
~]# gzip -d create.sql.gz
~]# mysql -h227.0.0.1 -uzbxuser -p zabbix < create.sql
~]# mysql -uroot -p    # 登录上mysql查看有没有创建成功
MariaDB [zabbix]> use zabbix
MariaDB [zabbix]> show tables;

4、zabbix server配置文件

配置文件:/etc/zabbix/system/zabbix-server.conf

指令有四类:

    ############ GENERAL PARAMETERS #################
    ############ ADVANCED PARAMETERS ################
    ####### LOADABLE MODULES #######
    ###### TLS-RELATED PARAMETERS #######

只修改############ GENERAL PARAMETERS ################# 其他使用默认配置即可


通用参数,不需要修改

# ListenPort=10051    
# SourceIP= 默认所有IP
# LogType=file 日志主动保存到文件
LogFile=/var/log/zabbix/zabbix_server.log 日志位置
LogFileSize=0 日志多大后进行滚动
PidFile=/var/run/zabbix/zabbix_server.pid 服务端PID文件的路径

需要修改项:

DBHost=localhost# 取消注释
DBName=zabbix# 填写库名称,默认为zabbix
DBUser=zbxuser# 数据库用户名
DBPassword=zbxpass# 数据库密码
DBSocket=/var/lib/mysql/mysql.sock
# 如果数据库在本机,和数据库进行本机通信,要跟/etc/my.conf里的配置socket=/var/lib/mysql/mysql.sock一致


启动服务:

~]# systemctl start zabbix-server.service
~]# systemctl enable zabbix-server.service    # 开机自动启动

注意:CentOS7.0和7.1默认的trousers版本比较低,需要升级trousers-0.3.13-1.el7.x86_64,直接使用yum安装即可

启动服务后,使用systemctl status zabbix-server.service查看,发现没有起起来,在网上查看了解决方法,也没有解决。

最后发现是zabbix库里的表没有导入成功,由于自己的大意,折腾了一个多小时。

总结:做每一步操作,都应该进行验证,否则会因为自己的一个失误而不能排除故障,最后全部推倒从来,费时费力。

遇到这种情况,应该耐心的去查看日志,根据系统的提示,仔细的去查找原因。不行再到网上查找原因


5、配置zabbix web

zabbix对agent主机的监控配置,几乎都是在zabbix web前端进行的,这里先进行zabbix server的基本配置。


配置php的时区指定:

(1)php.ini(非必须修改)

max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone PRC

(2)/etc/httpd/conf.d/zabbix.conf

php_value date.timezone Asia/Shanghai    # 添加该项

访问URL:http://server/zabbix

zabbix web登录后配置文件:/etc/zabbix/web/zabbix.conf.php

登录:admin/zabbix


从客户端登录过程如下:

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

下图的【Database port】配置0代表默认端口,即mysql为3306

【Database name】【User】【Password】根据自己的设定填写

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

10051为zabbix server的默认监听端口

【Name】项可以不填写,自定义名称

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

默认的登录用户名和密码为:admin/zabbix

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

第一次登录的界面:

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

6、添加并配置一个agent主机实例

6.1 在被监控主机安装zabbix agent

~]# scp root@10.10.10.3:/etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/   # yum配置文件

~]# yum install -y 
~]# yum install -y https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-sender-3.0.0-1.el7.x86_64.rpm

6.2 agent端配置

配置文件:/etc/zabbix/zabbix_agentd.conf

##### Passive checks related(被动检测相关的配置:agent要等待server请求数据),以agent端为判断参照
Server=10.10.10.3 # 以逗号分隔授权给那些server或porxy过来采集数据的服务器地址列表
# ListenPort=10050    # 监听的IP
# ListenIP=0.0.0.0    # 监听的端口
# StartAgents=3    # 启动的agent检测
##### Active checks related(主动检测相关的配置:agent主动向server发送数据)
ServerActive=10.10.10.3[:Port]
以逗号分隔、当前agent主动发送监控数据过去的server端;可跟端口,一般默认10051
Hostname=agent2
发送过去的主机标示,一般填写主机名
EnableRemoteCommands=1 # 可以在agent端执行远程命令(见后面的内容有总结下的说明)
LogRemoteCommands=1    # 远程操作记录于日志


注意:不需要手动建立zabbix账户,但zabbix agent自动创建的zabbix账户默认不能登录,CentOS7也不能在没有登录终端的情况下执行命令,所以要做一些配置:

(1)zabbix用户有所需要管理的权限(基于sudo授权)

# visudo
# %wheel        ALL=(ALL)       NOPASSWD: ALL
zabbix  ALL=(ALL)       NOPASSWD: ALL
# Defaults    requiretty# 注释该行

关于该配置的说明:

    1) Defaults requiretty,修改为 #Defaults requiretty,表示不需要控制终端(不需要从终端登录就可以执行命令)

测试:

~]# su - zabbix -c 'sudo /usr/bin/systemctl restart httpd.service'

    2) Defaults requiretty, 修改为 Defaults:nobody !requiretty,表示仅nobody用户不需要控制终端(仅nobody用户不需要从终端登录就可以执行命令)

(2)zabbix用户可登陆

~]# mkdir /var/lib/zabbix    # 创建家目录,可不做
~]# grep "^zabbix" /etc/passwd
zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
~]# usermod -s /bin/bash zabbix
~]# grep "^zabbix" /etc/passwd
zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/bin/bash

启动zabbix agent

~]# systemctl start zabbix-agent.service
~]# systemctl status zabbix-agent.service
~]# systemctl enable zabbix-agent.service

7、在zabbix web端添加一台Linux监控主机

通过以下截图步骤:

建立一个主机群组

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

创建一台主机,并属于test group

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

套用一个Templates OS Linux的监控模板

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

完成后的显示如下:

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例可以按照如下截图查看监控状态:

监控的数据:

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

监控触发状况

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

监控触发的事件

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例