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

#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

为winxp实例绑定浮动ip

配置安全组规则

配置安全组规则

centos配置防火墙

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

###2.host not found

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

328:20160908:163651.328 no active checks on server [172.16.0.254:10051]: host [winxp] not found
328:20160908:163851.453 no active checks on server [172.16.0.254:10051]: host [winxp] not found
328: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.sql
mysql -uzabbix -pmy_password zabbix < images.sql
mysql -uzabbix -pmy_password zabbix < data.sql

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

service nginx stop
sudo nginx
chmod -R 777 /data/web/zabbix/
service nginx start

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

service php-fpm stop
sudo php-fpm

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

停止mysql服务

Ps -ef |grep mysql
killall -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 mysql
killall -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.cnf

bind-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=3 Timeout=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=5 StartPollers=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

转载于:https://my.oschina.net/readerror/blog/744692

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值