侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

zabbix监控openstack实例部署时遇到的几个问题

2023-12-22 星期五 / 0 评论 / 0 点赞 / 144 阅读 / 6877 字

#zabbix监控openstack实例部署时遇到的几个问题##部署环境server:virtualbox虚拟机centos6.8agent:virtualbox虚拟机openstack下window

#zabbix监控openstack实例部署时遇到的几个问题

##部署环境

  • server:virtualbox虚拟机centos6.8
  • agent:virtualbox虚拟机openstack下windowsXP实例

##网络环境

  • server:

Host Only

    eth0:Link encap:Ethernet  HWaddr: 08:00:27:5E:3B:81      inet addr:172.16.0.254  Bcast:172.16.0.255  Mask:255.255.255.0

NAT模式

    eth1:Link encap:Ethernet  HWaddr: 08:00:27:71:8A:BA      inet addr:10.0.3.15  Bcast:10.0.3.255  Mask:255.255.255.0
  • agent:

      Ethernet adapter 本地连接:  IP:192.168.111.5  Subnet Mask:255.255.255.0  Defualt Gateway:192.168.111.1

##遇到的问题以及解决方案

###1. 无法ping通

为winxp实例绑定浮动ip

配置安全组规则

centos配置防火墙

iptables -I INPUT -p tcp --dport 8051 -j ACCEPTiptables -I INPUT -p tcp --dport 10050 -j ACCEPTiptables -I OUTPUT -p tcp --dport 10050 -j ACCEPTiptables -I FORWARD -p tcp --dport 10050 -j ACCEPTiptables -I INPUT -p tcp --dport 10051 -j ACCEPTiptables -I OUTPUT -p tcp --dport 10051 -j ACCEPTiptables -I FORWARD -p tcp --dport 10051 -j ACCEPTiptables -I INPUT -p tcp --dport 10052 -j ACCEPTiptables -I OUTPUT -p tcp --dport 10052 -j ACCEPTiptables -I FORWARD -p tcp --dport 10052 -j ACCEPTiptables -I INPUT -p tcp --dport 33051 -j ACCEPTiptables -I INPUT -p tcp --dport 3306 -j ACCEPTservice iptables save

###2.host not found

zabbix_agentd.conf要与zabbix_server端写死的host名称要一致Hostname=winxp

328:20160908:163651.328 no active checks on server [172.16.0.254:10051]: host [winxp] not found328:20160908:163851.453 no active checks on server [172.16.0.254:10051]: host [winxp] not found328:20160908:164051.421 no active checks on server [172.16.0.254:10051]: host [winxp] not found

###3.zabbix_agentd拒绝

zabbix_agentd.conf写死的server端ip要一致,用docker容器来部署的zabbix_server端会出现IP为docker0网卡的IP,与公网IP不一致,导致链接被拒绝,暂时用一键部署脚本来部署zabbix_server端

###4.mysql导入时Table XXX doesn't exist

要按照schema>images>data的顺序来导入

mysql -uzabbix -pmy_password zabbix < schema.sqlmysql -uzabbix -pmy_password zabbix < images.sqlmysql -uzabbix -pmy_password zabbix < data.sql

###5.nginx服务器无法启动

service nginx stopsudo nginxchmod -R 777 /data/web/zabbix/service nginx start

###6.访问.php文件出现Access denied.

service php-fpm stopsudo php-fpm

###7.fuel节点mysql数据库root用户密码破解

停止mysql服务

Ps -ef |grep mysqlkillall -9 *********killall -TERM mysqld

进入命令窗口,进入mysql安装目录下的bin目录下,跳过权限检测,启动mysql

mysql/bin>mysqld-nt --skip-grant-tables

设置新的root密码

update user SET password=PASSWORD("toor") where user='root';SET PASSWORD = PASSWORD('toor');mysql/bin>mysqladmin -u root  flush-privileges password " toor "

停止mysql server,用正常模式启动mysql,然后用上面账号就可以登陆数据库库了。

ps -ef |grep mysqlkillall -9 *********killall -TERM mysqld

###8.开启mysql外部访问权限

mysql 默认是禁止远程连接的,你在安装mysql的系统行运行mysql -u root -p 后进入mysql输入如下:

use mysql; grant all privileges on *.* to 'root'@'%' identified by 'toor'; flush privileges; CREATE USER 'zabbix'@'%' IDENTIFIED BY 'my_password';GRANT ALL ON *.* TO 'zabbix'@'%'; SET PASSWORD FOR 'zabbix'@'%' = PASSWORD("my_password");flush privileges; /q

修改/etc/my.cnf:

vim /etc/my.cnfbind-address        = 0.0.0.0

##其他方面调优

除了整体架构的升级,还在了许多方面(主要是Zabbix)进行了调优,比如:

###尽量增加agent的超时时间

因为我们的监控采集项,都是需要对URL或者域名进行网络操作,这些操作往往都会比较耗时,而且这是正常的现象。因此,我们需要增加在Zabbix agent的采集超时,避免正常的网络操作还没完成,就被判断为超时,影响Server的数据获取。### Option: Timeout# Spend no more than Timeout seconds on processing## Mandatory: no# Range: 1-30# Default:# Timeout=3Timeout=30不要在采集脚本中加上超时

既然Zabbix agent中已经配置了采集超时时间,就不需要在采集脚本中添加超时了。一方面增加了维护成本,另一方面如果配置不当,还会造成Zabbix agent中的超时配置失效。(之前在脚本中使用了timeout命令,由于设置不正确,导致采集项总是不连续,调试了好久才查明原因。)

###增加Zabbix Server的Poller实例

默认情况,用于接收Zabbix agent采集数据的Poller实例只有5个。对于周期在1分钟内、数量会达到千级别的采集项来说,Poller实例显然是不够的,需要增大实例数,充分利用好服务器资源。例如:### Option: StartPollers# Number of pre-forked instances of pollers.## Mandatory: no# Range: 0-1000# Default:# StartPollers=5StartPollers=100

###利用好Zabbix trigger expression

如果只把trigger expression理解为“判断某个item value大于/小于某个阈值”,那就太低估Zabbix的trigger expression了,它其实可以支持很多复杂的逻辑。比如,为了防止网络抖动,需要当最近的连续两个采集项异常时,才改变trigger的状态,表达式可以写成:(假设item_key<0为异常){host:item_key.last(#1)}<0&{host:item_key.last(#2)}<0

再举个例子,同样是为了防止采集的服务不稳定,我们可以规定,当目前trigger的状态为PROBLEM,并且最近5分钟的采集数据均正常的时候,才可以将trigger状态改为OK,表达式可以这样写:({TRIGGER.VALUE}=0&{host:item_key.last(#1)}<0&{host:item_key.last(#2)}<0) | ({TRIGGER.VALUE}=1&{host:item_key.min(5m)}<0)

具体可以参考Trigger expression:https://www.zabbix.com/documentation/2.0/doku.php?id=manual/config/triggers/expression

广告 广告

评论区