LNMP环境中的Zabbix搭建及使用(CentOS7)
本文参考 https://blog.csdn.net/weixin_36522099/article/details/106930937.
友情提醒:本文比较长,建议先收藏再看哦~
1. zabbix介绍
官网: https://www.zabbix.com/cn/
定义:zabbix 是一个基于 WEB 界面的提供分布式系统监控以及网络监控功能的企业级的开源解决方案。zabbix 能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位解决存在的各种问题。
特点:安装配置简单、学习成本低、支持多语言(包括中文)、免费开源、自动发现问题、分布式监控、web集中管理、无agent监控、用户安全认证、可进行授权、可通过web设置和查看监控结果、email通知。
功能:监控cpu负载、内存使用、磁盘使用、网络状态、端口监视、日志监控、插件开发自定义等。
运行机制:zabbix开源解决方案包括zabbix server 和 zabbix agent。
zabbix server 通过SNMP、Zabbix agent、ping、端口监控等方法提供对远程服务器或者网络状态的监控,以及数据收集功能。可以运行在windows、linux等多个平台上。
zabbix agent安装在被监控的主机上,主要完成对硬件信息和操作系统有关的内存、cpu等信息的收集。然后把收集到的数据发送给server(主动模式)或者是server主动来拿取数据(被动模式)。最后server将数据存放到zabbix数据库,用作web展示监控信息。
2. zabbix部署
2.1 软件包和部署环境
所需软件包
php-7.1.2
libmcrypt-2.5.8
mysql-5.7.1
nginx-1.14
zabbix-3.4.3
# zabbix部署前先检查LNMP架构是否部署完全
[root@master ~]# curl -I http://192.168.164.100/index.php
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Wed, 08 Jul 2020 03:33:04 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.1.24
# 检查nginx是否启动
[root@master ~]# netstat -antup | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9171/ngin : master
# mysql未启动,start一下
[root@master ~]# netstat -antup | grep mysql
# 重新启动mysql
[root@master ~]# /etc/init.d/mysqld start
Starting MySQL SUCCESS!
#查看mysql是否启用
[root@master ~]# netstat -antup | grep mysql
tcp6 0 0 :::3306 :::* LISTEN 17877/mysqld
# 设置mysql开机自启
[root@master ~]# chkconfig mysqld on
#查看php是否正常启动
[root@master ~]# netstat -antup | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 9143/php-fpm: maste
2.2 导入zabbix数据库
# 新建zabbix数据库,zabbix用户,并授予all的权限
[root@master ~]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.19 Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database zabbix;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
下载zabbix3.4.3的源码包
下载地址:点击下载zabbix
[root@master src]# cd /usr/local/src/
[root@master src]# tar xzvf zabbix-3.4.3.tar.gz
[root@master src]# cd /usr/local/src/zabbix-3.4.3/database/mysql/
[root@master mysql]# ll
total 4860
-rw-r--r--. 1 nginx nginx 2861223 Oct 17 2017 data.sql
-rw-r--r--. 1 nginx nginx 1978341 Oct 17 2017 images.sql
-rw-r--r--. 1 nginx nginx 134738 Oct 17 2017 schema.sql
[root@master mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@master mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@master mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
2.3 源码包安装zabbix
[root@master ~]# groupadd zabbix
[root@master ~]# useradd -s /sbin/nologin -g zabbix zabbix
#下载并安装依赖环境
[root@master ~]# yum install -y net-snmp-devel libevent libevent-devel
#编译
# --prefix= #指定路径
# --enable-server #Server 支持
# --enable-agent #支持Zabbix 客户端
# --with-mysql #指定MySql库可以选择自定路径mysql_config,mysql_config 是命令,用于编译 mysql 客户端程序
# --with-net-snmp #支持snmp协议,需要安装net-snmp-devel包
# --with-libcurl #支持CURL功能,libcurl主要功能就是用不同的协议连接不同的服务
器
# --libcurl #当前支持的协议有http、https、ftp、gopher、telent、dict、file和ldap 协议
[root@master zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/var/lib/mysql/bin/mysql_config --with-net-snmp --with-libcurl
# 这里无需make
# 编译安装
[root@master zabbix-3.4.3]# make install
2.4 配置服务端zabbix_server
# 配置zabbix_server.conf文件
# 日志文件为LogFile=/tmp/zabbix_server.log
[root@master zabbix-3.4.3]# vim /usr/local/zabbix/etc/zabbix_server.conf
85 DBHost=localhost #主机名
95 DBName=zabbix #授权数据库
111 DBUser=zabbix #授权数据库用户
119 DBPassword=zabbix #授权数据库用户的密码
2.5 配置服务端zabbix_agent
# 配置zabbix_agentd.conf
# 日志文件LogFile=/tmp/zabbix_agentd.log
[root@master zabbix-3.4.3]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
93 Server=127.0.0.1 # 服务器IP(被动:客户端允许服务端获取数据)
134 ServerActive=127.0.0.1 # 服务器IP(主动:客户端主动发送数据给服务端)
145 Hostname=Zabbix server # 监控主机名
280 UnsafeUserParameters=1 #支持自定义脚本
2.6 启动zabbix
# 此时启动zabbix服务时报错
[root@master zabbix-3.4.3]# /usr/local/zabbix/sbin/zabbix_server
/usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
[root@master zabbix-3.4.3]# vim /etc/ld.so.conf
# 在最后一行添加以下路径
/var/lib/mysql/lib/