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 -h127.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
从客户端登录过程如下:
下图的【Database port】配置0代表默认端口,即mysql为3306
【Database name】【User】【Password】根据自己的设定填写
10051为zabbix server的默认监听端口
【Name】项可以不填写,自定义名称
默认的登录用户名和密码为:admin/zabbix
第一次登录的界面:
6、添加并配置一个agent主机实例
6.1 在被监控主机安装zabbix agent
~]# scp [email protected]:/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监控主机
通过以下截图步骤:
建立一个主机群组
创建一台主机,并属于test group
套用一个Templates OS Linux的监控模板
完成后的显示如下:
监控的数据:
监控触发状况
监控触发的事件