centos7部署zabbix4.0

本章讲解一些有关zabbix的知识,包括安装部署,监控linux,mysql,监控端口可用性,设置grafana监控页面,
页面乱码问题,邮件报警,钉钉报警

安装zabbix

  • 1.关闭防火墙,selinux
  • 2.安装mysql
    下载MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

安装上面下载的yum repository

yum -y install mysql57-community-release-el7-10.noarch.rpm

安装mysql服务

yum -y install mysql-community-server

启动mysql服务并查看状态

systemctl start  mysqld.service
systemctl enable  mysqld.service
systemctl status mysqld.service

安装过程中会随机生成一个root用户的登录密码,找到他

grep "password" /var/log/mysqld.log

在这里插入图片描述

登录mysql

Mysql -u root -p

MySQL默认必须修改密码之后才能操作数据库:所以要改root密码
在这里插入图片描述8.新密码设置的时候如果设置的过于简单会报上面的错:
是因为MySQL有密码设置的规范,具体是与validate_password的值有关:
执行下述语句

set global validate_password_policy=0;
set global validate_password_length=1;

现在可以修改密码了

9.此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:

yum -y remove mysql57-community-release-el7-10.noarch

至此mysql安装完成

接下来我们下载zabbix,进行安装部署
进入官网:https://www.zabbix.com/
在这里插入图片描述在这里插入图片描述在这里插入图片描述更多详细内容请参考官方说明文档,详细的安装要求就不贴出来了。

  • 1、配置zabbix的yum源
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum clean all
  • 2、安装zabbix-server、mysql、zabbix-agent

注意:安装时若没有安装PHP环境,会自动安装PHP相关的包和httpd,因为zabbix的Web管理页面是PHP写的

 yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
  • 3、进入MySQL数据库并设置开机启动,创建数据库实例,授权
mysql -u root -ppassword
mysql> create database zabbix character set utf8 collate utf8_bin; 
  • #创建一个数据库
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';  # 授权zabbix用户拥有zabbix数据库的所有权限
mysql>flush privileges;  # 刷新数据库权限表    
mysql> quit;
  • 4、导入初始模式和数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix       
(红色的zabbix是指定的zabbix库,不是密码,要是不指定数据库,会报错No database selected)
  • 5、配置zabbix-server的配置文件zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf
#DBPassword=password(124行)
DBHost=localhost         # 数据主机名
DBName=zabbix           # 数据库实例
DBUser=zabbix             # 数据库里创建的用户名
DBPassword=zabbix     # 数据库里创建的密码
  • 6、编辑Apache的配置文件,设置正确的时区
vim /etc/httpd/conf.d/zabbix.conf
#php_value date.timezone Europe/Riga(20行)
改成 php_value date.timezone Asia/Shanghai
  • 7、重新启动 zabbix-server、zabbix-agent 和 httpd 并设置为开机自启动
systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd
  • 8、在浏览器输入地址http://服务器ip/zabbix/setup.php,出现欢迎界面,点击下一步,进行 zabbix
    的页面初始化配置
    在这里插入图片描述在这里插入图片描述注意:这个页面PHP设置要求全部OK
    在这里插入图片描述如果密码输错,是跳转不到下一步的。密码是前面设置的 zabbix
    在这里插入图片描述注意:这个“Zabbix server detail”页面中,”Name”处可填写对此监控系统的描述性文字,支持中文,有点像网站的名称,设置好后的效果如下图所示。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述第一次登录zabbix监控系统,默认用户名 Admin(注意 A 大写),默认密码 zabbix,确认可正常登录系统
    在这里插入图片描述登录进入系统后,确认 Zabbix server is running 的值是 Yes
    在这里插入图片描述然后选择 Administrator –> Users –> Admin,可以对页面语言和用户密码等进行设置
    在这里插入图片描述在这里插入图片描述刷新页面,就可以看到监控系统已设置为中文界面了。

zabbix监控linux

  • 在被监控主机上操作

安装源

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

安装agent

yum install -y zabbix-agent

修改配置文件

vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.100.70       #zabbix-server地址
ServerActive=192.168.100.70
Hostname=192.168.100.51  #添加被监控主机名称,需要与之后web端配置相同,也就是本机

启动服务,端口10050

systemctl start zabbix -agent.service
  • 添加被监控的linux主机

添加新的主机
配置—>主机—>创建主机
在这里插入图片描述主机名称要和配置文件里的hostname一致,我这里只是演示一下
在这里插入图片描述创建好是这样的:
在这里插入图片描述点击“测试监控Windows服务器”,之后进行4步操作,如下图:
在这里插入图片描述点击“更新”后,如下所示:
在这里插入图片描述查看监控内容
检测—>最新数据
在最新数据中需要筛选,
在这里插入图片描述点击“应用”,在下面就会列出所有的监控项
在这里插入图片描述查看图像
检测—>图形
选择正确的主机,选择要查看的图形,即可出图
在这里插入图片描述
三.创建dashboard展示zabbix
1.下载源

wget  https://dl.grafana.com/oss/release/grafana-6.0.0-1.x86_64.rpm

2.安装 rpm -ivh grafana-6.0.0-1.x86_64.rpm
安装插件

grafana-cli plugins install alexanderzobnin-zabbix-app
grafana-cli plugins install grafana-clock-panel
grafana-cli plugins install grafana-piechart-panel

3.启动服务

systemctl enable grafana-server
systemctl start grafana-server

登录地址: http://服务端IP:3000/login
登录账号:admin 初始登录密码:admin

4.导入zabbix接口
在这里插入图片描述我们会发现很多数据源类型,我们需要zabbix
在这里插入图片描述但是没有出现zabbix,这时我们找到我们刚才安装的插件
在这里插入图片描述点击进去后,点击update,这时我们就出现了zabbix数据源了
在这里插入图片描述点击zabbix配置,名称自定义
在这里插入图片描述在这里插入图片描述在这里插入图片描述测试成功即可,然后点击上面的仪表盘,进入选择仪表板即可
在这里插入图片描述显示界面
在这里插入图片描述
5.设置滚动播放
在这里插入图片描述
5.设置滚动播放
在这里插入图片描述四.监控mysql
前提:在客户端安装好mysql,并在mysql中配置好给zabbix监控的用户

 create user 'zabbix'@'localhost' identified by 'zabbix';
 grant select on *.* to 'zabbix'@'localhost';  (只给读权限就行了)

监控mysql方式有多种,我总结为需要写脚本和不用写脚本两种
1.不用写脚本(简单型)
在my.cnf中配置连接的用户信息

vim /etc/my.cnf
[client]
host=localhost
user= 'zabbix'
password='zabbix'

配置监控策略

vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/etc/zabbix  mysql -N | awk '{print $$2}'
UserParameter=mysql.ping,HOME=/etc/zabbix  mysqladmin ping 2>/dev/null | grep -c alive
UserParameter=mysql.version,mysql -V

按照这个格式就行,这个指定了客户端如何收集信息的命令
重启zabbix客户端

systemctl restart zabbix-agent

客户端测试

HOME=/etc/zabbix  mysqladmin ping 2>/dev/null | grep -c alive

服务端测试

zabbix_get -s192.168.21.139(客户端ip) -p 10050 -k mysql.ping

返回1表示在运行,即为成功

配置web端
选择自带的mysql模板
在这里插入图片描述查看“最新数据”选项
在这里插入图片描述

五.监控端口可用性
实现监控指定端口是否被监听效果,保证服务的正常运行。
步骤

1、创建监控项
配置——主机——(选择主机)——监控项——创建监控项
在这里插入图片描述2、
填入监控项名称,选择类型(注意默认类型是Zabbix 客户端,如果是主动监控的需要选择Zabbix 客户端主动式),选择键值,键值选择后填入需要监控的端口,可以起一个新的应用集Port listen,最后点击添加:
在这里插入图片描述在这里插入图片描述3、添加触发器
创建触发器,填入触发器名称,设置严重性,然后点击填写表达式,选择刚刚创建的监控项,点击插入。最后点击添加即创建完成触发器。
在这里插入图片描述在这里插入图片描述在这里插入图片描述4、监控测试
浏览最新数据,可以看到该监控状态为1,即该端口在监听状态。
在这里插入图片描述停止该端口的服务后,出现告警:
在这里插入图片描述服务再开启后,状态恢复。

六.配置邮件报警(脚本报警)
1.zabbix服务端配置(主要是搭建一个邮件服务器用来发邮件)

yum install mailx -y
vi /etc/mail.rc    
注意网易邮箱需要开启客户端授权码进行第三方登录
----文件末尾新增---
set bsdcompat
set from=xxxxxxxx@163.com
set smtp=smtp.163.com
set smtp-auth-user=xxxxxxxx@163.com
set smtp-auth-password=20154360213ldx (注意这个不是登陆密码,而是授权码,请百度获取163邮箱授权码)
set smtp-auth=login

保存后本地测试是否能发送邮件

echo "ttttttttttt" | mail -s "testmail" yyyyyyyyyy@qq.com

在这里插入图片描述可以看到,邮件从163邮箱服务端发送到QQ邮箱了

编写邮件脚本

cd /usr/lib/zabbix/alertscripts
vi mailx.sh          //编写发邮件脚本
#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
touch /tmp/mailx.log
chown -R zabbix.zabbix  /tmp/mailx.log
chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
chown -R zabbix:zabbix /usr/lib/zabbix/
[www.aa.com@ alertscripts]# ./mailx.sh 18752735985@163.com "主题" "内容"     

//测试发邮件脚本是否可以正常工作
在这里插入图片描述测试成功

在服务器WEB上配置
管理-》报警媒体类型-》创建媒体类型-》

名称:mail
类型:脚本
脚本名称:mailx.sh
脚本参数:       //新增以下三个参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

在这里插入图片描述
把报警媒介加到用户上
管理-用户-点击Admin-报警媒介:
在这里插入图片描述创建一个报警动作
配置-》动作-》创建动作
名称:mail
条件 A 主机群组=Linux servers

操作-》如下配置

默认操作步骤持续时间 60
默认接收人 : {TRIGGER.STATUS}:{TRIGGER.NAME}
默认信息:
告警主机:{HOST.NAME}
告警  IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
事件  ID:{EVENT.ID}
操作细节:-》
操作类型:发送消息
发送到用户:Admin (Zabbix Administrator)
仅送到:Mail-Test  //一定要配置否则邮件发送不成功

在这里插入图片描述在这里插入图片描述在这里插入图片描述

恢复操作:{TRIGGER.STATUS}:{TRIGGER.NAME}
恢复信息:
恢复主机:{HOST.NAME}
恢复  IP:{HOST.IP}
恢复时间:{EVENT.DATE}-{EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}:{ITEM.VALUE}
恢复  ID:{EVENT.ID}
操作细节:-》
操作类型:发送消息
发送到用户:Admin (Zabbix Administrator)
仅送到:Mail-Test  //一定要配置否则邮件发送不成功

在这里插入图片描述重启服务

systemctl restart zabbix-server
systemctl restart zabbix-agent.service

模拟服务报警,会受到邮件
在这里插入图片描述

七.zabbix中文乱码问题
在这里插入图片描述解决乱码
1、从Window服务器找到相应的字休复制到zabbix Server服务器上:
控制面板–>字体–>选择一种中文字库例如“楷体”(simkai.ttf)
在这里插入图片描述2、将我们选择的字体文件上传到zabbix web服务器/usr/share/zabbix/assets/fonts目录下
(我的zabbix版本是4.0,3版本的目录是/usr/share/zabbix/fonts
在这里插入图片描述修改文件vim /usr/share/zabbix/include/defines.inc.php
把graphfont替换成simkai,总共有两个地方,替换后刷新页面即可

八.设置钉钉报警
1.电脑端网页登录钉钉,查看告警机器人的webhook(没有就新创一个)注意创建时的安全要求,建议使用IP地址段
在这里插入图片描述2.在zabbix-server服务端操作,创建钉钉报警的脚本

vim  /usr/lib/zabbix/alertscripts/dd.py
#!/usr/bin/env python
 #-*- coding:utf-8 -*-
import os
import sys
import json
import requests
#这里填写创建的自定义机器人地址
api_url = 'https://oapi.dingtalk.com/robot/send?access_token=11746f507096ac0ce4550f29bebca6825d4866fc14022d3d354ba331d3fa32df'
红色部分为你的钉钉webhook
headers = {'Content-Type':'application/json;charset=utf-8'}
def msg(text):
    json_text={
        "msgtype":"text",
        "text":{
            "content":text
        },
        "at":{
            "atMobiles":[
                "18478019984"         # @的人的手机号(也就是钉钉账号)
            ],
            "isAtAll":False           # 是否@全员
        }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
#text的值为运行脚本带的参数
    text = sys.argv[1]
       msg(text)
chmod +x /usr/lib/zabbix/alertscripts/dd.py
./dd.py  hahahahh   

执行脚本测试一下钉钉能否收到信息

可能会报错没有requests模块
解决:yum install  epel-release
          yum install python2-pip -y
          pip   install   requests

如果可以收到信息就来配置zabbix web端
创建媒介类型
在这里插入图片描述在这里插入图片描述参数 {ALERT.MESSAGE}
把报警媒介加到用户上(注意要记住自己把报警加到哪个用户上了,后面要用)
在这里插入图片描述创建动作
触发条件可以不要,我只是用来测试
在这里插入图片描述在这里插入图片描述

默认标题:服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
发生故障,请马上检查!!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}

在这里插入图片描述
恢复操作也是一样的,注意用户也是和上面一样是加入报警媒介的用户,记得点更新
在这里插入图片描述

故障已排除,请知晓!!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}

在这里插入图片描述

确认人:{USER.FULLNAME} 
时间:{ACK.DATE} {ACK.TIME} 
确认信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}

现在停掉你监控的服务,应该可以收到钉钉报警了
在这里插入图片描述九.zabbix自动发现主机
前提是client端安装了zabbix_agent
借鉴一下他人的
https://www.cnblogs.com/cyleon/p/11121781.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值