分类 运维监控 下的文章

zabbix也可以监控VMware虚拟化,支持VMware vCenter或vSphere版本最低为4.1。

以下配置文件参数可用于调整虚拟机监控:

StartVMwareCollectors - 预先启动Vmware collector收集器实例的数量。
此值取决于要监控的VMware服务的数量。在大多数情况下,这应该是:
servicenum < StartVMwareCollectors < (servicenum * 2)其中 servicenum 是 VMware 服务的数量。例如:如果您有1个VMware服务,请将 StartVMwareCollectors 设置为 2,那么果您有 3 个 VMware 服务,请将其设置为 5。请注意,在大多数情况下,此值不应小于 2,不应大于 VMware 数量的 2 倍服务。还要记住,此值还取决于 VMware 环境大小和 VMwareFrequency 和 VMwarePerfFrequency 配置参数。
VMwareCacheSize - 用于存储VMware数据的缓存容量,默认为8M,取值范围:256K-2G。
VMwareFrequency - 接到VMware服务收集一个新数据的频率,默认为60秒,取值范围:10-86400。
VMwarePerfFrequency - 连接到VMware服务收集性能数据的频率,默认为60秒,取值范围:10-86400。
VMwareTimeout - VMware collector等待VMware服务响应的时间,默认为10秒,取值范围:1-300。

1,配置服务器

vi /etc/zabbix/zabbix_server.conf

修改如下:

StartVMwareCollectors=20
VMwareFrequency=60
VMwarePerfFrequency=60
VMwareCacheSize=2G
VMwareTimeout=60

然后重启服务

systemctl restart zabbix-server

查看日志,确定VMware监控相关组件是否启动:

cat /etc/zabbix/zabbix_server.conf

47549-12rph6ivi1q.png

27875-s57mvdjonji.png

2,添加vcenter

填写主机名称,群组选择Templates/Virtualization,IP地址即为vcenter 的IP,端口写80

94423-c9xz8u5x38d.png

单击模板,在链接指示器中选择Template VM VMware,添加到链接的模板

79745-ic66gyjqgb.png

单击宏,填写如下内容

{$USERNAME}:vcenter超管
{$PASSWORD}:vcenter超管密码
{$URL}:https://vcenterip/sdk

19879-ba2zbbj5cu.png

单击添加,vcenter主机添加成功

81671-e6an2wdmkqn.png

3,配置自动发现

点击自动发现

43908-ui6ubp854k.png

可以看到默认的监控模板每隔一个小时扫描一次,这里我们可以修改间隔

60553-jfiqd6f32p8.png

也可以点击现在检查,立即发现虚拟化资源

32142-a7ro3uik06.png

此时到主机里,可以看到,已经自动扫描到了esxi主机和集群内所有的虚拟机

64627-6vq2h2tgxnx.png

4,配置图形界面

从上图可以看出,自带的模板是一个图形界面都没有。

a,创建主机监控图形界面

点击 配置--模板,选择Template VM VMware Hypervisor,单击图形,点击右上角的创建图形
填写名称:Esxi Resource information,宽、高可以默认也可自定义,监控项根据需求自行选择,我这里全选了

94080-f8uddshneyq.png

30120-xgi5lqwhnb.png

单击添加,esxi主机的图形界面创建完毕

b,创建虚拟机监控图形界面

点击 配置--模板,选择Template VM VMware Guest,单击图形,点击右上角的创建图形
填写名称:VM OS information,宽、高可以默认也可自定义,监控项根据需求自行选择,我这里全选了

16961-twrax2b093f.png

92183-w0yj4rk6oll.png

单击添加,虚拟机资源监控图形创建完毕。

5,查看图形界面监控资源

主机资源

59502-mh3q12opoee.png

61137-8h0xguysec3.png

虚拟机资源

26009-czdud64u8tb.png

29934-b3bq5mrwiv.png

zabbix很强大,自定义功能更是厉害。如果花点时间研究一下,我觉得可以满足大部分的使用场景。

一,添加RHEL/CentOS主机

此处以CentOS7.4为例

1,配置zabbix YUM

rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum clean all
yum makecache

2,安装配置agent

yum install -y zabbix-agent
systemctl start zabbix-agent

编辑/etc/zabbix/zabbix_agentd.conf 修改如下

LogFileSize=5
Server=192.168.80.112
ServerActive=192.168.80.112
Hostname=linux-001
systemctl restart zabbix-agent
systemctl enable zabbix-agent

参数说明:

PidFile=/run/zabbix/zabbix_agentd.pid 
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=5 (设置zabbix日志当到达5M时自动回滚,0表示disabled)
Server=<zbx-server的ip>
ListenPort=10050
ServerActive=<zbx-server的ip> 在这里可以改变端口号
Hostname=<本机的名字>
Timeout=30
AllowRoot=1 (设置是否允许以root用户启动,值有1和0,0表示禁止以root用户启动)
UnsafeUserParameters=1 (设置是否允许自定义监控,值有1和0,0表示disable)
EnableRemoteCommands=1 (设置是否允许来自zabbix server端的远程命令,值有1和0,0表示不允许)
LogRemoteCommands=1 (设置是否允许日志文件以warning级别记录来自zabbix server端的远程命令,值有1和0,0表示disabled)

3,开放防火墙端口,如果彻底禁用了防火墙,则不需要

firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --reload

3,登陆zabbix-server Web界面

点击 配置——主机——创建主机,填写主机名称,选择群组Linux servers,填写主机的IP地址

06058-l059lrskmk.png

点击模板,在链接指示器中选择Template OS Linux,点击添加,单击添加

31785-xr93hsouewq.png

ZBX变为绿色,即正常

35686-8d5d445c54t.png

二,添加Ubuntu/Debian主机

此处以Ubuntu18.04为例

1,安装agent

sudo apt-get install zabbix-agent

安装完会自动启动,且开机会自动启动

2,编辑agent配置文件

sudo vi /etc/zabbix/zabbix_agentd.conf
LogFileSize=5
Server=192.168.80.112
ServerActive=192.168.80.112
Hostname=ubuntu-001
sudo service zabbix-agent restart

3,添加主机

添加Ubuntu过程和RHEL/CentOS无差别。

43878-ujj7j49pyr9.png

三,添加Windows主机

此处以Windows10为例

1,下载安装agent

打开https://www.zabbix.com/cn/download_agents,根据zabbix server版本下载对应的agent

33205-04v1l3fastlv.png

47130-81o00y748df.png

安装过程中配置zabbix server 的IP地址

39571-lv3ys1vrfop.png

65615-ilf9hr6wul.png

2,配置防火墙,在入站规则添加开放10050的规则,如果防火墙彻底被禁用,则不用操作

3,添加主机

群组选择Templates

02338-781yf0zrq0r.png

点击模板,链接指示器选择Template OS Windows,点击添加

81246-i0rcndob198.png

点击下面的添加,提示添加主机成功

94852-2ki0cduq0k3.png

监控界面

85421-fqw0e5efb5p.png

所有的主机

52242-levu13id7il.png

浅入的研究了下,zabbix能监控的项目非常多,但是自带的模板可能无法满足不同的客户需求,这时候就需要自己定义模板,并建立报警机制,个人精力有限,这些就不做尝试了。

具体的配置教程参考这里https://www.zabbix.com/documentation/4.0/zh/manual

一直以为zabbix安装比较简单,就几条命令的事,心血来潮想测试体验,安装了一下,并不是想象的几条命令就能完事的。环境基于CentOS7.6,Zabbix 4.0.10,操作系统可以访问外网。

一,准备系统环境

1,禁用Selinux

vi /etc/selinux/config

SELINUX=enforcing改成SELINUX=disabled

58558-0lxy0yn98sf.png

2,禁用防火墙

systemctl stop firewalld
systemctl disable firewalld

3,安装zabbix依赖的lamp环境

yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash  php-bcmath php-mbstring 

4,启动mariadb和httpd 并加入开机启动项

systemctl start mariadb
systemctl start httpd
systemctl enable mariadb
systemctl enable httpd

5,配置mariadb数据库

mysql_secure_installation

根据提示配置mariadb 的root 密码

65923-2aaay4oonnh.png

配置mariadb 的root密码以后登录

mysql -uroot -p

26227-iu58z0b3rc.png

创建mariadb 用户及数据库并授权。

create database zabbix character set utf8 collate utf8_bin; 
create user 'zabbix'@'localhost' identified by 'zabbix';
grant all on zabbix.* to 'zabbix'@'localhost';
flush privileges;

53315-8k4znhvvspo.png

查看zabbix 数据库

mysql -uzabbix -pzabbix
show databases;

31272-foncy9oyfaw.png

6,安装zabbix二进制yum文件

rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-get
systemctl start zabbix-server
systemctl enable zabbix-server

7,使用mysql导入 Zabbix server 的初始数据库 schema 和数据

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix

91889-lhv8e6d1n39.png

提示没有选择数据库。

gunzip /usr/share/doc/zabbix-server-mysql*/create.sql.gz
cd /usr/share/doc/zabbix-server-mysql*/
vi create.sql

create.sql最上面加入 use zabbix;,即使用zabbix数据库。

66175-e41qrjhb1es.png

cat create.sql | mysql -uzabbix -pzabbix

无任何报错提示 则正常。

8,编辑/etc/php.ini,修改

date.timezone = PRC

9, 编辑/etc/httpd/conf/httpd.conf

Zabbix默认页面为index.php,添加index.php

<IfModule dir_module> 
DirectoryIndex index.html index.php
</IfModule>

10,编辑/etc/httpd/conf.d/zabbix.conf,修改如下

php_value date.timezone Asia/Shanghai

03281-7cnb2aeus02.png

然后重启apache服务。

二,初始化zabbix系统

1,输入http://hostip/zabbix 然后回车

34543-lhsg6acyx29.png

2,下一步

79468-3i57bm93y4.png

确定所有状态都为OK

3,下一步

90896-xmrhxh2k7jp.png

4,下一步

85871-43dm7oknkb5.png

5,下一步

61390-3j24u7mg1hi.png

6,登录,用户名是Admin密码是zabbix

59013-gipimkf9h2d.png

48768-eywhwlj0hf9.png

7,上图中提示Zabbix服务器端没有运行,查看日志,没有配置密码

cat /var/log/zabbix/zabbix_server.log

50339-p19vzgnz22l.png

vi /etc/zabbix/zabbix_server.conf

编辑如下内容:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

然后重新启动zabbix-server 服务

systemctl restart zabbix-server

80791-vozmmod227p.png

8,解决图形界面中文字体乱码

82656-u5j30i7hkw.png

复制出操作系统的微软雅黑字体,改后缀为ttf,然后把字体上传到/usr/share/zabbix/assets/fonts文件夹下

56302-mxw2e9lnn3l.png

编辑/usr/share/zabbix/include/defines.inc.php 修改如下

define('ZBX_GRAPH_FONT_NAME','msyh'); // font file name

17196-n0i8imk60bm.png

刷新浏览器界面

86100-jyte3i32xhm.png

回过头来再仔细看看,其中有几个地方是因为我的个人习惯而导致出错,当然这也是我的经验。
至此,zabbix服务端已经初始化配置完成。