解决mysql中文乱码问题

排序与查找--散列和冲突解决方案(python)

  返回  

Zabbix原理和5.0的部署

2021/8/20 23:57:44 浏览:

Zabbix原理和5.0的部署

一、Zabbix概述:

1、Zabbix简介:

zabbix是一个基于WEB界面的提供分布式系统监控以及网络监控功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

2、Zabbix组成部分:

zabbix由zabbix server与可选组件zabbix agent两部分组成:
①zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
②zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

3、Zabbix监控工作原理:

agent安装在被监控的主机上,agent负责定期收集客户端本地各项数据,并发送至ZabbixServer端,ZabbixServer收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。

当Zabbix监控某个具体的项目,该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)。

PS:

agent收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy。
被动:server向agent请求获取监控项的数据,agent返回数据。

4、Zabbix常用组件:

Zabbix Web Gui: 提供Web界面。

Zabbix Databases:提供数据库存储功能并用于存储配置信息。以及采集到的数据。

Zabbix Server : 接收来自Agent采集数据的核心组件。

Zabbix Agent :部署在被监控的主机上,用于采集本地的数据。

Zabbix Proxy: 当监控节点较多时,用于减轻Server压力组件,也可用于分布式。监控系统,由Proxy接收数据后统一发送给Server

5、Zabbix支持的数据采集协议:

SNMP(Simple Network Managerment Protocol):这是一个非常古老的且通用的监控协议,几乎任何设备都支持用此方式进行系统的监控。

Agent:在监控端安装专门的监控程序,将数据采集后通过Agent发送至Server。

IPMI:智能平台管理接口,即主要应用于设备的物理特性,包括:温度、电压、电扇工作状态,电源供应以及机箱入侵等。IPMI最大的优势在于无论OS的开机还是关机状态下,只要接通电源就可以实现对服务器的监控。

JMX:Java Managerment Exlensions。

6、常见进程:

zabbix_agentd:客户端守护进程,负责收集客户端数据,例如cpu负载、内存、硬盘使用情况等。

zabbix_get:zabbix数据接收工具,单独使用的命令,通常在Server或者Proxy端执行获取远端客户信息的命令。通常客户排错。例如在Server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

zabbix_sender:zabbix数据发送工具,用于发送数据给Server或者Proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。

zabbix_proxy:zabbix代理守护进程。功能类似Server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到Server里。

zabbix_java_gateway:Java网关,类似agentd,但是只用于Java方面。它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到Server或者proxy。

7、zabbix优势:

支持自定义监控脚本,提供需要输出的值即可
zabbix存 储的数据库表结构稍有复杂但是逻辑清晰
zabbix存在模板的概念,可以方便的将一 组监控项进行部署
zabbix每一个item也就是监控项,都可以看到历史记录,且web界面友好
zabbix有 强大的Trigger(触发器)定义规则,可以定义复杂的报警逻辑
zabbix提供 了ack报警确认机制
zabbix支持邮件,短信,微信等告警
zabbix在触发告警后,可以远程执行系统命令
zabbix有原生的PHP绘图模块

二、Zabbix监控平台搭建:

1、实验环境:

系统:Centos 7
Zabbix Server(监控端) :192.168.65.130
Zabbix Agent(被监控端):192.168.65.143

2、基础环境设置:

systemctl stop firewalld
systemctl disable firewalld
setenforce 0(vim /etc/sysconfig/selinux--->SELINUX=disabled,永久修改)

yum install tree net-tools net-snmp vim ntpdate  wget             	#安装部分基础软件包
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak  //备份仓库
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  //下载阿里云镜像仓库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  //下载epel仓库
yum clean all
yum makecache  //清除并重新生成缓存

以上配置好后需要使用以下脚本进行安装,调试多次,无问题

#!/bin/bash

VERSION=$1
if [ -f /etc/yum.repos.d/zabbix.repo ];then
    rm -rf /etc/repos.d/zabbix.repo
fi
rpm -qa | grep zabbix-release && rpm -e zabbix-release
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/$VERSION/rhel/7/x86_64/zabbix-release-$VERSION-1.el7.noarch.rpm
sed -i "s@zabbix/.*/rhel@zabbix/$VERSION/rhel@g" /etc/yum.repos.d/zabbix.repo
sed -i 's@repo.zabbix.com@mirrors.aliyun.com/zabbix@g' /etc/yum.repos.d/zabbix.repo
[ $? -eq 0 ] && echo "zabbix源替换成功" || exit 1
yum clean all
yum makecache fast
---->wq

三、安装Zabbix-server端:

1、安装MySQL数据库:

wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm  //下载MySQL5.7
rpm -ivh mysql57-community-release-el7-11.noarch.rpm  //安装MySQL yum源
yum -y install mysql-server    //安装mysql服务
systemctl start mysqld  //启动MySQL
systemctl enable mysqld  //设置开机自启
netstat -antp | grep mysqld  //查看是否启动成功
grep 'root@localhost:' /var/log/mysqld.log   //查看初始密码
mysql -uroot -p'初始密码' //使用初始密码登陆
set global validate_password_policy=0;  //修改参数
PS:如果这一步也报错,那么是缺少系统变量:
vim /etc/my.cnf
[mysqld]
#添加密码验证插件
plugin-load-add=validate_password.so
#服务器在启动时加载插件,并防止在服务器运行时删除插件
validate-password=FORCE_PLUS_PERMANENT
--->wq
systemctl restart mysqld
alter user root@"localhost" identified by "mysql123";  //修改密码
exit
mysql -uroot -pmysql123

2、安装Zabbix5.0监控平台:

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm  //安装Zabbix5.0 yum源
yum clean all  //清除缓存***

yum -y install zabbix-server-mysql zabbix-agent  //安装zabbix server和agent
PS:如果安装中报错:Delta RPMs disabled because /usr/bin/applydeltarpm not installed,则安装 deltarpm软件。
--->yum -y install deltarpm

安装一个linux有关php的扩展插件  Software Collections, 便于后续安装高版本的php, 默认yum安装的php版本为5.4过低。
SCL(Software Collections )可以让你在同一个操作系统上安装  和使用多个版本的软件,而不会影响整个系统的安装包。
总结就是安装工具,可以在机器上,使用多个版本的软件,并且不会影响到整个系统的依赖环境 (/opt/rh)
yum -y install centos-release-scl  //安装Zabbix frontend
vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
enabled=0        //将0修改为1
--->wq

yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl  //安装zabbix前端包

3、创建和初始数据库:

mysql -uroot -pmysql123
create database zabbix character set utf8 collate utf8_bin;  //创建zabbix数据库并设置字符集
create user zabbix@localhost identified by 'mysql123';  //设置zabbix账号密码
grant all privileges on zabbix.* to zabbix@localhost;  //提权
exit

4、导入Zabbix数据库结构和数据:

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
PS:其中-uzabbix是前面在数据库中创建的用户,-pmysql123是前面数据库中创建的用户的密码,后面的zabbix是前面创建的数据库。

5、配置服务配置文件:

vim /etc/zabbix/zabbix_server.conf
116 DBUser=zabbix     //用户名要与数据库中创建的供zabbix访问的用户名一致
124 DBPassword=mysql123(password)      //去掉注释,添加创建的zabbix用户的数据库密码
--->wq 

6、为Zabbix前端配置PHP:

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
[zabbix]
user = apache
group = apache

; php_value[date.timezone] = Europe/Riga     --->取消注释将Europe/Riga时区修改为以下:Asia/Shanghai
--->wq 

7、开启服务:

systemctl restart zabbix-server zabbix-agent  httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
ss -antulp | grep :80
ps -aux | grep zabbix

8、访问:

四、配置Zabbix-agent端:

wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/6/x86_64/zabbix-agent-5.0.0-1.el6.x86_64.rpm
rpm -ivh zabbix-agent-5.0.0-1.el6.x86_64.rpm
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all

sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/zabbix.repo  //修改Zabbix 5.0 Yum源配置文件
vim /etc/yum.repos.d/zabbix.repo
[zabbix]
enabled=1
gpgcheck=0          //修改gpgcheck=0
[zabbix-frontend]
enabled=1
gpgcheck=0        //修改gpgcheck=0
[zabbix-debuginfo]
enabled=0
gpgcheck=0        //修改gpgcheck=0
[zabbix-non-supported]
enabled=1
gpgcheck=0        //修改gpgcheck=0
--->wq
yum -y install zabbix-agent     //安装zabbix-agent 5.0软件---->agent2也可以使用,相较于1,因为go语言,天生支持高可用
PS:使用Zabbix 5.0 Yum源文件安装zabbix-agent 5.0软件,并且将gpgcheck=1修改为gpgcheck=0,防止出现“获取GPG密钥失败”报错。

vim /etc/zabbix/zabbix_agentd.conf  //修改zabbix-agent配置文件
119 Server=127.0.0.1,192.168.2.128   //Zabbix-server地址,多个用","隔开
160 ServerActive=192.168.2.128     //主动检查本主机数据发送给Zabbix-server
171 #Hostname=Zabbix server
172 Hostname=192.168.2.129     //客户端IP地址
--->wq

systemctl start zabbix-agent
systemctl enable zabbix-agent

ss -antulp | grep :10050

五、报错合集:

1、ZABBIX服务器端运行中 显示为 否 NO 的解决方案:

①查看报错日志(根据自己的zabbix日志目录调整代码):
cat /var/log/zabbix/zabbix_server.log
有如下报错信息:
[Z3001] connection to database ‘zabbix’
failed: [2002] Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
报错信息一表示Zabbix服务不能用/var/lib/mysql/mysql.sock 成功连接数据库;

[Z3001] connection to database ‘zabbix’
failed: [1045] Access denied for user ‘zabbix’@‘localhost’ (using password: YES)
报错信息二表示Zabbix服务不成功连接数据库;

②解决方案:
对于报错一,查找MySQL.socket并将位置添加到zabbix_server 配置文件

[root@neo ~]# find / -name mysql.sock
/usr/local/mysql/mysql.sock

修改zabbix配文件并添加mysql.sock:
vim /etc/zabbix/zabbix_server.conf //添加上面查到的mysql.sock
DBSocket=/usr/local/mysql/mysql.sock
—>wq

systemctl restart zabbix-server

对于报错二,检查zabbix用户在数据库中的权限,并赋予localhost权限。
show grants for ‘zabbix’@’%’; SELECT DISTINCT

CONCAT(‘User:’’’,user,’’’@’’’,host,’’’;’)AS query FROM mysql.user;

连接数据库,赋予zabbix服务localhost数据库权限:
GRANT all ON zabbix.* TO ‘zabbix’@‘localhost’ IDENTIFIED BY ‘admin123’;

刷新权限:
flush privileges;

并重启http,mysql,zabbix_server服务:
systemctl restart httpd.service
systemctl restart httpd.service
systemctl restart zabbix-server.service

2、ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this…

即:MySQL执行修改密码的报错
mysql> alter user ‘root’@‘localhost’ identified by ‘123456’;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

但是修改这个参数会报错,没有这个系统变量:
mysql> set global validate_password_policy=0;
ERROR 1193 (HY000): Unknown system variable ‘validate_password_policy’

解决方案:添加参数
vim /etc/my.cnf
[mysqld] 在mysqld文本段里添加这两行
#添加密码验证插件
plugin-load-add=validate_password.so

#服务器在启动时加载插件,并防止在服务器运行时删除插件
validate-password=FORCE_PLUS_PERMANENT

systemctl restart mysqld //修改完重启mysql
mysql -uroot -p //进去重新修改

PS:如果要短密码,需要这样操作:
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

mysql> alter user ‘root’@‘localhost’ identified by ‘123456’;
Query OK, 0 rows affected (0.00 sec)
然后就可以设置非常简单的密码了!

拓展:mysql8.0如何去操作:
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;

3、启动zabbix服务的时候,有配套服务启动不起来:大概率端口占用

netstat -antp | grep 服务名
然后:
kill -9
再重启就可以了

4、zabbix乱码问题:

[root@localhost src]# yum install wqy-microhei-fonts
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile

  • base: mirrors.cn99.com
  • centos-sclo-rh: mirrors.cn99.com
  • centos-sclo-sclo: mirrors.cn99.com
  • extras: mirrors.cn99.com
  • updates: mirrors.ustc.edu.cn
    软件包 wqy-microhei-fonts-0.2.0-0.12.beta.el7.noarch 已安装并且是最新版本

#替换文件
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

#重启服务
systemctl restart zabbix-server
这样就可以解决乱码问题了!!

5、zabbix在图形安装界面报如下错误:Zabbix Cannot connect to the database

原因是php页面文件conf目录下缺少一个数据库配置文件(zabbix.conf.php);
解决办法:
[root@zabbix ~]# cd /usr/share/nginx/html/conf #进入网页根目录下(或者用find搜索zabbix.conf.php.example文件)
[root@zabbix ~]# mv zabbix.conf.php.example zabbix.conf.php #重命名文件
[root@zabbix ~]# vim zabbix.conf.php #修改正确的端口、账号及密码
修改完重新刷新登录即可:账号admin/zabbix

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号