zabbix3.4.1使用教程

一、 Zabbix概念

1. Zabbix简介

2. zabbix的主要特点

3. Zabbix主要功能

4. 各组件介绍

二、 Zabbix的安装

1. 网络配置

2. 安装配置zabbix server(同时数据库)

3. 安装zabbix web

4. 安装配置zabbix agent

三、 Zabbix使用

1. 监控主机

2. 监控磁盘空间

监控项

触发器

3. 监控服务端口

监控项

触发器

4. 监控服务器CPU

监控项

触发器

5. 监控服务日志

创建监控项(**自定义键值**)

步骤

1、zabbix_agent.conf配置文件中引入配置文件

2、配置文件

3、自定义脚本

wc命令:

4、创建监控级别

监控项

触发器

6. 实现发送邮件功能

1. 安装邮件发送工具mailx

2. 配置zabbix_service.conf文件,引入发送脚本

3. 编写发送脚本

4. zabbix-web页面配置

1).新建媒介类型

2).用户添加报警媒介

3).配置中给触发器添加动作

4).操作和恢复操作设置

5).查看状态

四、其他

一、 Zabbix概念

1. Zabbix简介

   zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

   zabbix由zabbix server与可选组件zabbix agent两部门组成。

   zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。

   zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

1

2

3

4

2. zabbix的主要特点

- 安装与配置简单,学习成本低 

- 支持多语言(包括中文)

- 免费开源

- 自动发现服务器与网络设备

- 分布式监视以及WEB集中管理功能

- 可以无agent监视

- 用户安全认证和柔软的授权方式

- 通过WEB界面设置或查看监视结果

- email等通知功能

1

2

3

4

5

6

7

8

9

3. Zabbix主要功能

 - CPU负荷

 - 内存使用

 - 磁盘使用

 - 网络状况

 - 端口监视

 - 日志监视 

1

2

3

4

5

6

4. 各组件介绍

zabbix agent:部署在被监控主机上,负责被监控主机的数据,并将数据发送给zabbix server。

zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等。

zabbix database:用于存储所有zabbix的配置信息、监控数据的数据库。

zabbix web:zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上。

zabbix proxy:可选组件,用于分布式监控环境中,zabbix proxy代表server端,完成局部区域内的信息收集,最终统一发往server端。

1

2

3

4

5

二、 Zabbix的安装

1. 网络配置

连接centos 系统后,首先关闭防火墙和SELINUX,如不关闭会各种拦截,网页访问等故障,容易造成蛋疼哦.


# systemctl stop firewalld.service #关闭防火墙服务


# systemctl disable firewalld.service #开机不启动


# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #替换文本参数


# grep SELINUX=disabled /etc/selinux/config #查文本状态


# setenforce 0 #关闭当前SELINUX

1

2

3

4

5

6

7

8

9

备注:必须关闭selinux监控,否则zabbix服务端没有权限访问zabbix客户端文件。


2. 安装配置zabbix server(同时数据库)

 安装mysql数据库


# yum -y install mariadb mariadb-devel mariadb-server  # centos7下安装的是mariadb

# systemctl enable mariadb # 设置开机自启动

# systemctl start mariadb # 启动

# systemctl status mariadb # 查看状态

1

2

3

4

设置mysql的root密码


# mysqladmin -u root -h localhost password 'xxxxxxxx'

1

 创建数据库 zabbix 并授权


# mysql -uroot -pxxxxxx

1

create database zabbix character set utf8 collate utf8_bin;

grant all privileges on zabbix.* to zabbix@localhost identified by ‘xxxxxxxx’;

quit


安装zabbix-server,因为mysql初始化数据的脚本通过安装zabbix-server下载的


 备份本地yum 源


# cp -r /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 

1

 下载3.4.1 rpm


# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm

1

 Zabbix-server

在3.X版本中,没有单独的zabbix-server安装包,安装了zabbix-server-mysql即为安装了server端包。

同时,我们可以在服务端安装zabbix_get包,以便向agent端发起测试。


# yum install zabbix-server-mysql zabbix-get

1

 导入zabbix初始化数据


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

1

 配置zabbix_server的配置文件


# vim /etc/zabbix/zabbix_server.conf


37:LogFile=/var/log/zabbix/zabbix_server.log

48:LogFileSize=0

71:PidFile=/var/run/zabbix/zabbix_server.pid

81:SocketDir=/var/run/zabbix

90:DBHost=localhost

99:DBName=zabbix

115:DBUser=zabbix

123:DBPassword=123456

130:DBSocket=/var/lib/mysql/mysql.sock

138:DBPort=3306

328:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log

445:Timeout=4

487:AlertScriptsPath=/usr/lib/zabbix/alertscripts

497:ExternalScripts=/usr/lib/zabbix/externalscripts

533:LogSlowQueries=3000

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

 启动zabbix-server


# systemctl start zabbix-server

1

 查看状态


# systemctl status zabbix-server

1

3. 安装zabbix web

 安装


# yum install zabbix-web-mysql

1

 编辑Zabbix前端的PHP配置

Zabbix前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf 。一些PHP设置已经完成了配置,重点是调整时区的配置,修改为亚洲上海。


# vim /etc/httpd/conf.d/zabbix.conf

php_value date.timezone Asia/Shanghai

1

2

 修改zabbix server访问端口:


编辑httpd.conf文件 :


#vim /etc/httpd/conf/httpd.conf

1

修改默认的侦听端口和ServerName


136 Listen 8383

1

重启apache服务,使配置生效:


# service httpd restart

1

添加防火墙规则,允许端口访问 (前边防火墙关了,这里可以不用管)


# vim /etc/sysconfig/iptables

zabbix web -A INPUT -m state --state NEW -m tcp -p tcp --dport 8008 -j ACCEPT

重启防火墙:service iptables restart

1

2

3

浏览器访问http://IP:8383/zabbix 测试是否修改成功


 访问Zabbix Web页面,http://IP:8383/zabbix,默认的用户名/密码为 Admin/zabbix




确保PHP所有项目都OK,然后点击“Next step”




此处为连接mysql的配置,请按照前面安装时的配置填写,然后点击“Next step”




Name处可以填写网站的名称,然后点击“Next step”



根据提示可以看到下面图形界面的操作都写到一个配置文件中,/etc/zabbix/web/zabbix.conf.php,确认无误后,点击“Finish”




登陆zabbix前端,默认账号为 Admin,默认密码为zabbix




 配置zabbix中文界面

#修改PHP配置文件

确认zabbix是否开启了中文件支持功能,


# vim /usr/share/zabbix/include/locales.inc.php

1

浏览器登陆zabbix前端,设置语言为Chinese(zh_CN),然后点击“Update”,刷新页面就可以看到中文了。




4. 安装配置zabbix agent

安装zabbix-agent


# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.4-2.el7.x86_64.rpm

# yum install -y zabbix-agent zabbix-get

1

2

配置zabbix-agent


# vim /etc/zabbix/zabbix_agentd.conf # 修改agent配置文件

Server=172.18.0.113 # zabbix服务端内网IP

ServerActive=172.18.0.113 # zabbix服务端内网IP,Active表示agent主动推送

Hostname=172.18.0.106 # zabbix客户端主机名称,需要和web端添加的名称一致,一般写自己ip

Include=/etc/zabbix/zabbix_agentd.d/*.conf

1

2

3

4

5

启动zabbix-agent


# systemctl start zabbix-agent

1

三、 Zabbix使用

1. 监控主机

Web端添加Linux主机

配置-主机-创建主机,按下图配置好后点击“更新”




2. 监控磁盘空间

监控项

配置-主机-监控项-创建监控项

名称随意,其他看图片,配置完点“更新“,键值:vfs.fs.size[/,pused]




触发器

配置磁盘使用超过80%的触发器,超过报警



定时触发器:

表达式

{192.168.0.111:net.tcp.port[,8000].last()}=0 and {192.168.0.111:net.tcp.port[,8000].time()}>=033000 and {192.168.0.111:net.tcp.port[,8000].time()}<=213000


监控8000端口使用情况,每天03:30~21:30期间触发器生效


3. 监控服务端口

监控项

以redis(port:6379)为例,键值:net.tcp.port[,6379]




触发器

键值:{172.18.0.106:net.tcp.port[,6379].last()}=0




4. 监控服务器CPU

监控项

键值:system.cpu.util[,idle]




触发器

超过85%报警,表达式:{172.18.0.113:system.cpu.util[,idle].avg(1m)}<15



5. 监控服务日志

创建监控项(自定义键值)

思想

通过自定义键值,引入脚本,根据脚本实现服务的日志监控


步骤

1、zabbix_agent.conf配置文件中引入配置文件

vim /etc/zabbix/zabbix_agentd.conf

Include=/etc/zabbix/zabbix_agentd.d/*.conf

1

2

2、配置文件

cd /etc/zabbix/zabbix_agentd.d/

userparameter_jvm.conf  userparameter_log.conf  userparameter_mysql.conf

配置文件内容

UserParameter=test_log,/etc/zabbix/script/logs/log_usercenter-service.sh

UserParameter=usercenter_count,/etc/zabbix/script/logs/count_eq-usercenter-service.sh

1

2

3

4

5

3、自定义脚本

/etc/zabbix/script/logs/log_usercenter-service.sh


#!/bin/bash

source /etc/zabbix/log.conf

logdate=$(date "+%Y-%m-%d")

msg=`tail -n "$row" /service1/usercenter-service1/logs/usercenter-service."$logdate"-*.log |grep -E "${logtype_02}"|grep -E "${logtype_01}"`

#msg=`grep -E "${logtype_01}" /usr/service/usercenter-service/logs/usercenter-service."$logdate"-0.log `

count=`echo "$msg" | wc -l`


if [ ! -n "$msg" ];then

echo "OK"

exit 0

fi

if [ $count -gt 0 ];then

echo "$msg"

exit 1

else

echo "OK"

exit 0

fi

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

监控日志中出现的error数量


/etc/zabbix/script/logs/count_eq-usercenter-service.sh


#!/bin/bash

source /etc/zabbix/log.conf

logdate=$(date "+%Y-%m-%d")

msg=`tail -n "$row" /zyqservice1/eq-usercenter-service1/logs/eq-usercenter-service."$logdate"-*.log |grep -E "${logtype_02}"|grep -E "${logtype_01}"`

#msg=`grep -E "${logtype_01}" /usr/zeqservice/eq-usercenter-service/logs/eq-usercenter-service."$logdate"-0.log `

count=`echo "$msg" | wc -l`

if [ ! -n "$msg" ];then

        echo "0"

        exit 0

fi

if [ $count -gt 0 ];then

        echo "$count"

        exit 1

else

        echo "OK"

        exit 0

fi

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

注意:(给脚本设置权限)chmod 777 *.sh


wc命令:

wc -l : 统计行

wc -c: 统计字节数

wc -m:统计字符数,不能与-c同时使用

wc -w:统计字数

wc -L:打印最长长度


4、创建监控级别

vim /etc/zabbix/log.conf

logtype_01=ERROR

logtype_02=Exception

row=10000


脚本存放位置

/etc/zabbix/script/logs/

1

2

3

4

5

6

7

8

监控项



触发器

报错超过50个示警

表达式:{172.18.0.106:usercenter_count.last()}>50



查看监控结果


监控中 - 仪表盘

监控项达到触发器设置的提示点,会在仪表盘中显示错误信息,需要确认后信息才会消失。


监控中 - 最新数据

看数据


6. 实现发送邮件功能

1. 安装邮件发送工具mailx

yum install mailx # 安装

cp /etc/mail.rc /etc/mailrc.bak # 备份原来配置文件


vi /etc/mail.rc # 修改配置文件内容,添加发送邮件的邮箱信息


set from=...@qq.com

set smtp=smtp.qq.com:25

set smtp-auth-user=...@qq.com

set smtp-auth-password=  # 邮箱密码使用SMTP授权码

set smtp-auth=login

1

2

3

4

5

6

7

systemctl restart postfix.service #重启服务


echo hello word | mail -s " title" …@qq.com # 接收的邮箱,测试一下


2. 配置zabbix_service.conf文件,引入发送脚本

/etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts

ExternalScripts=/usr/lib/zabbix/externalscripts

1

2

3

3. 编写发送脚本

/usr/lib/zabbix/alertscripts/sendmail.sh


内容:


#!/bin/bash 

messages=`echo $3 | tr '\r\n' '\n'`


subject=`echo $2 | tr '\r\n' '\n'`


echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

1

2

3

4

5

6

4. zabbix-web页面配置

1).新建媒介类型

管理 – 报警媒介类型 – 创建媒体类型


脚本名称与引入的文件名称一直

新增三个脚本参数:


{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

1

2

3

更新即可



2).用户添加报警媒介

管理 – 用户 – admin – 报警媒介 – 添加



添加报警媒介:



3).配置中给触发器添加动作

配置 – 动作 – 创建动作


动作页面:触发条件选择触发器,选择中选择你要选择的触发器,最后添加,更新





4).操作和恢复操作设置

标题:


警报:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

1

消息内容:


告警主机:{HOSTNAME1}


告警时间:{EVENT.DATE} {EVENT.TIME}


告警等级:{TRIGGER.SEVERITY}


告警信息: {TRIGGER.NAME}

1

2

3

4

5

6

7

操作:如图

最后点击添加



5).查看状态

触发器触发时,仪表板上如下显示,动作下不为空,点击后可看mail发送状态




四、其他

官方文档:https://www.zabbix.com/documentation/


zabbix报错排错大全

https://www.cnblogs.com/dbslinux/p/9465803.html


日志文件: vi /var/log/zabbix/zabbix-agentd.log


1.系统提示zabbix共享内存报错

zabbix_agentd [5922]: cannot open log: cannot create semaphore set: [28] No space left on device


解决:

修改 vim /etc/sysctl.conf


kernel.sem =500  64000   64      256

1

sysctl -p /etc/sysctl.conf


后便能够正常启动了。(报错原因:kernel.sem参数设置过小 ,原先系统默认设置的为 250 32000 32 128)


2.数据库问题

浏览器打开zabbix页面报Error connecting to database: Access denied for user ‘zabbix’ @ ‘localhost’ to databas


/etc/zabbix/web/zabbix.conf.php

————————————————


                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/weixin_42170236/article/details/99942384


标签: none

添加新评论