Zabbix Server 安装 基于LNMP

说明

中小型到大型公司都需要对局域网的交换机,路由器,Windows服务器,Linux服务器【Centos,Ubuntu】,甚至云主机【阿里云,AWS,腾讯云等】进行硬件上的监控,例如CPU,内存,硬盘,网络,系统进程,甚至AWS的RDS,或者是阿里云的RDS进行数据库的监控,zabbix系统都可以满足要求。
除了必要的监控之外,可以进行对监控阈值的告警处理,处理方式可以邮件告警,也可以短信告警。
特别:可以跟公司的AD/LDAP进行对接,可以授权AD/LDAP用户相关的权限

下面将介绍如何安装Zabbix监控系统
官网文档

安装要求

官网安装要求

硬件要求

规模平台CPU/内存数据库受监控的主机数量
小型CentOSVirtual ApplianceMySQL InnoDB100
中型CentOS2 CPU cores/2GBMySQL InnoDB500
大型RedHat Enterprise Linux4 CPU cores/8GBRAID10 MySQL InnoDB 或 PostgreSQL>1000
极大型RedHat Enterprise Linux8 CPU cores/16GBFast RAID10 MySQL InnoDB 或 PostgreSQL>10000

软件要求

Zabbix 是基于先进 Apache Web 服务器、领先的数据库引擎和 PHP 脚本语言构建的
也就是需要提前准备LNMP/LAMP的环境

  • Apache(nginx,Tomcat等Web 服务器)
  • MySQL(Oracle、PostgreSQL、SQLite等数据库)
  • PHP

软件版本的要求

软件版本备注
Apache1.3.12 或以上
PHP5.4.0 或以上
PHP 扩展库:
gd2.0 or laterPHP GD 扩展库必须支持 PNG 图像(–with-png-dir)、JPEG 图像 (–with-jpeg-dir) 和 FreeType 2 (–with-freetype-dir).
bcmathphp-bcmath (–enable-bcmath)
ctypephp-ctype (–enable-ctype)
libXML2.6.15 或以上php-xml or php5-dom,如果发布者提供独立的部署包。
xmlreaderphp-xmlreader,如果发布者提供独立的部署包。
xmlwriterphp-xmlwriter,如果发布者提供独立的部署包。
sessionphp-session,如果发布者提供独立的部署包。
socketsphp-net-socket (–enable-sockets) 。用户脚本支持所需要的组件。
mbstringphp-mbstring (–enable-mbstring)
gettextphp-gettext (–with-gettext)。用于多语言翻译支持。
ldapphp-ldap。只有在前端使用 LDAP 认证时才需要。
ibm_db2使用 IBM DB2 作为 Zabbix 后端数据库所需要的组件。
mysqli使用 MySQL 作为 Zabbix 后端数据库所需要的组件。
oci8使用 Oracle 作为 Zabbix 后端数据库所需要的组件。
pgsql使用 PostgreSQL 作为 Zabbix 后端数据库所需要的组件。

操作系统要求

需求需求状态描述
libpcre强制的Perl Compatible Regular Expression (PCRE) 支持需要 PCRE 库。命名可能会因 GNU/Linux 发行版而不同,例如 ‘libpcre3’ 或 ‘libpcre1’。 值得注意的是,您需要准确的 PCRE (v8.x) ;而不使用 PCRE2 (v10.x) 库。
libevent批量指标支持和 IPMI 监控是必需的。需要 1.4 版本或更高。值得注意的是,对于 Zabbix proxy,此需求是可选的;但它对于支持 IPMI 监控是必需的。
libpthread支持互斥锁和读写锁所需的。
zlib支持压缩所需的。
OpenIPMI可选的支持IPMI 所需的。
libssh2支持 SSH 所需的。需要 1.0 版本或更高。
fping支持 ICMP ping 监控项 所需的。
libcurlWeb 监控、VMware 监控和 SMTP 认证所需的。对于 SMTP 认证,需要 7.20.0 版本或更高。同时亦是 Elasticsearch 所需的。
libiksemel支持 Jabber 所需的。
libxml2支持 VMware monitoring 所需的。
net-snmpRequired for 支持 SNMP 所需的。

安装所需要的软件

根据安装要求,我们采用如下软件和版本信息,点击即可进入安装教程的界面

Nginx安装说明

直接使用yum源安装即可

MySQL安装说明

必须安装:mysql-community-libs-compat-5.7.XX-1.el7.x86_64.rpm
否则提示:Requires: libmysqlclient.so.18()(64bit)

yum install mysql-community-common-5.7.30-1.el7.x86_64.rpm mysql-community-libs-5.7.30-1.el7.x86_64.rpm mysql-community-devel-5.7.30-1.el7.x86_64.rpm mysql-community-client-5.7.30-1.el7.x86_64.rpm mysql-community-server-5.7.30-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.30-1.el7.x86_64.rpm

PHP安装说明

此示例安装PHP7.2.16的版本
针对zabbix对php的扩展要求整理如下:
php已默认安装扩展:ctype,libXML,xmlreader,xmlwriter,session,
php未安装的扩展:gd,bcmath,sockets,mbstring,gettext,ldap,ibm_db2,oci8,pgsql,mysqli
针对扩展中的ibm_db2,oci8,pgsql,mysqli,因为我们选择的数据库是mysql,所有启用扩展mysqli即可

  • 也就是PHP启动的扩展是gd,bcmath,sockets,mbstring,gettext,ldap,mysqli。相对应的要安装如下依赖安装1,和处理ldap的依赖安装2
--with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd --enable-bcmath --enable-sockets --enable-mbstring --with-gettext --with-ldap --with-mysqli
  • 依赖安装1
yum install gcc gcc-c++ autoconf libxml2 libxml2-devel sqlite-devel openldap openldap-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel -y
  • 依赖安装2
cp -frp /usr/lib64/libldap* /usr/lib/
  • 安装
wget https://www.php.net/distributions/php-7.2.16.tar.gz
tar -zxvf php-7.2.16.tar.gz
cd php-7.2.16
./configure --prefix=/usr/local/php-7.2.16 --enable-fpm --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd --enable-bcmath --enable-sockets --enable-mbstring --with-gettext --with-ldap --with-mysqli
make && make install

在编译中出现:

/usr/bin/ld: ext/ldap/.libs/ldap.o: undefined reference to symbol 'ber_scanf'
//usr/lib64/liblber-2.4.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

处理如下:查找到EXTRA_LIBS开头的,末尾加上“-llber”,保存退出然后继续执行make && make install

vi Makefile
/^EXTRA_LIBS
行尾加上 “-llber”,保存退出然后继续执行make && make install

查看是否都安装了需要的扩展

[root@localhost no-debug-non-zts-20170718]# /usr/local/php-7.2.16/bin/php -m
[PHP Modules]
bcmath
Core
ctype
date
dom
fileinfo
filter
gd
gettext
hash
iconv
json
ldap
libxml
mbstring
mysqli
mysqlnd
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter

[Zend Modules]

接下来的命令如下:

ln -s /usr/local/php-7.2.16/bin/php /usr/local/bin/php
cp /root/php-7.2.16/php.ini-production /usr/local/php-7.2.16/lib/php.ini
cp /usr/local/php-7.2.16/etc/php-fpm.d/www.conf.default /usr/local/php-7.2.16/etc/php-fpm.d/www.conf
cp /usr/local/php-7.2.16/sbin/php-fpm /usr/local/bin/
cp /usr/local/php-7.2.16/etc/php-fpm.conf.default /usr/local/php-7.2.16/etc/php-fpm.conf
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /usr/local/php-7.2.16/php.in
i
groupadd www-data
useradd -g www-data www-data
sed -i 's/user = nobody/user = www-data/g' /usr/local/php-7.2.16/etc/php-fpm.d/www.conf
sed -i 's/^group = nobody/group = www-data/g' /usr/local/php-7.2.16/etc/php-fpm.d/www.conf
systemctl start php-fpm
systemctl enable php-fpm

安装zabbix

此实例使用包安装:LNMP的环境,也就是nginx,mysql,php
安装步骤官方文档

Install and configure Zabbix server for your platform

  • Install Zabbix repository【安装zabbix源】
# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
# yum clean all
  • Install Zabbix server and agent【安装zabbix服务器和客户端】
# yum install zabbix-server-mysql zabbix-agent
  • Install Zabbix frontend【启用 EPEL 源】
# yum install epel-release
  • Install Zabbix frontend packages.【启用 EPEL 源,目的是安装zabbix-web-mysql 和zabbix-nginx-conf】
# yum install zabbix-web-mysql zabbix-nginx-conf

Create initial database【创建初始化数据库】

zabbix2020*PWD为此zabbix数据库的密码

Run the following on your database host.

# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix2020*PWD';
mysql> quit;

On Zabbix server host import initial schema and data. You will be prompted to enter your newly created password.

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Configure the database for Zabbix server【配置zabbix服务器的数据库密码】

Edit file /etc/zabbix/zabbix_server.conf

DBPassword=zabbix2020*PWD

Configure PHP for Zabbix frontend【配置web端口和访问zabbix的ip地址】

Edit file /etc/nginx/conf.d/zabbix.conf, uncomment and set ‘listen’ and ‘server_name’ directives.

listen 80;
server_name example.com 192.168.0.2;

Edit file /etc/php-fpm.d/zabbix.conf, uncomment and set the right timezone for you.【设置东八区时区】

php_value[date.timezone] = Asia/Shanghai

Start Zabbix server and agent processes【设置开机启动和重新启动各项服务】

Start Zabbix server and agent processes and make it start at system boot.

# systemctl restart zabbix-server zabbix-agent nginx php-fpm
# systemctl enable zabbix-server zabbix-agent nginx php-fpm

Configure Zabbix frontend【进入web前端进行初始化设置】

Connect to your newly installed Zabbix frontend: http://server_ip_or_name
Follow steps described in Zabbix documentation: Installing frontend
网页输入ip地址即可进行初始化配置
官网教程

默认用户名和密码:Admin/zabbix

默认的zabbix中文语言会乱码

zabbix的web端没有中文字库,我们最需要把中文字库加上即可

  • Windows电脑上找到Windows系统的字体(以楷体为例子)
C:\Windows\Fonts\simkai.ttf
  • 将此文件上传到服务器目录:/usr/share/zabbix/assets/fonts
scp C:\Windows\Fonts\simkai.ttf root@192.168.0.2:/usr/share/zabbix/assets/fonts/
  • 编辑文件中的两个地方修改为如下即可(不用重启服务):/usr/share/zabbix/include/defines.inc.php
define('ZBX_FONT_NAME', 'simkai');
define('ZBX_GRAPH_FONT_NAME', 'simkai');

日志查看

在启动失败和日常排错的时候,需要通过日志进行问题的处理

zabbix的日志在/var/log/zabbix下

  • zabbix_agentd.log #客户端的日志
  • zabbix_server.log #服务器端的日志
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值