zabbix 安装记录

 

 

 

###由于zabbix server在阿里云,配置较低,难以承担目前业务,考虑迁移到 本地机房 zabbix server 升级迁移

##zabbixserver 192.168.xxx.256
##zabbix 数据库 192.168.1xx.xx2
##另外有个两台zabbix-proxy ,1台阿里云,另外一台在另一个机房中


配置:
zabbixserver 1192.168.xxx.256 C8M16D40
zabbix mysql 192.168.1xx.xx2 CM16D40 +100G


##server 端安装
###升级系统到最新7.5

hostnamectl set-hostname zabbix.jkabc.com
yum update -y
yum install yum-utils

rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum-config-manager --enable rhel-7-server-optional-rpms
yum install zabbix-server-mysql
yum install zabbix-web-mysql

###在zabbixserver 进行配置
cp /etc/zabbix/zabbix_server.conf{,.bk}

cat > /etc/zabbix/zabbix_server.conf <<EOF
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=192.168.1xx.xx2
DBName=zabbix
DBUser=zabbix
DBPassword=xxxxxxxxx
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
CacheSize=8000M
EOF


##设置报警脚本,在/usr/lib/zabbix/alertscripts


cat > /usr/lib/zabbix/alertscripts/BJ_test_dingding.py <<EOF
#!/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://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx"
def msg(text):
    json_text= {
     "msgtype": "text",
        "text": {
            "content": text
        },
        "at": {
            "atMobiles": [
                "1881xxxxxxxxxx"
            ],
            "isAtAll": False
        }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content
    
if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)  
EOF
cat > /usr/lib/zabbix/alertscripts/sendmail.py <<EOF

#-*- coding:utf-8 -*-
''' from: 改成你的邮箱地址 '''
import smtplib,sys,datetime
from email.Header import Header                 
from email.MIMEText import MIMEText             
from email.MIMEMultipart import MIMEMultipart

def send_mail(to_addr,subject,content):
    msg = MIMEMultipart()                                                                           
    msg['to'] = to_addr                                                             
    msg['from'] = '***_monitor@xxxx.com'                                                            
    msg['subject'] = Header(subject+'[' + str(datetime.date.today()) + ']', 'utf-8')  
    text_msg = MIMEText(content,'plain','utf-8')
    msg.attach(text_msg)
    try:
        s = smtplib.SMTP_SSL('smtp.exmail.qq.com','465')
        s.ehlo()
        #s.connect(mail_host)
    
        s.login('***_monitor@xxxx.com','XXXXXXXXXX')
        s.sendmail(msg['from'],msg['to'],msg.as_string())                                          
        s.close()
        return True
    except Exception,e:
        print str(e)
        return False

if __name__ == '__main__':
    send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
EOF

###启动服务

systemctl enable zabbix-server && systemctl start zabbix-server

 

##在mysqlserver 192.168.1xx.xx2 上执行
###更新系统
yum update -y
yum install maraidb-server -y
##初始化mysql
##安装zabbix 服务
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
 yum-config-manager --enable rhel-7-server-optional-rpms
 yum install zabbix-server-mysql

##创建数据库
create database zabbix default charset utf8;

GRANT all privileges ON zabbix.* TO 'zabbix'@'%' identified by 'xxxxxxxxm' WITH GRANT OPTION;

##进入目录
/usr/share/doc/zabbix-server-mysql-4.0.2
cp create.sql.gz{,.bk}
gunzip create.sql.gz

##在create.sql 首行添加
USE zabbix;

##导入数据库
cat create.sql |mysql -uzabbix -p

###在web

cp /etc/httpd/conf.d/zabbix.conf{,.bk}
vim /etc/httpd/conf.d/zabbix.conf  ##修改时区是Asia/Shanghai

php_value date.timezone Asia/Shanghai

其他不变

##修改中文字体库,修复中文乱码

在目录/usr/share/zabbix/fonts/字体库中有个默认的graphfont.ttf ,从windows 机器上复制一个simkai.ttf 到该目录

simkai.ttf
###修改默认字体库,把里面graphfont 修改成simkai
vim /usr/share/zabbix/include/defines.inc.php


##启动httpd
systemctl enable httpd && systemctl start httpd

##web 登录 ip/zabbix 进行设置

##设置完成之后
ip/zabbix  用户名和密码:Admin/zabbix

###server端安装完成###############


### 安装zabbix 客户端

##备注 由于客户端涉及到centos6 centos7 两种系统,分别下载下来,放到各个系统的/tmp下面
##在跳板机 上执行如下,放到各个系统的/tmp下面
ansible all_servers -m copy -a 'src=/etc/ansible/script/zabbix_agent-rpm/ dest=/tmp/'

###针对虚拟机脚本如下
cat /etc/ansible/script/ZabbixAgentVms.sh

#!/bin/bash
if [ "`grep '192.168.xxx.256 zabbixserver.xxxx.com' /etc/hosts`" = ""  ];then
echo "192.168.xxx.256 zabbixserver.xxxx.com" >> /etc/hosts
fi

IP=`ip a show dev eth0 scope global |grep "inet" |sed -e 's#.*inet##g' -e 's#/.*##g'`

zabbix_agent_conf(){
cp /etc/zabbix/zabbix_agentd.conf{,.bk}
cat > /etc/zabbix/zabbix_agentd.conf << EOF
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=1
EnableRemoteCommands=1
Server=zabbixserver.xxxx.com
ServerActive=zabbixserver.xxxxx.com
Hostname=$IP
BufferSize=200
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
EOF
}

centos7_zabbix_agent(){

ps -ef|grep zabbix |awk '{print $2}' |xargs kill -9
rpm -ivh /tmp/zabbix-agent-4.0.2-1.el7.x86_64.rpm
zabbix_agent_conf
systemctl enable zabbix-agent && systemctl start zabbix-agent
}
centos6_zabbix_agent(){
ps -ef|grep zabbix |awk '{print $2}' |xargs kill -9
rpm -ivh /tmp/zabbix-agent-4.0.2-1.el6.x86_64.rpm
zabbix_agent_conf
service zabbix-agent start && chkconfig zabbix-agent on
}
if [ `cat /etc/redhat-release |sed -r 's/.* ([0-9]+)\..*/\1/'` -eq 7 ];then
        echo "centos 7"
        centos7_zabbix_agent
else
      echo "centos6"
        centos6_zabbix_agent
fi


#####ansible 添加客户端用例

1.zabbix-agent rpm包 先推送到 客户端

ansible all_servers -m copy -a 'src=/etc/ansible/script/zabbix_agent-rpm/ dest=/tmp/'

2.执行客户端安装脚本
ansible test -m script -a "script/ZabbixAgentVms.sh"
3.##测试是否正常
 cat test_zabbix_agent.sh
#!/bin/bash
#read -p "请输入需要测试的IP地址:" $1
ssh 192.168.xxx.256 "
echo "system.uptime为:";
zabbix_get -s $1 -p10050 -k \"system.uptime\"

##测试结果
sh test_zabbix_agent.sh 192.168.xxx.xxx
system.uptime为:
12859568


###后期会补充上zabbix-proxy 相关安装文档

###后期会补充上zabbix-proxy 相关安装文档

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

yum install zabbix-proxy mariadb-server zabbix-get
systemctl enable mariadb && systemctl start mariadb

##setting mysqld
create database zabbix_proxy default charset utf8;
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix_proxy       |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix_proxy.* to 'zabbix_proxy'@'%' identified by 'xxxxxxxxxxxx' with grant option;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]>

 

[root@zabbix-proxy ~]# rpm -ql zabbix-proxy-mysql |grep sql.gz
/usr/share/doc/zabbix-proxy-mysql-4.0.2/schema.sql.gz
[root@zabbix-proxy ~]#

gunzip schema.sql.gz
[root@zabbix-proxy zabbix-proxy-mysql-4.0.2]# ls

AUTHORS  ChangeLog  COPYING  NEWS  README  schema.sql

##导入库文件
zabbix-proxy-mysql-4.0.2]# mysql -uzabbix_proxy -p zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-4.0.2/schema.sql

###设置zabbix-proxy
cp /etc/zabbix/zabbix_proxy.conf{,.bk}
cat > /etc/zabbix/zabbix_proxy.conf <<EOF

ProxyMode=0
Server=xxxxxxxxxx
ServerPort=10051
Hostname=bjjxq_proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=1
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=xxxxxx
ConfigFrequency=300
DataSenderFrequency=60
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
EOF

systemctl enable zabbix-proxy && systemctl start zabbix-proxy

###测试
1.安装zabbix-agent
yum install zabbix-agent -y
cat > /etc/zabbix/zabbix_agentd.conf <<EOF
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=1
EnableRemoteCommands=1
Server=zabbixproxy.xxxxxxx.com
ServerActive=zabbixproxy.xxxxxxcom
Hostname= 192xxxxxx
BufferSize=200
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
EOF

echo "192.xxxx zabbixproxy.fxxxxx.com" >> /etc/hosts

systemctl enable zabbix-agent && systemctl start zabbix-agent


2.在zabbixserver 端 设置后,可以监控到 proxy 中的数据


###ansible 安装zabbix-agent

1. 下载zabbix-agent rpm
##在跳板机 上
/etc/ansible/scripts/zabbix_agent-rpm/zabbix-agent-4.0.2-1.el6.x86_64.rpm
/etc/ansible/scripts/zabbix_agent-rpm/zabbix-agent-4.0.2-1.el7.x86_64.rpm

ansible zabbix -m copy -a "src=/etc/ansible/scripts/zabbix_agent-rpm/ dest=/tmp"

2.ansbile 统一安装
ansible controller -m script -a "scripts/ZabbixAgentPhy.sh"
ansible compute -m script -a "scripts/ZabbixAgentPhy.sh"
ansible ceph -m script -a "scripts/ZabbixAgentPhy.sh"
ansible vms -m script -a "scripts/ZabbixAgentVms.sh"
3.在server 端进行配置 主机

##到这里就全部迁移完成

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石兴稳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值