返回列表 发帖

CentOS8_LAMP_编译安装Zabbix5.0.12

笺注:这是在 CentOS8安装LAMP+phpMyAdmin 的基础上进行的。


安装依赖软件包:
dnf -y install gcc gcc-c++ wget autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel make

dnf -y install net-snmp-devel libxml2-devel libevent libevent-devel libcurl mysql-devel curl-devel php-ldap *bcmath*


下载Zabbix5.0.12的软件安装包:https://pan.baidu.com/s/1TIjrsO6Yn9BvClMkAvkNFg,提取码:txfs


编译安装Zabbix:
tar -zxvf zabbix-5.0.12.tar.gz
cd zabbix-5.0.12
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make install



配置数据库:( 使用数据库管理员root@localhost )
图片1.png
2021-10-9 23:24



创建一个库zabbix:
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.001 sec)


查看库zabbix的字符集:
MariaDB [(none)]> show create database zabbix;
+----------+----------------------------------------------------------------------------------+
| Database | Create Database                                                                  |
+----------+----------------------------------------------------------------------------------+
| zabbix   | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */ |
+----------+----------------------------------------------------------------------------------+
1 row in set (0.000 sec)

笺注:库zabbix的字符集为 utf8_bin



切换到库zabbix:
MariaDB [(none)]> use zabbix;
Database changed

导入Zabbix的表:
MariaDB [zabbix]> source /root/zabbix-5.0.12/database/mysql/schema.sql;
MariaDB [zabbix]> source /root/zabbix-5.0.12/database/mysql/images.sql;
MariaDB [zabbix]> source /root/zabbix-5.0.12/database/mysql/data.sql;


授权数据库用户zabbix@localhost对库zabbix有完全控制的权限,密码:168
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '168';
Query OK, 0 rows affected (0.001 sec)


查看本地数据库用户zabbix@localhost的权限:
MariaDB [(none)]> show grants for zabbix@localhost;
+---------------------------------------------------------------------------------------------------------------+
| Grants for zabbix@localhost                                                                                   |
+---------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY PASSWORD '*242E46A1E8D30FE06F7CE37B55BFC25BA981D70C' |
| GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zabbix'@'localhost'                                                    |
+---------------------------------------------------------------------------------------------------------------+
2 rows in set (0.001 sec)



创建系统用户zabbix:
useradd -s /sbin/nologin zabbix

创建Zabbix的日志存放目录:
mkdir -p /usr/local/zabbix/logs

更改目录的属主、属组:
chown -R zabbix:zabbix /usr/local/zabbix



配置Zabbix本机的客户端:
[root@centos8 ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
修改:
PidFile=/usr/local/zabbix/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf


配置Zabbix本机的服务端:
[root@centos8 ~]# vi /usr/local/zabbix/etc/zabbix_server.conf
修改:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=168
DBSocket=/var/lib/mysql/mysql.sock
Timeout=4
LogSlowQueries=3000
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf

备注:
[root@centos8 ~]# find / -name mysql.sock
/var/lib/mysql/mysql.sock



启动Zabbix本机的客户端和服务端:
/usr/local/zabbix/sbin/zabbix_agentd
/usr/local/zabbix/sbin/zabbix_server


开机自动启动Zabbix本机的客户端和服务端:
echo '/usr/local/zabbix/sbin/zabbix_agentd' >> /etc/rc.local
echo '/usr/local/zabbix/sbin/zabbix_server' >> /etc/rc.local
chmod a+x /etc/rc.d/rc.local


检测Zabbix本机的客户端有没有在运行:(在运行时)
[root@centos8 ~]# ps -ef |grep zabbix_agentd |grep -v grep > /dev/null && echo $?
0
[root@centos8 ~]#

检测Zabbix本机的服务端有没有在运行:(在运行时)
[root@centos8 ~]# ps -ef |grep zabbix_server |grep -v grep > /dev/null && echo $?
0
[root@centos8 ~]#



复制Zabbix的Web应用程序至Apache网站根目录:
[root@centos8 ~]# mkdir -p /var/www/html/zabbix/
[root@centos8 ~]# cp -r /root/zabbix-5.0.12/ui/* /var/www/html/zabbix/



修改Apache的默认首页文件:
[root@centos8 ~]# vi /etc/httpd/conf/httpd.conf
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

修改为:
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>


重启Apache:
[root@centos8 ~]# systemctl restart httpd



修改PHP的配置文件:(这里不修改的话,在Web部分安装时会失败的)
[root@centos8 ~]# vi /etc/php.ini
修改:
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
date.timezone = Asia/Shanghai

追加:
extension=bcmath.so


重启php-fpm:
[root@centos8 ~]# systemctl restart php-fpm





#########

在Windows客户端进行Web部分的安装:(建议使用Frefox浏览器)
http://192.168.168.154/zabbix/
图片2.png
2021-10-9 23:29



如果提示其他错误,可以修改PHP的配置文件:
图片3.png
2021-10-9 23:30



这里只需要输入数据库用户zabbix@localhost的密码,再点击“Next step”:
图片4.png
2021-10-9 23:30



这里直接点击“Next step”:
图片5.png
2021-10-9 23:30



这里直接点击“Next step”:
图片6.png
2021-10-9 23:31



来到这里会有问题:
图片7.png
2021-10-9 23:31


解决方法:
1. 下载文件;
2. 把文件复制到指定位置:
[root@centos8 ~]# cp zabbix.conf.php /var/www/html/zabbix/conf/zabbix.conf.php

3.点击本页面底下的“Finish”按键。



来到这里,点击“Finish”按键就完成安装了:
图片8.png
2021-10-9 23:32




Admin的登录密码默认为:zabbix
图片9.png
2021-10-9 23:32



Zabbix的主页:
图片10.png
2021-10-9 23:32



默认是英文的:
Administration》Users》Admin:
图片11.png
2021-10-9 23:35



设置用户Admin的语言为中文:
图片12.png
2021-10-9 23:35



用户Admin的语言变为中文了:
图片13.png
2021-10-9 23:36




配置》主机:
默认就会监控Zabbix本机(Zabbix server):
图片14.png
2021-10-9 23:36



Zabbix本机自带的模板:( Template App Zabbix Server, Template OS Linux by Zabbix agent )
图片15.png
2021-10-9 23:42



查看Zabbix本机的自带图形:(监控项、触发器、图形都来源于所使用的模板)
监测》主机》左击主机名称Zabbix server》图形:
图片16.png
2021-10-9 23:42


选择时间范围:
图片17.png
2021-10-9 23:42


使用“过滤器”,选择显示的图形:(默认会显示所有图形)
图片18.png
2021-10-9 23:43


图片1.png
2022-8-16 13:28



图片21.png
2021-10-9 23:55


笺注:在这里可以看到图形界面上的中文出现乱码,这是因为Zabbix自身对中文简体的支持不完善,需要使用新的字体进行替换:
[root@centos8 ~]# find /var/www/html/ -name "*.ttf"
/var/www/html/zabbix/assets/fonts/DejaVuSans.ttf

下载字体:https://pan.baidu.com/s/1-ThlwfsgLwDBPyQ076BT0g   提取码:07a9

手动上传新的字体:
[root@centos8 ~]# ls *.ttc
simsun.ttc

[root@centos8 ~]# mv -f simsun.ttc /var/www/html/zabbix/assets/fonts/DejaVuSans.ttf


接着,刷新一下页面就好了:

Zabbix本机的进程数:
图片22.png
2021-10-9 23:56


图片23.png
2021-10-9 23:56



Zabbix本机的网卡流量:
图片24.png
2021-10-9 23:57


图片25.png
2021-10-9 23:57

单位:
bps: 比特/秒
Kbps: 千比特/秒
Mbps: 兆比特/秒


Zabbix本机的CPU使用率:
图片26.png
2021-10-9 23:57


图片27.png
2021-10-9 23:58



Zabbix本机的内存使用率:
图片28.png
2021-10-9 23:58


图片29.png
2021-10-9 23:58



Zabbix本机的根分区使用情况:
图片30.png
2021-10-9 23:58


可以看到根分区的大小、已使用量、使用率:
图片31.png
2021-10-9 23:59



Zabbix本机的第一块硬盘的读写速度:( nvme0n1: Disk read/write rates)
图片32.png
2021-10-9 23:59


图片33.png
2021-10-9 23:59




假如主机的图形迟迟不出现,也可以手动检查一下该主机的自动发现规则:
配置》主机》选择主机》自动发现:
图片34.png
2021-10-9 23:59


图片35.png
2021-10-10 00:00






查看Zabbix本机的触发器:
图片36.png
2021-10-10 00:00


在“触发器”里使用“过滤器”:
图片2.png
2022-8-16 13:31


根据触发器名称里的关键字查找某个触发器:
图片37.png
2021-10-10 00:00


图片3.png
2022-8-16 13:32



模板Template OS Linux by Zabbix agent默认自带服务器重启的触发器:
{HOST.NAME} has been restarted (uptime < 10m)
图片38.png
2021-10-10 00:01

注释:
{HOST.NAME} 是预定义变量,即当前主机的名称;
默认的严重性为“警告”;


把严重性更改为“严重”:
图片4.png
2022-8-16 13:32


此触发器默认已启用:(可以在这里关闭触发器)
图片5.png
2022-8-16 13:33




测试一下以上的触发器:

以防关闭系统时卡死,关机、重启前,最好先关闭Zabbix所有相关的进程:
[root@centos8 ~]# pkill -9 -U zabbix
[root@centos8 ~]#


检测Zabbix本机的客户端有没有在运行:(没有运行时)
[root@centos8 ~]# ps -ef |grep zabbix_agentd |grep -v grep > /dev/null && echo $?
[root@centos8 ~]#

检测Zabbix本机的服务端有没有在运行:(没有运行时)
[root@centos8 ~]# ps -ef |grep zabbix_server |grep -v grep > /dev/null && echo $?
[root@centos8 ~]#


重启服务器:
[root@centos8 ~]# reboot



监测》仪表板:
当主机Zabbix server重启后,仪表板会如下图显示:(显示对应触发器的名称)
Zabbix server has been restarted (uptime < 10m)
图片6.png
2022-8-16 13:36


图片7.png
2022-8-16 13:36






#############
#############

自定义创建Zabbix的键值:

修改Zabbix服务器的Agent配置文件(配置Zabbix本机的客户端):
[root@centos8 ~]# find / -name zabbix_agentd.conf
/root/zabbix-5.0.12/conf/zabbix_agentd.conf
/usr/local/zabbix/etc/zabbix_agentd.conf


[root@centos8 ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf

# UnsafeUserParameters=0
修改为:(启用该功能)
UnsafeUserParameters=1

接着插入:
UserParameter=command_1,df -hl |grep /$ |awk '{print $5}' |awk -F% '{print $1}'

UserParameter=command_2,mysql -u"zabbix" -p"168" -h"localhost" -e"show status like 'threads_connected'" |grep "Threads_connected" |awk '{print $2}'

如下图:(截图有省略)
图片8.png
2022-8-16 13:37



保存好配置文件后,重启一下Zabbix本机的客户端和服务端:
pkill -9 -U zabbix
/usr/local/zabbix/sbin/zabbix_agentd
/usr/local/zabbix/sbin/zabbix_server


获取本机的根分区使用率:
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k command_1
6
[root@centos8 ~]#


获取本机的MariaDB的当前打开的连接数:
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k command_2
26
[root@centos8 ~]#





###

在库zabbix中创建表、插入测试的数据:
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]>
MariaDB [zabbix]> Create table Table_1(Name varchar(20),Age tinyint);
Query OK, 0 rows affected (0.043 sec)

MariaDB [zabbix]>
MariaDB [zabbix]> INSERT into Table_1 (Name,Age) values ('Zhuohua',8);
Query OK, 1 row affected (0.001 sec)

MariaDB [zabbix]>
MariaDB [zabbix]> INSERT into Table_1 (Name,Age) values ('Python',3);
Query OK, 1 row affected (0.001 sec)

MariaDB [zabbix]>



获取SQL语句执行后的返回值的Shell脚本:
[root@centos8 ~]# cat /scripts/xx.sh
#!/bin/bash
mysql -u"zabbix" -p"168" -h"localhost" -sN -e"Select Age from zabbix.Table_1 where Name = 'Zhuohua'"
[root@centos8 ~]#

设置脚本权限:
[root@centos8 ~]# chmod a+x /scripts/xx.sh
[root@centos8 ~]#
[root@centos8 ~]# ll /scripts/xx.sh
-rwxr-xr-x 1 root root 113 8月  16 10:25 /scripts/xx.sh
[root@centos8 ~]#



获取SQL语句执行后的返回值的Shell脚本:
[root@centos8 ~]# cat /scripts/yy.sh
#!/bin/bash
mysql -u"zabbix" -p"168" -h"localhost" -sN -e"Use zabbix;Select Age from Table_1 where Name = 'Python'"
[root@centos8 ~]#

设置脚本权限:
[root@centos8 ~]# chmod a+x /scripts/yy.sh
[root@centos8 ~]#
[root@centos8 ~]# ll /scripts/yy.sh
-rwxr-xr-x 1 root root 116 8月  16 10:25 /scripts/yy.sh
[root@centos8 ~]#



再次修改Zabbix服务器的Agent配置文件:
[root@centos8 ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf

接着插入:
UserParameter=command_3,/bin/bash /scripts/xx.sh

UserParameter=command_4,/bin/bash /scripts/yy.sh

如下图:(截图有省略)
图片9.png
2022-8-16 13:40



保存好配置文件后,重启一下Zabbix本机的客户端和服务端:
pkill -9 -U zabbix
/usr/local/zabbix/sbin/zabbix_agentd
/usr/local/zabbix/sbin/zabbix_server


Zabbix服务器获取SQL语句执行后的返回值:
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k command_3
8
[root@centos8 ~]#

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k command_4
3
[root@centos8 ~]#





###

在库zabbix的表Table_1中更改数据:
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]>
MariaDB [zabbix]> Update Table_1 set Age = 18 where Name = 'Zhuohua';
Query OK, 1 row affected (0.002 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [zabbix]>
MariaDB [zabbix]> Select Age from zabbix.Table_1 where Name = 'Zhuohua';
+------+
| Age  |
+------+
|   18 |
+------+
1 row in set (0.000 sec)

MariaDB [zabbix]>


Zabbix服务器再次获取SQL语句执行后的返回值:
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k command_3
18
[root@centos8 ~]#





相关文章:
CentOS8编译安装Zabbix4.4.5
CentOS8_LNMP_编译安装Zabbix5.0.12

MySQL的字符集
Zabbix5.0.12_通过脚本发送Zabbix告警邮件(使用126邮箱的465端口)

Zabbix5.0.12_使用Agent监控CentOS6(自编译)
Zabbix5.0.12_使用Agent监控CentOS7(RPM包)

Zabbix5.0.12_调用Shell脚本监控Linux下的MySQL
Zabbix5.0.12_使用Ping的模板监控主机网络延迟情况

返回列表