返回列表 发帖

CentOS8编译安装Zabbix4.4.5

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


安装依赖软件包:
yum -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*


下载Zabbix4.4.5的软件安装包: https://pan.baidu.com/s/1EJuZZWxMG9n0U_DvaMg89g    提取码:07wv


编译安装Zabbix:
tar -zxvf zabbix-4.4.5.tar.gz
cd zabbix-4.4.5
./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


创建库zabbix:
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_general_ci;


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

笺注:库zabbix的字符集为 utf8_general_ci 



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

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


授权zabbix@localhost对库zabbix有完全控制的权限,密码:168
MariaDB [zabbix]> grant all privileges on zabbix.* to zabbix@localhost identified by '168';


查看本地数据库用户zabbix@localhost的权限:
MariaDB [zabbix]> 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 /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网站根目录:
mkdir -p /var/www/html/zabbix/
cp -r /root/zabbix-4.4.5/frontends/php/* /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


如果提示其他错误,可以修改PHP的配置文件:
图片1.png


这里只需要输入数据库用户zabbix@localhost的密码:
图片2.png


这里保持默认:
图片3.png


图片4.png


来到这里会有问题:
图片5.png

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

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


来到这里,点击“Finish”按键就完成安装了:
图片6.png



Admin的登录密码默认为:zabbix
图片9.png


Zabbix的主页:
图片10.png


默认是英文的:
Administration》Users》Admin:
图片11.png


设置用户Admin的语言为中文:
图片12.png
笺注:还要点击本页面底下的“Update”按键。


用户Admin的语言变为中文了:
图片13.png



配置》主机:
图片14.png


默认就会监控Zabbix本机(Zabbix server):
图片15.png


Zabbix本机自带的模板:
图片16.png



查看Zabbix本机的自带图形:(监控项、触发器、图形都来源于所使用的模板)

监测》图形:

Zabbix本机的CPU使用率:
图片17.png

图片18.png

笺注:在这里可以看到图形界面上的中文出现乱码,这是因为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 -lh *.ttc
-rw-r--r-- 1 root root 15M 9月  26 2019 simsun.ttc

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


接着,刷新一下页面就好了:
图片19.png

图片20.png



Zabbix本机的内存使用率:
图片21.png

图片22.png

图片23.png



Zabbix本机的根分区使用情况:
图片24.png

图片25.png

可以看到根分区的大小、已使用量、使用率:
图片26.png



第一块硬盘的读写速度:( nvme0n1: Disk read/write rates )
图片27.png

图片28.png

图片29.png



网卡流量:
图片30.png

图片31.png

图片32.png

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





假如主机的图形迟迟不出现,也可以手动检查一下该主机的自动发现规则:
图片33.png


点击进入:
图片34.png

图片35.png
本页拖下去:
图片36.png





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

在Zabbix服务器使用命令行,测试本机的指定监控TCP端口是否处于侦听状态:
(返回 0 - 未侦听;1 - 正在侦听)

[root@centos8 ~]# systemctl stop mysqld

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k net.tcp.listen[3306]
0


[root@centos8 ~]# systemctl start mysqld

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k net.tcp.listen[3306]
1



[root@centos8 ~]# systemctl stop vsftpd

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k net.tcp.listen[21]
0


[root@centos8 ~]# systemctl start vsftpd

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k net.tcp.listen[21]
1



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

在Zabbix服务器使用命令行,测试本机的指定进程是否处于运行状态:

[root@centos8 ~]# systemctl stop mysqld

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k proc.num[mysqld]
0


[root@centos8 ~]# systemctl start mysqld

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k proc.num[mysqld]
1



[root@centos8 ~]# systemctl stop vsftpd

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k proc.num[vsftpd]
0


[root@centos8 ~]# systemctl start vsftpd

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k proc.num[vsftpd]
1



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

在主机Zabbix server中创建监控项:
自定义名称: check_process_vsftpd
键值: proc.num[vsftpd]
图片37.png
备注:其他地方保持默认,点击页底“添加”按键。



创建触发器:
自定义名称: vsftpd is down on {HOST.IP}
严重性: 一般严重
图片38.png
注释: {HOST.IP} 是预定义变量,即当前主机的IP地址。

插入表达式: ( 监控项 Zabbix server: check_process_vsftpd
图片39.png

自动生成的表达式:(触发器的表达式要用到监控项中的键值)
{Zabbix server:proc.num[vsftpd].last()}=0
图片40.png

本页拖下去:
图片41.png



确认触发器“vsftpd is down on {HOST.IP}”已经创建成功,并处于“已启用”状态:
图片42.png

图片43.png



测试:
[root@centos8 ~]# systemctl stop vsftpd

仪表板会如下图显示:(显示对应触发器的名称)
vsftpd is down on 127.0.0.1
图片44.png

图片45.png



[root@centos8 ~]# systemctl start vsftpd

仪表板的告警(触发器)自动消失:
图片46.png

备注:这种方法可以不用管进程的端口号。





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

给主机Zabbix server添加模板Template App FTP Service
笺注:其实这个模板的原理就是监控TCP 21端口,看这个端口是否能用。

配置》主机》点击主机名称Zabbix server》模板》选择:
图片47.png

图片48.png

图片50.png


确认模板Template App FTP Service添加成功:
图片51.png

笺注:
一台主机可以有多个模板;
主机会继承模板的监控项、触发器、图形等等;




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

模板Template App FTP Service自带的监控项:
名称: FTP service is running
键值: net.tcp.service[ftp]
图片52.png



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

模板Template App FTP Service自带的触发器:(触发器的表达式要用到监控项中的键值)
名称: FTP service is down on {HOST.NAME}
表达式: {Zabbix server:net.tcp.service[ftp].max(#3)}=0
图片53.png
注释: {HOST.NAME} 是预定义变量,即当前主机的名称。

此触发器默认已启用:(可以在这里关闭触发器)
图片54.png



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

模板Template App FTP Service没有对应的图形的,给监控项“FTP service is running”创建图形:
图片55.png

监控项: Zabbix server: FTP service is running        
图片56.png
注释:可以自定义图形的绘画风格、颜色等等。



查看图形“ftp_status_image”:
监测》图形:
图片57.png

图片58.png

图片59.png
注释:
1为UP
0为DOWN



测试:
[root@centos8 ~]# systemctl stop vsftpd

当主机Zabbix server的FTP服务(vsftpd)关闭时,其TCP 21端口就不能用了,仪表板会如下图显示:(显示对应触发器的名称)
FTP service is down on Zabbix server
图片60.png

图片61.png



使用“过滤器”查找主机Zabbix server已经触发了的触发器:(值为问题

配置》主机》点击主机名称Zabbix server》触发器》过滤器:
图片62.png

图片63.png



禁用某个触发器:
图片64.png


触发器禁用后,其状态为“停用的”:
图片65.png


状态为“停用的”的触发器,就不会出现在仪表板上了:
图片66.png



测试:
[root@centos8 ~]# systemctl start vsftpd

当主机Zabbix server的FTP服务(vsftpd)运行时,其TCP 21端口就能用了,仪表板的触发器“FTP service is down on Zabbix server”也就自动消失了:
图片7.png





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

自定义创建Zabbix的键值:

修改Zabbix服务器的Agent配置文件(配置Zabbix本机的客户端):
[root@centos8 ~]# find / -name zabbix_agentd.conf
/root/zabbix-4.4.5/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 variables like '%max_connections%'" |grep "max_connections"|awk '{print $2}' |tail -1

UserParameter=command_3,/bin/bash /scripts/xx.sh

如下图:(截图有省略)
图片8.png


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


获取本机的根分区使用率:
[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
151
[root@centos8 ~]#



Zabbix获取远程主机的MySQL的最大连接数的Shell脚本:
[root@centos8 ~]# cat /scripts/xx.sh
#!/bin/bash
mysql -u"zhuohua" -p"1234" -h"192.168.168.130" -e"show variables like '%max_connections%'" |tail -1 |awk '{print $2}'
[root@centos8 ~]#

[root@centos8 ~]# chmod a+x /scripts/xx.sh
[root@centos8 ~]#
[root@centos8 ~]# ll /scripts/xx.sh
-rwxr-xr-x 1 root root 130 8月  15 13:09 /scripts/xx.sh
[root@centos8 ~]#


获取远程主机的MySQL的最大连接数:
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k command_3
500
[root@centos8 ~]#


笺注:
远程MySQL服务器(IP 192.168.168.130),要先授权远程数据库用户zhuohua@'192.168.168.154'(密码1234),仅仅在使用IP地址192.168.168.154时可以进行访问,对库zabbix有完全控制的权限:
mysql> grant all on zabbix.* to zhuohua@'192.168.168.154' identified by '1234';
Query OK, 0 rows affected (0.00 sec)

mysql>


远程数据库用户zhuohua@'192.168.168.154'的权限:
mysql> show grants for zhuohua@'192.168.168.154';
+----------------------------------------------------------------------------------------------------------------------+
| Grants for zhuohua@192.168.168.154                                                                                   |
+----------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zhuohua'@'192.168.168.154' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' |
| GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zhuohua'@'192.168.168.154'                                                    |
+----------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql>


远程主机的MySQL的最大连接数:
mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 500   |
+-----------------+-------+
1 row in set (0.00 sec)

mysql>

远程主机打开TCP 3306端口,可参考 Zabbix5.0.12_调用Shell脚本监控Linux下的MySQL



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

以防关闭系统时卡死,关机、重启前,最好先关闭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 ~]#





相关文章:
CentOS6.9编译安装Zabbix4.4.5
CentOS8_LAMP_编译安装Zabbix5.0.12
Zabbix使用自编译/预编译Agent监控Oracle Linux6

CentOS8_在Docker中安装Zabbix4.4.5

Oracle Linux6.9安装Cacti
Oracle Linux6.9安装Nagios

Zabbix创建只读用户
CentOS8_通过脚本发送Zabbix告警邮件(使用新浪邮箱的25端口)
Zabbix使用Ping的模板监控主机网络延迟情况

Zabbix调用Python3脚本监控Linux下的Oracle(一)
Zabbix使用Agent监控CentOS6/Redhat6

MySQL的字符集

CentOS8基本命令
CentOS8_vsftpd匿名用户

Python3命令集
CentOS8使用Python3脚本管理MariaDB

备份+还原Zabbix
Zabbix使用模板监控Linux下的MariaDB
Zabbix创建模板监控Linux下的MariaDB
Zabbix调用Python3脚本监控Linux下的MariaDB

Zabbix监控Linux文件是否更改过
Zabbix监控Linux文件是否包含关键字
Zabbix监控Linux目录和文件的大小





#################################
#################################
亲,学习研究也要劳逸结合哦,来我微店逛逛,买点东西好好犒劳犒劳自己和家人吧^_^^_^


苏泊尔电压力锅家用智能5L高压饭煲特价
dianfanbao.png


苏泊尔电磁炉火锅家用智能正品学生电池炉灶特价炒菜
diancilu.png


苏泊尔电蒸锅多功能家用蒸气锅三层大容量电蒸笼蒸锅蒸菜自动断电
dianzhengguo.png

返回列表