zabbix之 zabbix环境配置和安装

一 常见的监控方式:

开源监控软件:cacti、nagios、zabbix、smokeping、open-falcon等

Cacti:

基于LAMP平台展现的网络流量监测及分析工具,通过SNMP技术或自定义脚本从目标设备/主机获取监控指标信息;其次进行数据存储, 调用模板将数据存到数据库,使用rrdtool存储和更新数据,通过rrdtool绘制结果图形;最后进行数据展现,通过Web方式将监控结果呈现出来。
地址: https://www.cacti.net/ https://github.com/Cacti/cacti

Nagios:

用来监视系统和网络的开源应用软件,利用其众多的插件实现对本机和远端服务的监控,当被监控对象发生异常时,会及时向管理员告 警,提供一批预设好的监控插件,用户可以之间调用,也可以自定义Shell脚本来监控服务,适合各企业的业务监控,可通过Web页面显示对象状 态、日志、告警信息,分层告警机制及自定义监控相对薄弱。
地址:https://www.nagios.org/

Smokeping:

是一款用于网络性能监测的开源监控软件,主要用于对IDC的网络状况,网络质量,稳定性等做检测,通过rrdtool制图方式,图形化 地展示网络的时延情况,进而能够清楚的判断出网络的即时通信情况。
地址:https://oss.oetiker.ch/smokeping/ http://blogs.studylinux.net/?p=794

Open-falcon:

小米公司开源出来的监控软件,监控能力和性能较强。
地址: https://www.open-falcon.org/ https://github.com/XiaoMi/open-falcon

Zabbix:

目前使用较多的开源监控软件,可横向扩展、自定义监控项、支持多种监控方式、可监控网络与服务等。
地址:https://www.zabbix.com/cn/

商业监控解决方案:

监控宝(https://www.jiankongbao.com/)、听云(https://www.tingyun.com/),阿里云监控…

这里,我们选择开源监控软件 zabbix

二 zabbix介绍

zabbix 适用于任何基础架构,服务,应用程序和资源
在这里插入图片描述

2.1 介绍

zabbix是一个基于web界面的企业级开源监控软件,
Zabbix服务器需要LAMP环境或LNMP环境,提供分布式系统监控与网络监视功能。
具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表、图表的绘制等功能。
监测对象可以是Linux或Windows服务器,也可以是路由器、交换机等网络设备,通过SNMP、zabbix Agent、PING、端口监视等方法提供对远程网络服务器等监控、数据收集等功能。

2.2 zabbix监控架构:

zabbix根据网络环境、监控规模等外界因素分为三种架构:server-client(直接连接)、master-node-client(Node架构)、server-proxy-client(proxy架构),如下图所示:

server-client架构:

server-client架构是zabbix最简单的架构,监控机和被监控机之间不经过任何代理,直接在zabbix server和zabbix agent(agent:部署在被监控端,用于采集数据)之间进行数据交互,适用于网络比较简单,设备较少的监控环境。

master-node-client架构:

master-node-client架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境。
每个node同时也是一个server端,node下面可以接proxy,也可以直接接client。node有自己的配置文件和数据库,其要做的就是将配置信息和监控数据向master同步。当master宕机后,node可以保证架构的完整性。

server-proxy-client架构:

proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server。
该架构经常是和master-node-client架构做比较的架构,一般适用于跨机房、跨网络的中型网络架构的监控。

2.3 zabbix agent来说的工作模式

被动模式

就是由zabbix server向zabbix agent发出指令获取数据,即zabbix agent被动的去获取 数据并返回给zabbix server,zabbix server周期性的向agent 索取数据,
这种模式的最大问题就 是会加大zabbix server的工作量,在数百台服务器的环境下zabbix server不能及时获取到最新 数据,但这也是默认的工作方式。

主动模式

是有zabbix agent主动采集数据并返回给zabbix server,不再需要zabbix serve进行干 预,
因此主动模式在一定程度上可减轻zabbix server的压力。

2.4 zabbix的四大核心任务:

采集:zabbix-server, zabbix-proxy,zabbix-agent
Agentless:SNMP,Telnet,ssh, IPMI, JMX,
Agent:zabbix agent
存储:
zabbix database
展示:
 zabbix web 
 graph -> screen -> slideshow(将多个screen以幻灯片的方式进行轮流展示) 
告警:
host (host groups) <- templates 
 host -> items -> triggers -> action (条件-conditions, 操作-operations)

三 zabibix配置

准备环境:
环境:centos7 {最小化安装就可以}
内存: 4G往上
存储大小: 50G往上

3.1 安装依赖包:

 yum install gcc libxml2-devel   net-snmp net-snmp-devel curl  curl-devel php php-bcmath php-mbstring mariadb mariadb-devel mariadb-server  -y

3.2 准备数据库:

#systemctl enable mariadb
#systemctl start mariadb

mariadb数据的初始化配置配置和修改查看此文章

https://blog.csdn.net/liaowunonghen/article/details/104182249

在这里插入图片描述

3.3 安装:

备注: 我安装选择的自定义安装

3.3.1 编译安装

[root@zabbix-server ~]# cd /usr/local/src/
[root@zabbix-server src]# zabbix-4.0.1.tar.gz
[root@zabbix-server zabbix-4.0.1]# useradd zabbix -s /sbin/nologin
#./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --withlibxml2 --enable-java
 # make && make install

3.3.2 yum安装和服务配置

配置zabbix4.0源

使用清华大学的zabbix镜像源:
wget -P /etc/yum.repos.d/ http://down.whsir.com/downloads/zabbix.repo

或者

官方镜像:
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

#yum install zabbix-web-mysql
下载出现安装出现了错误
在这里插入图片描述

解决:

更换yum镜像源就可以解决。


继续:

#yum install zabbix-server-mysql zabbix-agent

3.3.3 mysql新建数据库和用户以及导入sql文件

#新建数据库
mysql> create database zabbix1 character set utf8 collate utf8_bin;
//创建用户
mysql> insert into mysql.user(Host,User,Password) values(“localhost”,“zabbix1”,password(“123456”));
//刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为:zabbix1密码为:123456的用户。

#导入数据库

zcat  /usr/share/doc/zabbix-server-mysql-4.0.18/create.sql.gz |mysql -uzabbix1 -p123456 zabbix1```

3.3.4 修改server配置文件

[root@zabbix-server ~]# cat /etc/zabbix/zabbix_server.conf |grep -vE “^$|#”

LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBName=zabbix1
DBUser=zabbix1
DBPassword=123456
DBPort=3306
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=30
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
启动zabbix-server服务

[root@zabbix-server yum.repos.d]# systemctl enable zabbix-server
[root@zabbix-server yum.repos.d]# systemctl start zabbix-server
启动成功后,查看端口10051是否存在
在这里插入图片描述

3.3.5 httpd配置:

 安装httpd:
 #yum install httpd-y {假如之前有安装httpd,那么不需要再安装了}

http的配置文件

[root@zabbix-server html]# cat  /etc/httpd/conf.d/zabbix.conf 
#
# Zabbix monitoring system php web frontend
#

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Require all granted

    <IfModule mod_php5.c>
        php_value max_execution_time 300
        php_value memory_limit 256M
        php_value post_max_size 16M
        php_value upload_max_filesize 5M
        php_value max_input_time 300
        php_value max_input_vars 10000
        php_value always_populate_raw_post_data -1
        # php_value date.timezone Europe/Riga
    </IfModule>
</Directory>

<Directory "/usr/share/zabbix/conf">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/app">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/include">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/local">
    Require all denied
</Directory>

重启http服务
 # systemctl restart httpd

3.4 web界面安装

3.4.1 http://ip/zabbix 方式进行访问

在这里插入图片描述

3.4.2 下一步

在这里插入图片描述

显示date.timezone Fail错误
解决:
vim /etc/php.ini 
修改
date.timezone = Asia/Shanghai

重启http服务
systemctl restart httpd
如图,检测显示正常,{图片中的我的date.timezone写错了,应该是 Asia/Shanghai }
在这里插入图片描述

3.4.3 配置数据库

在这里插入图片描述

3.4.4 zabbix-server

在这里插入图片描述

3.4.5 确认配置

在这里插入图片描述
##### 3.4.6
配置完成
在这里插入图片描述

3.4.6 进行登陆

账号密码

在这里插入图片描述

登陆界面出现如下错误

在这里插入图片描述
是由于时间设置出现了问题,
1, Http的配置有修改
2,php的配置关于时间部分要修改,由于我之前修改过了。
原因
cat /etc/httpd/conf.d/zabbix.conf

php_value date.timezone Asia/Shanghai
重启httpd服务

在这里插入图片描述

3.4.7 汉化zabbix

在这里插入图片描述

点击更新后,是中文了。

在界面变成中文后,点击监测中–>图形,会发现下方图形中有乱码导致数据无法正常显示;该问题是由于zabbix默认使用的是“DejaVuSans.ttf”(zabbix3.2.7默认使用的是“graphfont.ttf”),该字体对中文支持度不好,因此下方数据会有乱码。

解决办法

是将本地的中文字体上传至zabbix的fonts目录,之后修改include下的defines.inc.php,将文本中所有的“graphfont.ttf”,替换为上传的中文字体,这是使用黑体

1、在本地的C:\Windows\Fonts下选择自己喜欢的字体,此处选择黑体
在这里插入图片描述
然后上传到
zabbix的fonts目录(zabbix的web安装路径下的fonts)

/usr/share/zabbix/assets/fonts/

修改/usr/share/zabbix/include/defines.inc.php
注意:目录是zabbix的web安装所在的路径,记得先备份下文件

vim 编辑该文件,

使用%s/graphfont/simhei/g命令对graphfont进行全局替换
或者下面两行进行替换未simhei

define('ZBX_GRAPH_FONT_NAME',		'graphfont'); // font file name
define('ZBX_FONT_NAME', 'graphfont');

重启web服务器

service httpd restart

查看页面;
zabbix中文显示乱码的问题及解决
显示正常。

四 zabbix数据测试

zabbix_get命令是在server端用来检查agent端的一个命令,在添加完主机或者触发器后,不能正常获得数据,可以用zabbix_get来检查能否采集到数据,以便判断问题症结所在。

测试获取zabbix agent数据命令:

# yum install zabbix-get -y
在这里插入图片描述

zabbix_get 参数说明:

-s --host: 指定客户端主机名或者IP
-p --port:客户端端口,默认10050
-I --source-address:指定源IP,写上zabbix server的ip地址即可,一般留空,服务器如果有多ip的时候,你指定一个。
-k --key:你想获取的key
至于使用长参数还是短的,自己选,我经常使用-s而不是-host,
如果不知道key参数可以使用 zabbix_agentd -p 寻找自己想要找的参数
[root@host~]# zabbix_agentd -p | grep system.cpu.load
system.cpu.load[all,avg1] [d|0.040000]

#具体例子
#zabbix_get -s 192.168.10.20 -p 10050 -k “system.cpu.load[all,avg1]”

发布了77 篇原创文章 · 获赞 0 · 访问量 3232

猜你喜欢

转载自blog.csdn.net/liaowunonghen/article/details/104723665