CentOS部署Zabbix_6.0 LTS

一、前言

系统版本:CentOS Linux release 8.2.2004 (Core)

说明:CentOS-7、CentOS-8部署方法一样,区别el7、el8安装包,我这里用的是8.2系统。

二、准备安装包

说明:因为我的是专网设备,不能访问外网,需要在可连接外网的虚拟机上汇集安装包,在上传到专网设备部署。如果你们的设备可以访问外网,可直接使用官方的repo文件进行安装。如果情况和我相同,虚拟机上安装的操作系统要和线上设备的系统一致。

CentOS官网镜像:https://mirror.nsc.liu.se/centos-store/

zabbix官网源:https://repo.zabbix.com/zabbix/

以下在可连接外网的虚拟机上操作:

shell> rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm         下载官方repo文件

shell> yum clean all && yum makecache

shell> mkdir /root/zabbix     创建一个目录,存放zabbix安装包

下载安装包

shell> yum install -y zabbix-server-mysql.x86_64 zabbix-agent.x86_64 zabbix-web-mysql.noarch zabbix-apache-conf.noarch zabbix-sql-scripts.noarch zabbix-selinux-policy.x86_64 zabbix-get.x86_64 --downloadonly --downloaddir=/root/zabbix/

shell> cp /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX /root/zabbix/    复制zabbix key文件

shell> tar -zcvf zabbix6.0_el8.tar.gz zabbix/         打包,并上传到专网设备

三、安装数据库

以下在专网设备上操作(线上环境)

说明:数据库可自行选择MySQL或MariaDB。我这里选择MySQL-8.0.28版本,采用二进制方式安装。

MySQL官网下载地址:https://downloads.mysql.com/archives/community/

下载好,并上传到服务器(如果是Xshell工具,可直接将安装包拖入到窗口。拖不上去yum install -y lrzsz.x86_64安装完重新拖入)

shell> tar -xvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz -C /usr/local/

shell> mv /usr/local/mysql-8.0.28-linux-glibc2.12-x86_64 /usr/local/mysql8        改个名

shell> useradd -M mysql -s /sbin/nologin         创建MySQL系统用户(不可shell登录)

shell> mkdir -p /mysql/{mysql-data,mysql-log}       创建数据目录

shell> mkdir /run/mysqld          创建mysql-pid文件目录

shell> chown -R mysql.mysql /mysql/ && chown -R mysql.mysql /run/mysqld/

属主属组改为mysql,让mysql对这些目录有足够的权限

shell> vim /etc/my.cnf     创建配置文件,二进制安装没有该文件,需要手动创建

[mysqld]
datadir=/mysql/mysql-data
socket=/mysql/mysql-data/mysql.sock
log-error=/mysql/mysql-log/mysqld.log
pid-file=/run/mysqld/mysqld.pid

shell> cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysqld     复制启动文件

shell> vim /etc/init.d/mysqld

初始化数据库

shell> cd /usr/local/mysql8/bin/

shell> ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql8 --datadir=/mysql/mysql-data

shell> vim /etc/profile      添加环境变量

# MySQL
export MYSQL_HOME=/usr/local/mysql8
export PATH=$PATH:$MYSQL_HOME/bin

shell> source /etc/profile

shell> /etc/init.d/mysqld start

已成功启动

shell> cat /mysql/mysql-log/mysqld.log | grep -i 'password'      查看root用户初始密码

shell>  mysql -u root -p

登录报错:error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory找不到 libtinfo.so.5这个文件

shell> yum install -y ncurses-compat-libs

安装好以后报错,找不到sock套接字文件

shell> ln -s /mysql/mysql-data/mysql.sock /tmp/       执行完成后重新登录MySQL

mysql> alter user 'root'@'localhost' identified by '新密码';      修改root用户密码(默认不支持123456这种简单的密码,线上环境不建议改密码复杂策略)

为zabbix创建数据库和用户

mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;

mysql> create user 'zabbix'@'%' identified with mysql_native_password by '密码';

mysql> grant all privileges on zabbix.* to 'zabbix'@'%';

mysql> flush privileges;

说明:MySQL8.0开始默认使用caching_sha2_password验证插件,需要改为mysql_native_password验证插件,否则zabbix连不上数据库。而且不支持grant语句同时创建用户和授权,需要先创建用户在授权

加入开机自启

shell> chkconfig --add /etc/init.d/mysqld

shell> chkconfig --level 345 mysqld on

shell> /etc/init.d/mysqld restart

到这里数据库的安装和配置已基本完成

四、安装zabbix

将汇集好的安装包上传到专网设备中,做成repo源   (当然也可以rpm来安装) 

shell> tar -zxvf zabbix6.0_el8.tar.gz -C /media/         解压路径自定义

shell> yum install -y createrepo_c.x86_64

shell> createrepo /media/zabbix/

shell> vim /etc/yum.repos.d/zabbix.repo           创建repo文件

[zabbix_6.0]
name=zabbix_6.0
baseurl=file:///media/zabbix/
enabled=1
gpgcheck=0
gpgkey=file:///media/zabbix/RPM-GPG-KEY-ZABBIX

shell> yum clean all && yum makecache

已识别到zabbix源

安装zabbix

shell> yum install -y zabbix-server-mysql.x86_64 zabbix-web-mysql.noarch zabbix-apache-conf.noarch zabbix-sql-scripts.noarch zabbix-selinux-policy.x86_64 zabbix-agent.x86_64 zabbix-get.x86_64

shell> mysql -u root -p    登录到数据库

          mysql> set global log_bin_trust_function_creators=1;

回到shell终端执行

shell> zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix        导入zabbix库表文件

导入成功后,再登入到数据库禁用log_bin_trust_function_creators选项

shell> mysql -u root -p

          mysql> set global log_bin_trust_function_creators=0;

          这时可以使用use zabbix;    show tables;  检查zabbix库下是否有表文件

shell> vim /etc/zabbix/zabbix_server.conf      修改配置文件

zabbix默认会去/var/lib/mysql/下找数据库的mysql.sock套接字文件,需要配置一下sock路径(或者改成/tmp/mysql.sock,在安装数据库时已经做过软链接)

shell> systemctl restart zabbix-server.service zabbix-agent.service httpd.service php-fpm.service

启动zabbix_server端报错,使用journalctl -xe查看信息如下:

error: /usr/sbin/zabbix_server: undefined symbol: usmAES192PrivProtocol

需要更新net-snmp安装包,如果是外网环境就方便很多了,我的是专网设备只能去外网环境汇集安装包在上传更新。

有两种方法:

1、到可连接外网的虚拟机上使用外网repo源下载新版本,和汇集zabbix安装包方法一样;

2、可以在https://pkgs.org/search/?q=net-snmp下载对应系统版本和架构的安装包

shell> rpm -Uivh net-snmp-*        安装5.8.28版本

shell>  systemctl restart zabbix-server.service     重新启动zabbix_server端

shell> netstat -anput | grep -E "zabbix|httpd"        检查端口

已经起来了

浏览器访问zabbix_web

1、在访问前将SElinux设置为宽容模式(状态要为Permissive或Disabled)

2、关闭firewalld.service或放行80、443、10050、10051端口

以上两步自行设置一下(不会的搜一下,一大把)

浏览器输入:http://server端ip地址/zabbix/

说明:如果此步骤连不上数据库检查以下两项:

1、检查zabbix用户的登录行为是否为%号,如果是localhost需要改成%号。因为使用Windows上的浏览器去访问Linux上的数据库,虽然zabbix_server和MySQL部署在同一台设备上但它不属于localhost连接行为(为安全考虑也可以设置为某个地址段或精准IP);

查询语句:select host,user,plugin from mysql.user;

根据各自需求配置

修改语句:rename user 'zabbix'@'localhost' to 'zabbix'@'%'; 

                  rename user 'zabbix'@'localhost' to 'zabbix'@'127.10.5.%';    地址段(win地址)

                  rename user 'zabbix'@'localhost' to 'zabbix'@'127.10.5.9';     精准IP(win地址)

                  flush privileges;

2、如果安装的是MySQL8版本,检查zabbix用户验证插件是否为mysql_native_password,因为MySQL8默认使用caching_sha2_password验证插件

查询语句:select host,user,plugin from mysql.user;

修改语句:alter user 'zabbix'@'%' identified with mysql_native_password by '新密码';

                  flush privileges;

到这里zabbix已部署完成

shell> systemctl enable zabbix-server.service zabbix-agent.service httpd.service php-fpm.service

加入开机自启

五、处理中文乱码问题

1、在Windows电脑上按win+r 输入:c:\windows\fonts     找一个看着得劲儿舒服的字体上传到设备

2、将字体文件放到/usr/share/zabbix/assets/fonts/下,找不到的话find / -name fonts 找一下

3、修改文件名。修改文件名就不用改配置文件了,省事儿

shell> systemctl restart zabbix-server.service     重启zabbix_server

六、添加自定义监控

说明:这里只简单演示一下,添加其他自定义监控都一样

需求:假如需要监控MySQL的PID值

1、配置zabbix_agent端

shell> vim /etc/zabbix/zabbix_agentd.conf         修改以下三项

Server=zabbix_server端地址

ServerActive=zabbix_server端地址

Hostname=zabbix_agent本机地址

shell> systemctl restart zabbix-agent.service      重启agent

2、用linux命令拿到MySQL的PID值

shell> ps -aux | grep $(netstat -anput | grep mysqld | grep -w 3306 | grep -v grep | awk -F '[ /]' '{print $58}') | awk '{print $2}'

3、拿到值后创建userparameter.conf文件,默认将文件放到/etc/zabbix/zabbix_agentd.d/下,也可以修改agent配置文件来指定位置。我这里就不改了,用默认的就行。需要改的话在配置文件中检索一下 Include 关键字。

shell> vim /etc/zabbix/zabbix_agentd.d/userparameter.conf

添加:UserParameter=mysql.pid, ps -aux | grep $(netstat -anput | grep mysqld | grep -w 3306 | grep -v grep | awk -F '[ /]' '{print $58}') | awk '{print $2}'

UserParameter:固定写法

mysql.pid:相当于取值的key,后面的ps命令相当于value

shell> systemctl restart zabbix-agent.service     重启agent,如果格式不对会报错

4、取值测试

在zabibx_server端执行:zabbix_get -s 目标IP地址 -k mysql.pid

5、将自定义监控添加到zabbix_web

说明:添加主机、主机群组、图形、聚合图形、触发器等自行完成,不会的可以自己研究一下。以下直接从添加监控开始(不然得嘎嘎截图,影响阅读)

七、zabbix监控单位设置

以上图为例,MySQL_PID是一个整数型的数值,添加完图形后zabbix自动给它转换成K了,值也变为小数,和实际有很大出入。需要进行以下设置

shell> vim /usr/share/zabbix/include/func.inc.php

说明:部署的方法不同,该文件不一定在这。可以用find / -name func.inc.php找一下

shell> systemctl restart zabbix-server.service        重启server端

在监控项中修改单位

配置完成~

  • 34
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值