zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了

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等信息的收集。

2. zabbix的主要特点

- 安装与配置简单,学习成本低 
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能

3. Zabbix主要功能

 - CPU负荷
 - 内存使用
 - 磁盘使用
 - 网络状况
 - 端口监视
 - 日志监视 

4. 各组件介绍

zabbix agent:部署在被监控主机上,负责被监控主机的数据,并将数据发送给zabbix server。
zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等。
zabbix database:用于存储所有zabbix的配置信息、监控数据的数据库。
zabbix web:zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上。
zabbix proxy:可选组件,用于分布式监控环境中,zabbix proxy代表server端,完成局部区域内的信息收集,最终统一发往server端。

二、 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

备注:必须关闭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 # 查看状态

设置mysql的root密码

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

 创建数据库 zabbix 并授权

# mysql -uroot -pxxxxxx

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 # 

 下载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

 Zabbix-server
在3.X版本中,没有单独的zabbix-server安装包,安装了zabbix-server-mysql即为安装了server端包。
同时,我们可以在服务端安装zabbix_get包,以便向agent端发起测试。

# yum install zabbix-server-mysql zabbix-get

 导入zabbix初始化数据

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

 配置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

 启动zabbix-server

# systemctl start zabbix-server

 查看状态

# systemctl status zabbix-server

3. 安装zabbix web

 安装

# yum install zabbix-web-mysql

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

# vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai

 修改zabbix server访问端口:

  1. 编辑httpd.conf文件 :

    #vim /etc/httpd/conf/httpd.conf
    
  2. 修改默认的侦听端口和ServerName

    136 Listen 8383
    
  3. 重启apache服务,使配置生效:

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

    # vim /etc/sysconfig/iptables
    zabbix web -A INPUT -m state --state NEW -m tcp -p tcp --dport 8008 -j ACCEPT
    重启防火墙:service iptables restart
    
  5. 浏览器访问http://IP:8383/zabbix 测试是否修改成功

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

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第1张图片

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

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第2张图片

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

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第3张图片

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

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第4张图片
根据提示可以看到下面图形界面的操作都写到一个配置文件中,/etc/zabbix/web/zabbix.conf.php,确认无误后,点击“Finish”

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第5张图片

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

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第6张图片

 配置zabbix中文界面
#修改PHP配置文件
确认zabbix是否开启了中文件支持功能,

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

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

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第7张图片

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

配置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

启动zabbix-agent

# systemctl start zabbix-agent

三、 Zabbix使用

1. 监控主机

Web端添加Linux主机
配置-主机-创建主机,按下图配置好后点击“更新”

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第8张图片

2. 监控磁盘空间

监控项

配置-主机-监控项-创建监控项
名称随意,其他看图片,配置完点“更新“,键值:vfs.fs.size[/,pused]

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第9张图片

触发器

配置磁盘使用超过80%的触发器,超过报警
zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第10张图片

定时触发器:
表达式
{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]

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第11张图片

触发器

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

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第12张图片

4. 监控服务器CPU

监控项

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

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第13张图片

触发器

超过85%报警,表达式:{172.18.0.113:system.cpu.util[,idle].avg(1m)}<15
zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第14张图片

5. 监控服务日志

创建监控项(自定义键值

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

步骤

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

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

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

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

监控日志中出现的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

注意:(给脚本设置权限)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/

监控项

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第15张图片

触发器

报错超过50个示警
表达式:{172.18.0.106:usercenter_count.last()}>50
zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第16张图片

查看监控结果

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

监控中 - 最新数据
看数据

6. 实现发送邮件功能

1. 安装邮件发送工具mailx

yum install mailx # 安装
cp /etc/mail.rc /etc/mailrc.bak # 备份原来配置文件

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

set [email protected]
set smtp=smtp.qq.com:25
set [email protected]
set smtp-auth-password=  # 邮箱密码使用SMTP授权码
set smtp-auth=login

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

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

4. zabbix-web页面配置

1).新建媒介类型

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

脚本名称与引入的文件名称一直
新增三个脚本参数:

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

更新即可
zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第17张图片

2).用户添加报警媒介

管理 – 用户 – admin – 报警媒介 – 添加
zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第18张图片

添加报警媒介:
zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第19张图片

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

配置 – 动作 – 创建动作

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

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第20张图片
zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第21张图片

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

标题:

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

消息内容:

告警主机:{HOSTNAME1}

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

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

操作:如图
最后点击添加
zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第22张图片

5).查看状态

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

zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了_第23张图片

四、其他

官方文档: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

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

手写不易,有用请点赞!
有问题请留言!

你可能感兴趣的:(运维,zabbix,zabbix,运维,日志监控,服务器监控,端口监控)