zabbix 问题:安装

discover功能

  • 思路
    discover:找到mount挂载的盘目录
    自动添加:将找到的目录添加到监控项中

1.部署lamp环境

安装zabbix 3.0以上,yum安装的版本有点低

  • 解决方案:使用其他yum源
rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm
yum -y install httpd php56w php56w-gd php56w-mysql php56w-bcmath php56w-mbstring php56w-xml php56w-ldap wget ntpdate net-snmp*

2.:阿里云不支持25端口发邮件

  • 解决方案:使用Python脚本ssl
#!/usr/bin/env python
# coding: utf-8
import smtplib,sys
from email.MIMEText import MIMEText
from email.Utils import formatdate
from email.Header import Header

def_encoding = 'utf-8'
if sys.getdefaultencoding() !=def_encoding:
    reload(sys)
    sys.setdefaultencoding(def_encoding)

def sendmail(toMail,subject,body):
    smtpHost = 'smtp.qq.com'
    smtpPort = '25'
    sslPort = '465'
    fromMail = '[email protected]'
    toMail = '[email protected]'
    username = 'test'
    password = 'test'

    # subject = u'hello'
    # body = u'hello,this is a mail from ' + fromMail

    encoding = 'utf-8'
    mail=MIMEText(body,"plain",encoding)
    mail['Subject'] = Header(subject, encoding)
    # mail['Subject'] = subject
    mail['From'] = fromMail
    mail['To'] = toMail
    mail['Date'] = formatdate()
    mail["Accept-Language"] = "zh-CN"
    mail["Accept-Charset"] = "ISO-8859-1,utf-8"

    try:
        #no ssl
        # smtp = smtplib.SMTP(smtpHost,smtpPort)
        # smtp.ehlo()
        # smtp.login(username,password)

        # ssl
        smtp = smtplib.SMTP_SSL(smtpHost, sslPort)
        smtp.ehlo()
        smtp.login(username, password)
        # print mail.as_string()
        smtp.sendmail(fromMail, toMail, mail.as_string())
        smtp.close()
        print 'OK'
    except Exception as e:
        print e

if  __name__ == "__main__":
    sendmail(sys.argv[1], sys.argv[2], sys.argv[3])

这里自己有个邮箱账户什么的自己解决吧!

discover功能

  • 自动发现
    个人理解:
    discover:找到mount挂载的盘目录
    自动添加:将找到的目录添加到监控项中

监控sql server

PerfCounter = MSSQLLOCKS,"\SQLServer:Locks(_Total)\Number of Deadlocks/sec",15
PerfCounter = Lock_Timeouts,"\SQLServer:Locks(_Total)\Lock Timeouts/sec",15
PerfCounter = Lock_Requests,"\SQLServer:Locks(_Total)\Lock Requests/sec",15

类似,可百度PerfCounter

代理proxy安装

1.安装数据库
2.导入数据库数据,库名为zabbix_proxy,导入数据(和搭建server一样)
3.编译安装zabbix-server:./configure --sysconfdir=/usr/local/zabbix/ --enable-proxy --enable-agent --with-net-snmp --with-mysql --with-ssh2
4.导入数据库文件(只要一个就OK):mysql zabbix_proxy
5.修改zabbix_proxy.cnf配置文件

ProxyMode=0  ##默认参数值,proxy代理主动模式
Server=IP    ##主动模式下,主动请求这个IP,获得监控配置信息
ServerPort=10051    ##proxy代理端口
Hostname=xxx    ##这个要名字随便取,但是不能重复,web端设置时需要
然后就是db设置

6.启动代理:zabbix-proxy
7.web设置
首先要配置代理

zabbix 问题:安装_第1张图片
44287dff-c7be-46d3-9659-21348ec5776a.png

然后将agent端放到代理下面:添加主机选择

zabbix 问题:安装_第2张图片
image.png

等他变绿

agent到proxy配置

server:配了了server端的IP,和proxy的IP
serveractive:配置的是proxy的ip+端口号

LogFile=/tmp/zabbix_agentd.log
Server=
ListenPort=10049
ServerActive=ip:10051
Hostname=MMMM_master
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix /usr/bin/mysql -N | awk '{print $$2}'

数据库监控

1.给数据库创建一个zabbix用户
grant REPLICATION CLIENT on *.* to 'zabbix'@'localhost' identified by '123456';

2.在my.cnf配置文件[client]写入信息

[client]
user=zabbix
password=123456

3.监控模块

UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix /usr/bin/mysql -N | awk '{print $$2}'

UserParameter=mysql.ping,HOME=/var/lib/zabbix /usr/bin/mysqladmin ping | grep -c 'mysqld is alive'

UserParameter=db_status,echo "show slave status\G" | HOME=/var/lib/zabbix /usr/local/mysql/bin/mysql -N|grep -c Yes
UserParameter=db_time,echo "show slave status \G" | HOME=/var/lib/zabbix /usr/local/mysql/bin/mysql|grep Seconds_Behind_Master|awk '{print $2}'|awk '{sum += $1};END {print sum}'

这些是例子,前端添加模块就不写了,注意/usr/local/mysql/bin/mysql路径

你可能感兴趣的:(zabbix 问题:安装)