Alex的博客

本博客的文章均为原创,是本人从事行业多年来所遇见一些小问题的解决心得,希望可以帮助到大家!



centos6.8 安装zabbix

1,下载安装官方源;

http://www.zabbix.com/download

选择自己的操作系统版本

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm

安装源

yum -y install zabbix-release-3.2-1.el6.noarch.rpm

刷新源

yum repolist


下载依赖关系OpenIPMI

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/OpenIPMI-libs-2.0.16-14.el6.x86_64.rpm

如果你是其他版本系统在这里去下载

https://pkgs.org/download/libOpenIPMI.so.0()(64bit)

安装依赖

rpm -ivh  OpenIPMI-libs-2.0.16-14.el6.x86_64.rpm



下载依赖关系dejavu-fonts-common

wget http://mirror.centos.org/centos/6/os/i386/Packages/dejavu-fonts-common-2.33-1.el6.noarch.rpm

如果你是其他版本系统在这里去下载

https://pkgs.org/download/dejavu-fonts-common

安装依赖

rpm -ivh dejavu-fonts-common-2.33-1.el6.noarch.rpm


下载依赖关系dejavu-sans-fonts

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/dejavu-sans-fonts-2.33-1.el6.noarch.rpm

如果你是其他版本系统在这里去下载

https://pkgs.org/download/dejavu-sans-fonts


安装依赖

rpm -ivh dejavu-sans-fonts-2.33-1.el6.noarch.rpm



查看源安装师傅成功

yum repolist all | grep zabbix

查看所有zabbix 可安装版本和包

yum repolist all | grep zabbix


开始安装

yum install -y zabbix-server-mysql zabbix-web-mysql   

如果安装失败就手动下载

http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/deprecated/

分别下载zabbix-web-mysql-3.2.4-1.el6.noarch.rpm zabbix-web-3.2.4-1.el6.noarch.rpm    zabbix-web-pgsql-3.2.4-1.el6.noarch.rpm zabbix-server-mysql-3.2.4-1.el6.x86_64.rpm

然后安装

yum -y install  zabbix-web-mysql-3.2.4-1.el6.noarch.rpm zabbix-web-3.2.4-1.el6.noarch.rpm    zabbix-web-pgsql-3.2.4-1.el6.noarch.rpm zabbix-server-mysql-3.2.4-1.el6.x86_64.rpm


客户端插件下载列表

http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/


创建数据库

mysql -u root -p

create database zabbix character set utf8 collate utf8_bin;

grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix!234';

flush privileges;

exit

初始化Zabbix库

cd /usr/share/doc/zabbix-server-mysql-3.2.4/

查找sql脚本包

ls -ltr --time-style="+|%Y-%m-%d|%H:%M:%S|"

gzip -d create.sql.gz

导入sql文件

mysql -u root -p

 source /usr/share/doc/zabbix-server-mysql-3.2.4/create.sql

修改配置文件

vi /etc/zabbix/zabbix_server.conf

主要修改数据库配置就好了

LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Abcd!234
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts

LogSlowQueries=3000


启动服务


service zabbix-server start

查看是否启动成功 监听端口

netstat -tupln | grep --color zabbix

配置:zabbix-server 的 HTTPD 虚拟主机

mkdir /var/www/html/zabbix
cd /usr/share/zabbix/
cp -a . /var/www/html/zabbix/
chown -R nginx:nginx /var/www/html/zabbix


具体的nginx+php+mysql环境请参考我前面发的文章,这里就不写出来了

然后访问http://192.168.1.105/setup.php

ip改成自己的,然后就直接在web上操作了


填写数据库信息

填写服务器信息 也可以不填写 如果填写了name 这个就是系统的名称,会在每个页面显示出来

完成后 默认用户名 密码是

Username: Admin

Password: zabbix


登陆后如果有报错


A non well formed numeric value encountered [zabbix.php:21 → require_once() → ZBase->run() → ZBase->processRequest() → CView->getOutput() → include() → make_status_of_zbx() → CFrontendSetup->checkRequirements() → CFrontendSetup->checkPhpMemoryLimit() → str2mem() in include/func.inc.php:410]
A non well formed numeric value encountered [zabbix.php:21 → require_once() → ZBase->run() → ZBase->processRequest() → CView->getOutput() → include() → make_status_of_zbx() → CFrontendSetup->checkRequirements() → CFrontendSetup->checkPhpPostMaxSize() → str2mem() in include/func.inc.php:410]
A non well formed numeric value encountered [zabbix.php:21 → require_once() → ZBase->run() → ZBase->processRequest() → CView->getOutput() → include() → make_status_of_zbx() → CFrontendSetup->checkRequirements() → CFrontendSetup->checkPhpUploadMaxFilesize() → str2mem() in include/func.inc.php:410]


这个是因为我们用的php是高版本的php7.1

修改一下include/func.inc.php文件就可以了这个文件是在web目录里的

vi include/func.inc.php

搜索 $last = strtolower(substr($val, -1));

然后替换成$last = substr($val,0,-1);

保存退出就OK了

到这里服务端端就搭建完成了,现在有点儿事先到这里后再补充完整


今天继续  被监控客户端配置我这里是监控一台linux服务器

首先我们再服务器端安装一下 zabbix-get-3.2.4-1.el6.x86_64.rpm

下载地址:

http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-get-3.2.4-1.el6.x86_64.rpm

 yum -y install zabbix-get-3.2.4-1.el6.x86_64.rpm

接下来在客户端

下载 zabbix-agent-3.2.4-1.el6.x86_64.rpm zabbix-get-3.2.4-1.el6.x86_64.rpm 两个rpm包

地址:

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.4-1.el6.x86_64.rpm

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-get-3.2.4-1.el6.x86_64.rpm

yum -y install zabbix-agent-3.2.4-1.el6.x86_64.rpm zabbix-get-3.2.4-1.el6.x86_64.rpm

编辑代理配置文件

vi  /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

#监控服务器ip

Server=192.168.111.128

#监控服务器ip默认端口

ServerActive=192.168.111.128:10051

#客户机名称 可自定义

Hostname=zabbix-client
Include=/etc/zabbix/zabbix_agentd.d/*.conf
启动服务


service zabbix-agent start

然后切换到服务端 测试能否获取客户端数据

运行

zabbix_get -s 客户端ip -p 10050 -k "system.uname"

输出如下就说明能获取到:

Linux Tasks 2.6.32-642.3.1.el6.x86_64 #1 SMP Tue Jul 12 18:30:56 UTC 2016 x86_64

其中linux tasks是我们再配置文件里面自定义的


windows客户端安装以及网卡流量监控

http://www.zabbix.com/downloads/3.2.0/zabbix_agents_3.2.0.win.zip

 客户端配置:(172.30.1.120,windows10企业版)
一.下载客户端并解压到指定目录D:\zabbix
链接:http://pan.baidu.com/s/1bp663Mn 密码:xffd
二.安装与配置zabbix_agent客户端
1.一管理员身份运行cmd,执行如下代码:
C:\WINDOWS\system32>D:\zabbix\bin\win64\zabbix_agentd.exe -i -c conf\zabbix_agentd.win.conf
zabbix_agentd.exe [8988]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [8988]: event source [Zabbix Agent] installed successfully
2.修改配置文件zabbix_agentd.win.conf
Server=192.168.2.45(被动模式的server端)
ServerActive=192.168.2.45(主动模式的server端)
Hostname=172.30.1.120(本机的IP地址)
3.添加自定义key
我们需要监控windows系统的流量,其实就是监控网卡信息的流量
用Notepad++来编辑zabbix_agentd.win.conf配置文件
在行末添加2个自定义key
PerfCounter=Net_Incoming,"\Network Interface(Intel[R] 82574L Gigabit Network Connection)\Bytes Received/sec",30
PerfCounter=Net_Outgoing,"\Network Interface(Intel[R] 82574L Gigabit Network Connection)\Bytes Sent/sec",30
 
备注:这2个commond也就是windows对应的网卡名称哟,你可以在资源管理器上查看到

        Net_Incoming 和Net_Outgoing是自定义的key名称 在创建监控项的时候直接调用这个key名称就可以了
相应的名称

 
也可以右键单击以太网卡属性,
 
 
有了这个我们就可以运行我们的cmd命令行,找出网卡的实际接口配置信息
C:\Users\yzj>typeperf -qx | find "Network Interface" | find "Bytes"|find "8257" > d:\network_info.txt
执行以上命令,可以将网卡信息保存到一个d:\network_info.txt文件里,玩linux的大手子应该都
觉得我说这些都烦了吧~
好的,让我们看看这个文件到底放了啥吧
 
 
结合我们网卡信息,我们不难从这个文本中找到属于我们网卡配置的字段。这就是要添加key的名称
第一行应该是我们的网卡的总流量(我从total看出来的,直觉告诉我是的)
第二行应该就是接受的流量(我是从received看出来的,大家都应该知道流量有发送也有接收,换句话说就是本机的流入流量)
第三行就应该是我们的发送流量了(也就是本机的流出流量)
三.启动zabbix_agent
说到启动,在windows目前我知道的有2种方法,建议使用方法1,方法2比较繁琐~
方法1:
还记得我们安装用的命令吗?
D:\zabbix\bin\win64\zabbix_agentd.exe -i -c conf\zabbix_agentd.win.conf
上面的命令是安装,我们只需要修改一个参数就好
D:\zabbix\bin\win64\zabbix_agentd.exe -s -c conf\zabbix_agentd.win.conf
补充说明:
 
-c  :指定配置文件所有位置
-i   :安装客户端
-s  :启动客户端
-x  :停止客户端
-d :卸载客户端
方法2:
   在"运行"输入 "services.msc",在里面找到"ZABBIXAGENT",并启动服务。
 

 
查看服务状态,如果没有运行就点击启动

 
启动过程

 
 
 
 
 
启动成功
 

 
好了,按照以上的操作无错误的话,客户端我们就配置完成了,最后我们要做的
事情就是关闭windows的防火墙!当然,你也可以不关闭,需要在windows写策略,
放行外部机器访问10050端口!(在这里我就没有去研究了,我们公司在局域网环境
我认为真的没有必要开启防火墙啥的~因为我们公司的外部也有防火墙呢)
 
 
服务端配置:(192.168.2.45,CentOs6.6)
让我们来个测试吧~请确认windows防火墙关闭了没
[root@bogon yinzhengjie]# /usr/local/zabbix/bin/zabbix_get -s 172.30.1.120 -k "Net_Incoming"
2879.799008
[root@bogon yinzhengjie]#
这个是我的生产环境,你可以改一下ip的哟,有返回值才是正常的!
接下来就是在web的配置界面了
1.创建模板
 

 
2.在模板上创建监控项
流入的流量监控项

 
流出流量的监控项
 

 
3.创建图像
 

 
4.查看图像
 

 
5.选择对应主机查看对应的流量图
 


zabbix监控windows服务器中cpu实时状态的配置过程

获得windows的各项指标

在cmd终端输入typeperf -qx > c:\指标.txt,然后会生成一个1M多的文本文件,可见一台电脑可以监控的项目竟然有这么多,这里举两个例子,一个叫\Processor(_Total)\% Processor Time,另一个叫\Processor(_Total)\% User Time,其实个数是没有限制的,爱找几个找几个,只不过后期在zabbix看到的图片跟盘丝洞似的。


上面举的这两个例子分别是\Processor(_Total)\% Processor Time,这个是7路进程cpu的总利用率,还有一个是\Processor(_Total)\% User Time,他是非核心操作消耗的cpu时间,我的机器同样是7路进程,这个也是总的时间数据。如果数据库在翻箱倒柜鸡头白脸的找数据,那么这两个数据就会变得很大值,这个时候需要发出警报告诉运维人员考虑优化一下算法。


打开C盘根目录下的那个zabbix_agentd.conf,然后在文件最末端输入一行字:

PerfCounter = UserPerfCountercpu,"\Processor(_Total)\% Processor Time",3

注意,这个命令的格式必须这么写,这是硬性规定,以上命令翻译成人话是:

计数器 = 一个查cpu的计数器,"链接的点是\Processor(_Total)\% Processor Time",每隔三秒查一次。


土黄的部分必须跟电脑的自带值一模一样,不然就会查不到,绿色的可以自己命名,绿色部分这个叫键值,在zabbix配置的时候需要用,必须一模一样,所以最好起一个有把握的名字,时间间隔可以根据实际情况设定。

同理,第二个被监控项就这么写:

PerfCounter UserPerfCountercpuUsertime,"\Processor(_Total)\% User Time",3

保存退出,之后再去“服务”里把zabbix_agent给重新启动一下。


这里再多说一句,有些同学可能偷懒没有取得管理员权限,而是把那个conf文件又提出来,把两行字输入到文件末端,然后再故技重施拷贝回C盘根目录,可能这个时候会出现“错误0x0070522:客户端没有所需的权限”,这个情况下,用管理员模式启动cmd,输入“icacls c:\ /setintegritylevel M”,注意c盘符后面有个空格,要是没有空格的话会提示“无效参数M”。这样就可以拷贝回C盘了,如果是要copy去D盘,那就把命令的c:\改成d:\就行。 


Part3,建立群组和主机

打开浏览器,地址栏输入“你的主机IP地址/zabbix",进入监控平台界面,选择上面的”组态“,然后点击”主机群组“,最右边有一个”创建主机群组“,这个是群组,组名随便写,因为是windows服务端,就写windowsServer,然后直接点击添加就行。


然后在“主机群组”旁边的旁边有一个主机,点击右上角的创建主机,注意,现在是主机了,也就是具体的客户端,主机名称输入主机的IP地址,可见名称随便写,这个可见名称就是以后在web监控平台上显示的名称,然后在群组选择里面就选择刚刚建立的那个windowsServer,如果一个主机没有群组是无法添加的。然后在下面把127.0.0.1改成主机的IP地址,其他DNS什么乱七八糟的就可以不用管,添加即可。

wKiom1anNT3AAAYEAABkQIYPvTc009.png这样的话,这个被监控的对象就锁定了,但是由于没有添加里面具体的被监控项目,所以整个过程还没有结束。


Part4,定义监控项和图形

很多朋友很好奇,说了那么多的zabbix,又安装又设置的,七大姑八大姨扯了好几篇子,具体运行出来是骡子还是马?其实zabbix一个监控的结果就是以波浪线的形式在一个坐标轴上画图,随时随刻记录被监控项的数值。其中一个图形里可以有多个监控项的图线,持练当空舞。


选择屏幕左上面的“组态”,然后选择模板,模板是具有共同特性的监控项,即一类监控项的集合。在右边点击“新建模板”,模板名称写成“windowsServer”,可见名称也可以这么叫,而群组不选择我们之前的那个windowsServer,而是Templates(模板),然后点击添加,添加完毕之后再回到这个界面,看见上面有一个“项目(0)”,点击一下之后选择“创建监控项”。


监控名称写ProcessCpu,下面的键值必须要跟C盘根目录下conf那个文件最后两行的绿色内容完全一致,字符类型选择浮点型,单位%,其他的默认即可。然后“存档”。

wKioL1anN7yi_--SAABiTFoTwKc851.png

然后再把第二个监控项User Time如法炮制添加进来。现在就有两个监控项,然后在一个坐标里体现出来。


选择项目(2)旁边的旁边那个“图形”,右上角创建图形,图形名称随便起,叫CPU就挺好。然后下面那些什么长宽高默认就行,最下面有一个项目,把刚刚那俩监控项打勾然后选择进行添加。然后就可以选择这两个监控项图线的颜色,绘图风格,左边出还有右边出还是中出等等乱七八糟的。最后选择添加。


再点击“主机群组”,点击成员,成员栏目里是刚刚设置的“可见的名称”,点击进来之后,右上面主机的旁边有一个模板,点击之后有一个“链接新模板”,“选择”出来一个表单,最下面有刚刚建立的那个windowsServer,打勾选择,更新。检查一下项目和主机里所有的监控项是不是处于“已启用”状态,如果有lost或者problem,就处理一下。

wKioL1anOAfgTJSKAACTdDEgXvk665.png这时就可以点击界面左上面的检测中,选择图形,把群组选成windowsServer,主机选成建立的那个主机名,图形选择起好的图形名字,然后一个坐标轴就出现了。图表下面有监控项的各种数值,图表里就是两条曲线在双龙戏珠。


浏览1154  评论0  Alex于 2017-4-11 11:27
发言