Linux云计算架构-基于LAMP架构搭建zabbix4-4-6企业级监控系统

Linux云计算架构-基于LAMP架构搭建zabbix4-4-6企业级监控系统

1. 搭建LAMP环境及安装依赖

# yum快速部署LAMP环境
[root@master ~]# yum install httpd mariadb mariadb-server php php-mysql -y

# 安装zabbix所需php库
[root@master ~]# yum install php-bcmath php-gd php-ldap php-mbstring php-xml -y

# 服务端:zabbix-4.4.6.tar.gz
# 客户端:zabbix-agent-4.4.6-1.el7.x86_64.rpm
# http://repo.zabbix.com/zabbix/4.4/rhel
# http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.6-1.el7.x86_64.rpm
# 以上两个安装包,从网上很容易下载到本地。
# 安装所需的rpm包都在zabbix-4.4.6.tar.gz里
[root@master opt]# ll
总用量 10224
-rw-r--r--. 1 root root 10029701 2月  29 11:54 zabbix-4.4.6.tar.gz
-rw-r--r--. 1 root root   438076 2月  29 11:52 zabbix-agent-4.4.6-1.el7.x86_64.rpm

# 解压zabbix-4.4.6.tar.gz,并以该目录配置一个本地yum源
[root@master ~]# tar xzf /opt/zabbix-4.4.6.tar.gz -C /opt/
[root@master ~]# cd /opt/zabbix4-4-6/
[root@master zabbix4-4-6]# ll
总用量 10036
-rw-r--r--. 1 root root   65788 2月  29 11:52 dejavu-fonts-common-2.33-6.el7.noarch.rpm
-rw-r--r--. 1 root root 1482820 2月  29 11:52 dejavu-sans-fonts-2.33-6.el7.noarch.rpm
-rw-r--r--. 1 root root   10116 2月  29 11:52 fontpackages-filesystem-1.44-8.el7.noarch.rpm
-rw-r--r--. 1 root root   41292 2月  29 11:52 fping-3.10-1.el7.x86_64.rpm
-rw-r--r--. 1 root root  219068 2月  29 11:52 libevent-2.0.21-4.el7.x86_64.rpm
-rw-r--r--. 1 root root  768380 2月  29 11:52 net-snmp-libs-5.7.2-43.el7_7.3.x86_64.rpm
-rw-r--r--. 1 root root  248708 2月  29 11:52 OpenIPMI-2.0.27-1.el7.x86_64.rpm
-rw-r--r--. 1 root root  535796 2月  29 11:52 OpenIPMI-libs-2.0.27-1.el7.x86_64.rpm
-rw-r--r--. 1 root root   16368 2月  29 11:52 OpenIPMI-modalias-2.0.27-1.el7.x86_64.rpm
drwxr-xr-x. 2 root root    4096 2月  29 11:53 repodata
-rw-r--r--. 1 root root  423152 2月  29 11:52 unixODBC-2.3.1-14.el7.x86_64.rpm
-rw-r--r--. 1 root root  438076 2月  29 11:52 zabbix-agent-4.4.6-1.el7.x86_64.rpm
-rw-r--r--. 1 root root  307352 2月  29 11:52 zabbix-get-4.4.6-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 2599260 2月  29 11:52 zabbix-server-mysql-4.4.6-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 3076048 2月  29 11:52 zabbix-web-4.4.6-1.el7.noarch.rpm
-rw-r--r--. 1 root root   10976 2月  29 11:52 zabbix-web-mysql-4.4.6-1.el7.noarch.rpm

# 配置本地yum源,用于安装zabbix的rpm包
[root@master zabbix4-4-6]# vim /etc/yum.repos.d/zabbix.repo
[root@master zabbix4-4-6]# cat /etc/yum.repos.d/zabbix.repo 
[zabbix4-4-6]
name=zabbix4-4-6
baseurl=file:///opt/zabbix4-4-6
enabled=1
gpgcheck=0

2. 安装zabbix4-4-6服务端及本地客户端

# 解决zabbix依赖
[root@master ~]# yum install OpenIPMI OpenIPMI-libs OpenIPMI-modalias unixODBC fping -y

# 安装zabbix服务
# zabbix-server-mysql  服务端
# zabbix-web-mysql    zabbix的web页面
# zabbix-agent         客户端
# zabbix-get           服务端和客户端之间的测试命令
[root@master ~]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get -y
# 启动mariadb数据库,禁用firewall,查看下mariadb是否启动
[root@master ~]# systemctl start mariadb
[root@master ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@master ~]# systemctl stop firewalld && systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@master ~]# netstat -antup | grep mysqld
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      76623/mysqld    
# 配置zabbix数据库
[root@master ~]# mysql -uroot
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye
# 导入zabbix自带的数据
# zcat命令用于不解压就能显示压缩包中的文件
[root@master ~]# zcat /usr/share/doc/zabbix-server-mysql-4.4.6/create.sql.gz | mysql -u zabbix -p zabbix
Enter password:     # 输入zabbix数据库的密码
[root@master ~]# mysql -uzabbix -pzabbix
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zabbix             |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix]> show tables; 
# 有数据表就说明加载进去了
# 修改zabbix服务端配置文件
[root@master ~]# vim /etc/zabbix/zabbix_server.conf
 91 DBHost=localhost    # 数据库主机名
100 DBName=zabbix       # zabbix数据库 
116 DBUser=zabbix       # 数据库用户zabbix
124 DBPassword=zabbix   # zabbix数据库密码

# 修改zabbix在http中的配置文件
[root@master ~]# find / -name zabbix.conf
/etc/httpd/conf.d/zabbix.conf
[root@master ~]# vim /etc/httpd/conf.d/zabbix.conf
  5 Alias /zabbix /usr/share/zabbix    # 快捷访问,真实网站数据目录为/usr/share/zabbix
  6 
  7 <Directory "/usr/share/zabbix">
  8     Options FollowSymLinks
  9     AllowOverride None
 10     Require all granted
 11 
 12     <IfModule mod_php5.c>
 13         php_value max_execution_time 300
 14         php_value memory_limit 128M
 15         php_value post_max_size 16M
 16         php_value upload_max_filesize 2M
 17         php_value max_input_time 300
 18         php_value max_input_vars 10000
 19         php_value always_populate_raw_post_data -1
 20         php_value date.timezone Asia/Shanghai    # 修改时区
 21     </IfModule>
 22 </Directory>
# 监控服务器本身
[root@master ~]# vim /etc/zabbix/zabbix_agentd.conf
 98 Server=127.0.0.1         # zabbix服务器ip
139 ServerActive=127.0.0.1   # zabbix服务器IP(主动模式:客户端主动发送数据给服务端)
150 Hostname=Zabbix server   # 客户端主机名,与web内主机名一致
309 UnsafeUserParameters=1   # 支持自定义脚本
# 重启zabbix服务端和客户端、httpd、mariadb数据库
[root@master ~]# systemctl restart zabbix-server zabbix-agent httpd mariadb
[root@master ~]# systemctl enable zabbix-server zabbix-agent httpd mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

# 发现zabbix服务端没有启动
[root@master ~]# netstat -antup | grep mysqld
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      77326/mysqld        
[root@master ~]# netstat -antup | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      77092/httpd         
[root@master ~]# netstat -antup | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      77095/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      77095/zabbix_agentd 
[root@master ~]# netstat -antup | grep 10051
# 查看zabbix服务端日志,最后记录是停止了,然后报错。
[root@master ~]# tail /var/log/zabbix/zabbix_server.log 
 80718:20200813:221207.699 cannot start LLD manager service: Cannot bind socket to "/var/run/zabbix/zabbix_server_lld.sock": [13] Permission denied.
# 上网搜了,说是selinux的问题。先临时设置为Permissive
[root@master ~]# setenforce 0
[root@master ~]# getenforce
Permissive
# 再次尝试开启,zabbix服务端终于起来了
[root@master ~]# systemctl start zabbix-server
[root@master ~]# netstat -antup | grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      81972/zabbix_server 
tcp        0      0 127.0.0.1:10051         127.0.0.1:57390         TIME_WAIT   -                   
tcp6       0      0 :::10051                :::*                    LISTEN      81972/zabbix_server 
[root@master ~]# systemctl enable zabbix-server

3. 安装zabbix的web界面

输入网址:http://192.168.8.133/zabbix/setup.php
点击下一步
在这里插入图片描述
全都OK
在这里插入图片描述
输入mysql数据库信息
在这里插入图片描述
直接下一步
hijie
确认信息,下一步
在这里插入图片描述
点击完成即可
在这里插入图片描述

登录zabbix web,账号密码为Admin/zabbix
在这里插入图片描述
看到这个界面就表示已经安装好了。
在这里插入图片描述

4. 设置中文和字体

设置中文:
在这里插入图片描述
设置字体:
在这里插入图片描述

# 上传字体文件
[root@master ~]# cd /usr/share/zabbix/assets/fonts/
[root@master fonts]# rz

[root@master fonts]# ll
总用量 11512
lrwxrwxrwx. 1 root root       33 8月  13 21:48 graphfont.ttf -> /etc/alternatives/zabbix-web-font
-rw-r--r--. 1 root root 11787328 8月   9 2018 simkai.ttf
[root@master fonts]# chown zabbix:zabbix simkai.ttf
[root@master fonts]# vim /usr/share/zabbix/include/defines.inc.php

# 修改zabbix默认使用的字体
[root@master fonts]# vim /usr/share/zabbix/include/defines.inc.php
  67 define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name
 111 define('ZBX_FONT_NAME', 'simkai');

# 重启httpd服务
[root@master fonts]# systemctl restart httpd.service

刷新一下zabbix web
在这里插入图片描述

5. 监控远程主机

# 上传zabbix客户端rpm包
# 上传zabbix客户端rpm包
[root@client ~]# ll /opt/zabbix-agent-4.4.6-1.el7.x86_64.rpm 
-rw-r--r--. 1 root root 438076 8月  13 22:49 /opt/zabbix-agent-4.4.6-1.el7.x86_64.rpm
# 安装zabbix客户端
[root@client ~]# rpm -ivh /opt/zabbix-agent-4.4.6-1.el7.x86_64.rpm
# 修改客户端配置文件
[root@client ~]# vim /etc/zabbix/zabbix_agentd.conf 
98 Server=192.168.8.133          # 服务端IP
139 ServerActive=192.168.8.133   # 服务端IP
150 Hostname=192.168.8.152       # 客户端主机名

# 启动zabbix客户端
[root@client ~]# systemctl restart zabbix-agent.service
[root@client ~]# systemctl enable zabbix-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.

在zabbix web配置客户端主机
添加主机:
在这里插入图片描述
填写远程主机信息:
在这里插入图片描述
选择监控模板“Template OS Linux by Zabbix agent”
在这里插入图片描述
发现有报错:
在这里插入图片描述

# 解决报错
Received empty response from Zabbix Agent at [192.168.8.152]. Assuming that agent dropped connection because of access permissions
# 查看下zabbix客户端进程,正常路径是/usr/sbin/zabbix_agentd的,多出来一个/usr/local/zabbix/sbin/zabbix_agentd,原来是之前在这台主机上用源码包装过一次zabbix客户端,导致装的zabbix4-4-6的客户端无法被访问。
[root@client ~]# ps -ef | grep zabbix

在这里插入图片描述
以下方式停掉的只是rpm包安装的zabbix,对于源码包的zabbix还在。
在这里插入图片描述
停掉源码包安装的zabbix
在这里插入图片描述
重新启动下rpm包安装的zabbix
在这里插入图片描述
刷新下zabbix web,可以看到已经可以正常监控了。
在这里插入图片描述

6. 监控zabbix客户端磁盘剩余空间小于5G自动告警

从下图可以看到,磁盘容量总共有17G,已用4.88G。并且使用饼图展示占比。如果想知道剩余磁盘空间的情况,并且对其进行监控,然后设定一个阈值,当磁盘空间低于这个阈值就会主动告警。这种情况要怎么设置呢?
在这里插入图片描述
①找到客户端使用的模板
在这里插入图片描述
②创建监控项
我这里仅为主机192.168.8.152创建监控项;【在生产中,可为模板创建监控项,然后多台远程客户端主机使用同一模板】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

vfs.fs.size[/,free]
# 可以使用以下方法查看键值是否可用
[root@master ~]# zabbix_agentd -p | grep vfs.fs.size
vfs.fs.size[/,free]                           [u|13840769024]
# 看能否获取到对应远程主机的对应键值的数据
[root@master ~]# zabbix_get -s 192.168.8.152 -p 10050 -k vfs.fs.size[/,free]
13001203712

③创建监控项对应的图形
在这里插入图片描述
为图形添加监控项
在这里插入图片描述
在这里插入图片描述
④查看监控图形数据
可以看到,已经可以监控远程客户端的剩余磁盘空间了。
在这里插入图片描述
⑤创建触发器用于告警
这里也是只为192.168.8.152创建触发器。
在这里插入图片描述
在这里插入图片描述
设定触发表达式:
在这里插入图片描述
设定恢复表达式:
在这里插入图片描述
触发器设置如下:
点击添加:
在这里插入图片描述
查看触发器情况:
在这里插入图片描述
总结:根据键值自定义监控项,为监控项创建图形展示,为监控项创建触发器告警。

7. 使用grafana美化zabbix页面

参考grafana美化zabbix监控
一点心得
搭建zabbix,要基于LAMP或者LNMP环境,并且zabbix与LAMP或LNMP架构最好都保持一致,即都用源码包安装或者都用rpm包安装。在生产环境中,对于没有部署mysql数据库或者web服务的服务器,用rpm包安装环境LAMP或LAMP环境,然后直接使用rpm包安装zabbix是比较高效快速的。而对于已经包含mysql数据库或者web服务,就要看mysql数据库和web服务是通过什么方式安装的了,如果是用源码包安装的,那相应的LAMP和LNMP架构和zabbix就得用源码包安装了。
以上就是zabbix4-4-6的部署及使用。感谢大家的关注!!!

猜你喜欢

转载自blog.csdn.net/weixin_36522099/article/details/107993117