文章目录
Linux云计算架构-zabbix企业级监控部署及使用(1)-zabbix部署
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展示监控信息。
两点解读:
①zabbix支持多种网络方式下的监控,可以通过分布式的部署和安装监控代理zabbix,通过C/S模式采集数据,通过B/S模式展示数据。默认agent监控端口是10050。
②服务端要安装zabbix_server和zabbix_agent两个服务,而客户端只需安装zabbix_agent一个服务。
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环境,因为zabbix是通过php页面展示的。
# 我这里提前部署好了,不懂的可以看我的博客。
[root@master ~]# curl -I http://192.168.8.116/index.php
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Mon, 22 Jun 2020 11:37:38 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.1.24
# 检查下LNMP是否正常运行,本来mysql没有启动,现在启动了。
[root@master ~]# netstat -antup | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9459/nginx: master
# mysql未启动,start一下
[root@master ~]# netstat -antup | grep mysql
[root@master ~]# /etc/init.d/mysqld start
Starting MySQL SUCCESS!
[root@master ~]# netstat -antup | grep mysql
tcp6 0 0 :::3306 :::* LISTEN 11552/mysqld
[root@master ~]# netstat -antup | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 9405/php-fpm: maste
# 设置mysql开机自启
[root@master ~]# chkconfig mysqld on
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 4
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.01 sec)
mysql> exit
Bye
# 导入zabbix源码包中自带的脚本
[root@master ~]# cd /usr/local/src/
[root@master ~]# tar xzvf zabbix-3.4.3.tar.gz
[root@master ~]# ll /usr/local/src/zabbix-3.4.3/database/mysql/
总用量 4860
-rw-r--r--. 1 abong abong 2861223 10月 17 2017 data.sql
-rw-r--r--. 1 abong abong 1978341 10月 17 2017 images.sql
-rw-r--r--. 1 abong abong 134738 10月 17 2017 schema.sql
[root@master ~]# cd /usr/local/src/zabbix-3.4.3/database/mysql/
[root@master mysql]# ll
总用量 4860
-rw-r--r--. 1 abong abong 2861223 10月 17 2017 data.sql
-rw-r--r--. 1 abong abong 1978341 10月 17 2017 images.sql
-rw-r--r--. 1 abong abong 134738 10月 17 2017 schema.sql
# 按顺序:schema.sql images.sql data.sql
[root@master mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@master mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@master mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
2.3 源码包安装zabbix
# 创建用户zabbix运行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
# 编译
[root@master ~]# cd /usr/local/src/zabbix-3.4.3/
[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
# --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 协议
# 这里无需make
# 编译安装
[root@master zabbix-3.4.3]# make install
2.4 配置服务端zabbix_server
# 配置zabbix_server.conf文件
# 日志文件LogFile=/tmp/zabbix_server.log
[root@master ~]# 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服务器
# 日志文件LogFile=/tmp/zabbix_agentd.log
[root@master ~]# 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 ~]# /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 ~]# vim /etc/ld.so.conf
/var/lib/mysql/lib/
[root@master ~]# ll /var/lib/mysql/lib/
总用量 557116
-rw-r--r--. 1 root root 20434288 6月 20 17:38 libmysqlclient.a
lrwxrwxrwx. 1 root root 20 6月 20 17:49 libmysqlclient.so -> libmysqlclient.so.20
lrwxrwxrwx. 1 root root 24 6月 20 17:49 libmysqlclient.so.20 -> libmysqlclient.so.20.3.6
-rwxr-xr-x. 1 root root 9500456 6月 20 17:48 libmysqlclient.so.20.3.6
-rw-r--r--. 1 root root 540501692 6月 20 17:46 libmysqld.a
-rw-r--r--. 1 root root 40838 6月 20 17:26 libmysqlservices.a
drwxr-xr-x. 2 root root 28 6月 20 17:49 pkgconfig
drwxr-xr-x. 3 root root 4096 6月 20 17:49 plugin
# 让库文件搜索路径立即生效
[root@master ~]# ldconfig
# 设置开机自启
[root@master ~]# echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local
# 再次启动
[root@master ~]# /usr/local/zabbix/sbin/zabbix_server
# 查看服务的监听情况
[root@master ~]# netstat -antup | grep zabbix
[root@master ~]# netstat -antup | grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 20497/zabbix_server
# 如果zabbix服务还是没起来,那就查看下日志进行排错。
# 启动agent
[root@master ~]# /usr/local/zabbix/sbin/zabbix_agentd
# 看到如下结果,表示zabbix的server和agent都正常开启了。
[root@master ~]# netstat -antup | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 20600/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 20497/zabbix_server
2.7 查看zabbix web
# 查看下nginx的网站数据目录下的文件情况
# 有文件,就删除掉。
[root@master ~]# ll /usr/local/nginx/html/
总用量 12
-rw-r--r--. 1 root root 537 6月 20 14:43 50x.html
-rw-r--r--. 1 root root 612 6月 20 14:43 index.html
-rw-r--r--. 1 root root 20 6月 20 18:44 index.php
[root@master ~]# rm -f /usr/local/nginx/html/*
# 加载zabbix页面目录
[root@master ~]# cp -r /usr/local/src/zabbix-3.4.3/frontends/php/* /usr/local/nginx/html/
# 配置nginx支持index.php
[root@master ~]# vim /usr/local/nginx/conf/nginx.conf
43 location / {
44 root html;
45 index index.php index.html index.htm;
46 }
# 重启nginx服务、zabbix_server服务、php-fpm服务
# 添加了nginx环境变量的话,用 nginx -s reload 也行
[root@master ~]# /usr/local/nginx/sbin/nginx -s reload
[root@master ~]# /usr/local/zabbix/sbin/zabbix_server
[root@master ~]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
# 清空防火墙
[root@master ~]# iptables -F
# 看到以下界面,就说明服务已经开启了,但是还得配置web界面