专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

mysql+zabbix部署二)

zabbix安装完成后,能进入zabbix的页面后,并且在个人设置修改了中文显示后,进入zabbix;

问题:创建模板或者监控项时报错如下:

Error in query [INSERT INTO auditlog (userid,clock,ip,action,resourcetype,details,auditid) VALUES (‘1′,’1562247337′,’173.132.146.111′,’0′,’5′,’名称: gaojing’,’1018′)] [Incorrect string value: ‘\xE5\x90\x8D\xE7\xA7\xB0…’ for column ‘details’ at row 1]

查阅资料后发现是mysql数据库字符集的问题: zabbix数据需要使用utf-8的字符集,但是我们创建的是latin1这个字符集;


[root@zabbix ~]# cat /etc/my.cnf [mysqld] #skip-grant character_set_server = utf8 #添加字符集

把mysql的zabbix库导出,重启修改后导入:


[root@zabbix ~]# mysqldump -uroot -pzabbix@123 zabbix > zabbix.sql Warning: Using a password on the command line interface can be insecure. [root@zabbix ~]# vim zabbix.sql :%s/latin1/utf8/g [root@zabbix ~]# mysql -uroot -pzabbix@123 zabbix < zabbix.sql Warning: Using a password on the command line interface can be insecure.

再次打开zabbix网站就正常了。

创建数据库时指定字符集就不会有这个问题:

crete databaes zabbix default character set=utf8;

zabbix主动模式和被动模式相对于客户端而言的,默认情况下是被动模式,通过在网站添加主机的方式则是被动模式。因为主动模式agent段是没有10500端口的。即zabbix server会根据监控项定义的时间去主动去手机zabbix agent上的数据,更具有灵活性,但是过多的zabbix agent会增加zabbix server端的压力,agent端多的时候不能及时获取到数据;

主动模式:zabbix agent 将消息主动推送给zabbix server, 可以减轻zabbix server端的压力,监控网络不可达的区域,本地网络不稳定区域,但是模板和agent都需要修改配置。当监控主机超过300台时,进来采用主动模式。

当下面的客户端过多时,主动模式下需要添加proxy,注意proxy库和sever数据库必须分开,要不然数据会被破坏,proxy收集到数据库后,首先将数据缓存到本地,然后再一定时间之后传送给server,这个时间是用proxy配置文件决定的,proxy是一个数据收集器,它不计算触发器,不处理时间,不告警。


[root@zabbix ~]# cat /etc/zabbix/zabbix_agentd.conf|grep -v '^#'|grep -v '^$' PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 #日记最大尺寸,大于这个尺寸会被切割,0表示不切割. Server=172.17.9.33 #允许那台服务器采集数据. ServerActive=172.17.9.33 #将监控数据发送到那台服务器. Hostname=zabbix server_01 #配置主机名,这里必须与server添加的主机名一直才可以. # StartAgents=3 #默认是3,并且是注释的, StartAgents=0 #取消注释,并修改成0,重启agent,会发现10050端口不再监听,即修改成了主动模式. UnsafeUserParameters=1 打开自定义参数. UserParameter=tcpportlisten,D:\zabbix\bin\discovertcpport.bat Include=/etc/zabbix/zabbix_agentd.d/

zabbix server与zabbix agent.

zabbix server 需要先创建主机群组,因为创建模板需要添加所属群组才可以。

主机群组和模板、主机之间的关系,主机和模板都是添加在主机群组里面的,这些都可以删除,重新来创建的。

模板可以手动创建,也可以导入其他的模板来使用。

导入后的模块加入主机群组里。一个模板下面可以链接其他的模板,链接后的模板在这个模板的监控项里是已模板的形式显示的,但取消链接后,链接后的模板就会消失的。

117_1.png

117_2.png

注释:如果是使用导入模板方式来创建模板,需要先把模板里链接的模板导入进来,然后再导入模板,否则无法导入。或者修改配置文件也可以。

自动发现规则:不论是导入模板还是手动创建的模板,都需要自动发现规则,自定义监控项是自定义发现规则基础,自定义发现规则里需要配置脚本的键值。

为什么需要自动发现规则,因为我们很多监控项监控的内容是一样的,但是监控对象不一样,自动发现可以方便我添加这些监控项。一台一台的添加监控项和枯燥的。

117_3.png

自定义监控项发现规则需要再agent端的zabbix_agent.conf文件里定义:以及键值对应的可执行脚本,自动发现规则获取的数据类型是JSON格式的,所有要输入JSON格式的字符串,server才能识别到。

监控的顺序: 创建主机群组—-> 导入模板—-> 模板添加到主机群组—–> 创建主机 —–> 主机链接到模板 —-> 取消链接(因为不取消链接,模板不能修改或者删除)

监控的顺序:创建主机群组 —-创建模板 —> 配置自动发现规则—-> 配置监控项原型—-> 配置触发器原型 —-> 链接到主机

监控windwos机器上的某个端口 123 10535 10835 这三个端口:

首先编写windwos脚本参数;获取到json数据格式的端口;

名称为:discovertcpport.bat 后面会要调用这个脚本:

自动获取当前机器上所有端口。


@echo off echo { echo "data":[ for /F "tokens=2 delims= " %%i IN ('netstat -anp tcp^|find /i "LISTENING"') DO for /F "tokens=2 delims=:" %%j IN ("%%i") DO echo {"{#TCP_PORT}":"%%j"}, echo {"{#TCP_PORT}":"10050"} echo ] echo }

测试:cmd窗口下执行即可:


C:\Users\EDZ>C:\Users\EDZ>D:\test\discovertcpport.bat { "data":[ {"{#TCP_PORT}":"21"}, {"{#TCP_PORT}":"135"}, {"{#TCP_PORT}":"443"}, {"{#TCP_PORT}":"445"}, {"{#TCP_PORT}":"139"}, {"{#TCP_PORT}":"139"}, {"{#TCP_PORT}":"10050"} ] }

自动指定端口号:


@echo off echo { echo "data":[ echo {"{#TCP_PORT}":"123"}, echo {"{#TCP_PORT}":"10525"}, echo {"{#TCP_PORT}":"10835"} echo ] echo }

测试:cmd窗口下执行即可:


C:\Users\EDZ>D:\discovertcpport.bat { "data":[ {"{#TCP_PORT}":"10535"}, {"{#TCP_PORT}":"10602"}, {"{#TCP_PORT}":"10538"} ] }

在server段进行测试:

修改agent端zabbix_agent.conf配置文件: 新增KEY值 tcpportlisten 重启agent 客户端。


UnsafeUserParameters=1 UserParameter=tcpportlisten,D:\zabbix\bin\discovertcpport.bat

在server端进行测试: zabbix_get


[root@zabbix ~]# zabbix_get -s 172.17.8.10 -k tcpportlisten { "data":[ {"{#TCP_PORT}":"10525"}, {"{#TCP_PORT}":"123"}, {"{#TCP_PORT}":"10835"} ] }

也可以查看某个端口状态: 返回值 0 则表示正常 返回值 1 则表示异常。


[root@zabbix ~]# zabbix_get -s 172.17.8.10 -k net.tcp.listen[10835] 1 [root@zabbix ~]# zabbix_get -s 172.17.8.10 -k net.tcp.listen[10525] 1 [root@zabbix ~]# zabbix_get -s 172.17.8.10 -k net.tcp.listen[123] 0

注释:返回值正常就表示没问题。

接下来配置zabbix server端;

1、新建模板:

117_4.png

2、新建自动发现规则:注意这个键值。

117_5.png

3、自动发现中新建监控项原型:

117_6.png

4、自动发现中新建触发器:

117_7.png

5、模板关联到主机:

117_8.png

6、查看最新数据:

117_9.png

7、查看告警信息。

117_10.png

如下:

117_11.png

本次还新增了监控GPU的信息;比如GPU内存 GPU的风扇和电源应用信息;

117_12.png

未经允许不得转载:搜云库技术团队 » mysql+zabbix部署二)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们