zabbix4.0部署

zabbix4.0部署

主机名IP地址角色
server01172.16.31.217nginx(反向代理)
server02172.16.31.218zabbix

搭建LNMP环境

yum install -y httpd php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash
安装MySQL
#上传mysql-5.7.28-linux-glibc2.12-x86_64.tar	install_mysql至/usr/local/src

vim /usr/local/src/install_mysql		#修改MySQL密码

ROOT_PASS="Anji@Yanji2023"

chmod +x install_mysql				#脚本授权

sh install_mysql
编辑httpd配置文件
vi /etc/httpd/conf/httpd.conf

DirectoryIndex index.html index.php   # 添加首页支持格式
配置php.ini
vi /etc/php.ini

date.timezone = Asia/Shanghai   # 配置时区
启动nginx
systemctl start nginx			#启动httpd

systemctl enable nginx			#开机自启

测试LNMP是否搭建成功

#创建一个测试页

vi /var/www/html/index.php

<?php

phpinfo()

?>

#访问网页出现PHP界面即可

curl 127.0.0.1 -l		#返回码200表示成功

创建zabbix用户

CREATE DATABASE zabbix character set utf8 collate utf8_bin; 		#创建zabbix数据库

GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';  #授予zabbix用户zabbix数据库的所有权限

flush privileges;    #刷新权限

quit                 #退出数据库

测试zabbix用户是否能够登陆数据库

vi /var/www/html/index.php         #修改测试页内容,测试zabbix用户是否能够登陆数据库

<?php

$link=mysql_connect('172.16.31.218','zabbix','zabbix');

if($link) echo "<h1>Success!!</h1>";   #显示Success表示连接数据库成功

 else echo "Fail!!";

mysql_close();

?>

curl 127.0.0.1 -l		

安装zabbix

#安装依赖包 + 组件

yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel libevent devel.x86_64 javacc.noarch  javacc-javadoc.noarch javacc-maven-plugin.noarch javacc*

yum install php-bcmath php-mbstring -y			 #安装php支持zabbix组件

yum install zabbix-server-mysql zabbix-web-mysql  zabbix-agent-y    	#安装zabbix组件
导入zabbix数据库
cd  /usr/share/doc/zabbix-mysql

zcat create.sql.gz | mysql -uzabbix -h 172.16.31.218 -p			#导入数据到数据库zabbix中
编辑zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf              #将DBPassword=修改成DBPassword=zabbix
编辑zabbix.conf
vi /etc/httpd/conf.d/zabbix.conf     #修改时区

#将php_value date.timezone Europe/Riga 变更成php_value date.timezone Asia/Shanghai 

启动zabbix

systemctl start zabbix-server			#启动服务

systemctl enable zabbix-server 			#开机自启

curl 127.0.0.1/zabbix -l

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://127.0.0.1/zabbix/">here</a>.</p>
</body></html>

#启动成功

配置nginx反向代理

#217服务器配置

server {
        listen 80 default_server;
        server_name _;
        
        location /zabbix/ {
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass http://172.16.31.218;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

systemctl restart nginx    #重启nginx服务

#网页访问成功即可

配置告警

企业微信告警
#修改alertscripts位置
vim /etc/zabbix_server.conf

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts

cd /usr/local/zabbix/share/zabbix/alertscripts

#企业微信应用告警脚本
vim weixin.py

#!/usr/bin/python
#-*- coding: utf-8 -*-

import requests
import sys
import os
import json
import logging

logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
                    datefmt = '%a, %d %b %Y %H:%M:%S',
                    filename = os.path.join('/usr/local/zabbix/share/zabbix/alertscripts/','weixin.log'),
                    filemode = 'a')
corpid='ww5cab42489e63838d' #企业ID
appsecret='2Agfo9zZWmdce_cVZFiUzXBgkzSaRejTnW__GfyKmg8'  #secret
agentid=1000139  #AgentID
    #获取accesstoken
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']

    #发送消息
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken

touser=sys.argv[1]
subject=sys.argv[2]
    #toparty='3|4|5|6'
message=sys.argv[3]

params={
            "touser": touser,
           "toparty": 940,
            "msgtype": "text",
            "agentid": agentid,
            "text": {
                    "content": message
            },
            "safe":0
    }

req=requests.post(msgsend_url, data=json.dumps(params,ensure_ascii=False))

logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

#脚本授权
chmod +x weixin.py			注:执行脚本会自动生成weixin.log文件,将weixin.log属主属组改为zabbix_server启动用户

chown -R zabbix:zabbix weixin.log

./weixin.py xxxx test test				#测试能否发送消息


#企微群聊机器人告警脚本
vim wx_webhook.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=c956f720-6c96-4bd0-ae3c-e2316d931683"	#群聊机器人webhook地址
def msg(text):
    json_text= {
     "msgtype": "text",
        "text": {
            "content": text
        },
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content

if __name__ == '__main__':
    text = sys.argv[2] + "\n" + sys.argv[3]
    msg(text)

#授权脚本
chmod +x wx_webhook.py

./wx_webhook.py xxxx test test			#测试是否能发送消息
企业微信告警web配置

web端配置:

管理>报警媒介类型 创建报警媒介类型

名称 wechat

类型 脚本

脚本名称 wechat.py

脚本参数 {ALERT.SENDTO}

​ {ALERT.SUBJECT}

​ {ALERT.MESSAGE}

管理>用户 点击Admin用户>报警媒介 添加报警媒介,类型选择wechat。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值