我是靠谱客的博主 无聊跳跳糖,最近开发中收集的这篇文章主要介绍zabbix4.0 部署 报警 配置zabbix安装,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

zabbix安装

清华源安装

清华源的地址

https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/

zabbix安装需要 安装:
zabbix-web zabbix-web-mysql zabbix-agent zabbix-release zabbix-server-mysql
客户端:只用安装zabbix-agent,
可以预先下载这些文件

#使用 yum localinstall xxx.rpm
mdkir /opt/zabbix_source_rpm
-p
cd /opt/zabbix_source_rpm
wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-web-mysql-4.0.17-2.el7.noarch.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-web-4.0.17-1.el7.noarch.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-server-mysql-4.0.17-2.el7.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.17-1.el7.x86_64.rpm
#rpm 直接安装
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-server-mysql-4.0.17-1.el7.x86_64.rpm
https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-web-mysql-4.0.1-1.el7.noarch.rpm
https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.17-1.el7.x86_64.rpm

网速给力的时候
rpm -Uvh --oldpackage 强制安装

rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

cat
> /etc/yum.repos.d/zabbix.repo<<EOF
[zabbix]
name=Zabbix Official Repository - $basearch
#baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
#[zabbix-non-supported]
#name=Zabbix Official Repository non-supported - $basearch
#baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
#enabled=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
#gpgcheck=1
EOF

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

登录阿里源的zabbix

https://mirrors.aliyun.com/zabbix/zabbix/

选择安装的版本点击进入
例如:4.3

centos选择 rhel点击进入
选择centos的版本,centos7就选择7
选择x86_64/ 进入找到需要的版本地址
例如:zabbix-release-4.3-3.el7.noarch.rpm
获取安装的地址:https://mirrors.aliyun.com/zabbix/zabbix/4.3/rhel/7/x86_64/zabbix-release-4.3-3.el7.noarch.rpm
下面两条命令可以安装

配置修改

zabbix_mysql配置

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";
flush privileges;
#

注意mysql 配置 collate不然会报字节长度的错误

导入zabbix—mysql数据

/usr/share/doc/zabbix-server-mysql-4.0.17
zcat /usr/share/doc/zabbix-server-mysql-4.0.17/create.sql.gz | mysql -uzabbix -pzabbix zabbix
#数据导入失败,可以删除所有的表重新导入
use zabbix
;
drop tables group_discovery
;
drop tables group_prototype
;
drop tables hosts
;
drop tables
hstgrp
;
drop tables maintenances
;
drop tables
screen_user
;
drop tables
screen_usrgrp
;
drop tables
screens
;
drop tables screens_items
;
drop tables slideshows
;
drop tables users
;
show tables
;

zabbix_server修改:

vim /etc/zabbix/zabbix_server.conf

#需要修改这几行
DBHost=localhost
DBName=zabbix
DBUser=root
DBPassword=123456

zabbix_server启动

systemctl daemon-reload && systemctl start zabbix-server

修改时区

vim /etc/httpd/conf.d/zabbix.conf
set nu
:20
php_value date.timezone Asia/Shanghai

开启apche

systemctl start httpd

zabbix-web页面

http://10.10.0.131/zabbix/
Username:Admin
Password:zabbix
#登录之后Configure DB connection
User:zabbix
Password:zabbix
#Zabbix server details
Name:zabbix
#Pre-installation summary
显示如下
Database type	MySQL
Database server	localhost
Database port	default
Database name	zabbix
Database user	zabbix
Database password	******
Zabbix server	localhost
Zabbix server port	10051
Zabbix server name	zabbix

页面改中文显示

#点击右上角的小人头

查看zabbix组件

rpm -e rpm -qa |grep zabbix
删除指定嵌套

zabbix图形界面中文乱码

yum install wqy-microhei-fonts -y
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf

启动客户端

客户端安装

rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.17-1.el7.x86_64.rpm


客户端配置信息
grep -E -v "^$|^#" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.10.0.131
ServerActive=10.10.0.131
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
systemctl daemon-reload && systemctl restart zabbix-agent
systemctl status zabbix-agent

服务端测试客户端通信情况

zabbix_get -s 10.10.0.21 -k system.cpu.util[,idle]
zabbix_get -s 10.10.0.21 -k agent.hostname

选择模板

Template OS Linux
点击添加
点击更新

自定义安装模板

监控项:你要你要监控的内容项目
模板:将一类的监控项目汇总到一起,单独保存成一个集合,可以直接被
agent:客户端
键值:监控项目名称:
应用集合:tag
触发器:设定某个监控项报警的阈值条件
图形:监控项的趋势,可以是多个监控项的内容
聚合图形:把多个图形放在一起
只要能取到值,就能监控
目标 :取到访问频次较高的ip,报警
1.如何取到访问的频次较高的ip
2.写脚本判断,如果这个ip超过了100次,就zabbix报警
3.zabbix监控这个脚本返回的值,设置触发器,如果超过100次就报警
实现:
1.通过ELK的API指令去 获取
2.写脚本去调用ELK的API命令并把值返回
3.zabbix监控这个脚本返回的值并设置报警
netstat -antp |awk 'NR>2{print $6}'|grep "TIME_WAIT"|sort|uniq -c
创建配置文件目录
/etc/zabbix/agentd.d/
#自定义监控项
key,自定义监控的值
value
cat > my.conf <<EOF
UserParameter=tcp-status,netstat -ant |awk 'NR>2{print $6}'|grep "TIME_WAIT"|wc -l
EOF
#
zabbix_get -s 10.10.0.21 -k tcp-status
创建监控项
主机->监控项-> 创建监控项(右上角)
#163邮箱授权码


邮件报警授权


#使用zabbix的报警媒介
名称
TIME_WAITE过多报警
类型
SMTP服务器
smtp.163.com
SMTP服务器端口
465
SMTP HELO
163.com
SMTP电邮
wuzhao_99@163.com
安全链接
无STARTTLS(纯文本通信协议扩展)SSL/TLS
SSL验证对端
SSL验证主机
认证
无用户名和密码
用户名称
wuzhao_99@163.com
密码
修改密码
已启用
#使用脚本
vim /etc/mail.rc
set from=wuzhao_99@163.com smtp=smtp.163.com
set smtp-auth-user=wuzhao_99@163.com
set smtp-auth-password=
#此处是smtp的授权码
set smtp-auth=login
#测试邮件可用性
echo "test mail from zabbix.server.com" |mail -s "test mail" wuzhao_99@163.com

自定义报警

配置发送邮件模板(更多可以自定义)
标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
内容
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复:
标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
在用户报警媒介中配置接受人.
到此就配置完成了

.

微信报警

设置收件人:右上角的小人头
设置发件人:
企业微信地址:https://work.weixin.qq.com/
微信公众号:
AgentId:
Secret:
企业ID:

微信报警脚本

配置参数
{ALERT.SENDTO} #接受者
{ALERT.SUBJECT} #主题
{ALERT.MESSAGE} #消息内容

脚本目录及配置

winxin.py
# ExternalScripts=/usr/lib/zabbix/alertscripts/
vim /usr/lib/zabbix/alertscripts/weixin.py
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
weixin.py
#填写微信公纵号信息
Corpid =
#CorpID是企业号的标识
Secret =
# Secret是管理组凭证密钥
Agentid =
#应用ID
#发送信息

下载地址:https://github.com/X-Mars/Zabbix-Alert-WeChat

#!/usr/bin/python2.7
#_*_coding:utf-8 _*_
#auther:wuzhao
import requests,sys,json
import urllib3
urllib3.disable_warnings()
reload(sys)
sys.setdefaultencoding('utf-8')
def GetTokenFromServer(Corpid,Secret):
Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
Data = {
"corpid":Corpid,
"corpsecret":Secret
}
r = requests.get(url=Url,params=Data,verify=False)
print(r.json())
if r.json()['errcode'] != 0:
return False
else:
Token = r.json()['access_token']
file = open('/tmp/zabbix_wechat_config.json', 'w')
file.write(r.text)
file.close()
return Token
def SendMessage(User,Agentid,Subject,Content):
try:
file = open('/tmp/zabbix_wechat_config.json', 'r')
Token = json.load(file)['access_token']
file.close()
except:
Token = GetTokenFromServer(Corpid, Secret)
n = 0
Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
Data = {
"touser": User, #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
# "totag": Tagid,
# 企业号中的标签id,群发使用(推荐)
#"toparty": Partyid,
# 企业号中的部门id,群发时使用。
"msgtype": "text",
# 消息类型。
"agentid": Agentid,
# 企业号中的应用id。
"text": {
"content": Subject + 'n' + Content
},
"safe": "0"
}
r = requests.post(url=Url,data=json.dumps(Data),verify=False)
while r.json()['errcode'] != 0 and n < 4:
n+=1
Token = GetTokenFromServer(Corpid, Secret)
if Token:
Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
r = requests.post(url=Url,data=json.dumps(Data),verify=False)
print(r.json())
return r.json()
if __name__ == '__main__':
User = sys.argv[1]
#zabbix传过来的第一个参数
Subject = str(sys.argv[2])
# zabbix传过来的第二个参数
Content = str(sys.argv[3])
# zabbix传过来的第三个参数
Corpid =
#CorpID是企业号的标识
Secret =
# Secret是管理组凭证密钥
Agentid =
#应用ID
#Tagid = "1"
# 通讯录标签
#Partyid = "2"
#部门ID
Status = SendMessage(User,Agentid,Subject,Content)
print (Status)
print("User,Subject,Content",User,Subject,Content)

最后

以上就是无聊跳跳糖为你收集整理的zabbix4.0 部署 报警 配置zabbix安装的全部内容,希望文章能够帮你解决zabbix4.0 部署 报警 配置zabbix安装所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部