zabbix安装

本文详细介绍Zabbix监控系统的安装与配置流程,包括服务端与客户端的环境搭建、数据库配置、网页文件拷贝、服务启动及日志文件管理。同时,提供Zabbix与MySQL集成的步骤,以及通过邮件和Telegram实现报警通知的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Yum provides mysql

1、安装依赖包

#yum -y install gcc gcc-c++ autoconf httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-devel OpenIPMI-devel java-devel

注意:如果是其它平台的话,软件包的名字可能会有所差别!

 

2、配置PHP所需环境

#vim /etc/php.ini

date.timezone = Asia/Shanghai

max_execution_time = 300

post_max_size = 32M

max_input_time = 300

memory_limit = 128M

mbstring.func_overload = 1

 

3、安装Zabbix-Server

#wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.1/zabbix-2.4.1.tar.gz

增加zabbix用户

#groupadd zabbix -g 201

#useradd -g zabbix -u 201 -m zabbix

#tar zxvf zabbix-2.4.1.tar.gz

#cd zabbix-2.4.1

#./configure --prefix=/usr --sysconfdir=/etc/zabbix --enable-server --enable-proxy --enable-agent --enable-java --enable-ipv6 --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi --with-unixodbc --with-ldap --with-ssh2 

#make && make install 

注意:在编译时,如果缺少相应的依赖包,configure过程会给出提示,然后用yum安装相应的软件即可。

 

4、导入数据库

首先,要确保当前路劲在zabbix源码下

#cd zabbix-2.4.1

#chkconfig mysql-server on

#service mysql-server start

#mysql -uroot -p (输入root密码,进入数据库)

mysql>create database zabbix character set utf8;

mysql>grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

mysql>flush privileges;

确保以上操作都正常,测试下数据库连接是否正常

#mysql -uzabbix -pzabbix zabbix

如果可以正常连接,说明用户名和密码正确,可进行下面操作:

#mysql -uzabbix -pzabbix zabbix < ./database/mysql/schema.sql

#mysql -uzabbix -pzabbix zabbix < ./database/mysql/images.sql

#mysql -uzabbix -pzabbix zabbix < ./database/mysql/data.sql

 

5、创建日志文件夹并修改所属组和所有者

#mkdir /var/log/zabbix

#chown zabbix.zabbix /var/log/zabbix

 

6、拷贝service启动脚本

#cp misc/init.d/fedora/core/zabbix_* /etc/init.d/

#chmod 755 /etc/init.d/zabbix_*

#sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/#g" /etc/init.d/zabbix_server

#sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/#g" /etc/init.d/zabbix_agentd

 

7、配置zabbix_server.conf服务端文件

路径: /etc/zabbix/zabbix_server.conf

修改主要参数即可正常工作

DBName=zabbix 数据库名称

DBUser=zabbix 数据库用户

DBPassword=zabbix 数据库密码

 

#vim /etc/zabbix/zabbix_server.conf

修改相关参数如下

LogFile=/var/log/zabbix/zabbix_server.log

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

DBSocket=/var/lib/mysql/mysql.sock

DBPort=3306

StartPollers=160 (测试环境默认值即可)

StartTrappers=20 (测试环境默认值即可)

StartPingers=100 (测试环境默认值即可)

StartDiscoverers=120 (测试环境默认值即可)

MaxHousekeeperDelete=5000 (测试环境默认值即可)

CacheSize=1024M (测试环境默认值即可)

StartDBSyncers=16 (测试环境默认值即可)

HistoryCacheSize=1024M (测试环境默认值即可)

TrendCacheSize=1024M (测试环境默认值即可)

HistoryTextCacheSize=512M (测试环境默认值即可)

AlertScriptsPath=/etc/zabbix/alertscripts

LogSlowQueries=1000

 

 

8、拷贝网页文件到Apache根目录

#cp -r ./frontends/php/ /var/www/html/zabbix

#chown -R apache.apache /var/www/html/zabbix

 

9、开启zabbix服务

#chkconfig zabbix_server on

#chkconfig httpd on

#chkconfig mysqld on

#service mysqld 

#service httpd 

#service zabbix_server

 

至此,服务端安装成功!

可在浏览器输入地址进入管理页面:HTTP://localhost/zabbix

 

 

===============客户端安装:zabbix-agent=====================

 

1、#wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.1/zabbix-2.4.1.tar.gz

 

2、创建zabbix用户和用户组

#groupadd zabbix -g 201

#useradd -g zabbix -u 201 -m zabbix

 

3、解压安装

#tar zxvf zabbix-2.4.1.tar.gz

#cd zabbix-2.4.1

#./configure --prefix=/usr --sysconfdir=/etc/zabbix --enable-agent 

#make && make install 

 

4、创建日志文件夹并修改所属组和所有者

#mkdir /var/log/zabbix

#chown zabbix.zabbix /var/log/zabbix

 

5、拷贝启动脚本

#cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

#chmod 755 /etc/init.d/zabbix_agentd

#sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/#g" /etc/init.d/zabbix_agentd

 

6、在服务全局配置文件中添加zabbix_agentd服务端口

#vim /etc/services

添加下面内容

zabbix-agent      10050/tcp    #Zabbix Agent

zabbix-agent      10050/udp   #Zabbix Agent

zabbix-trapper   10051/tcp    #Zabbix Trapper

zabbix-trapper   10051/udp   #Zabbix Trapper

 

7、修改配置文件zabbix_agentd.conf

路径: /etc/zabbix/zabbix_agentd.conf (注意看清楚哦,是 agentd,不是 agent,改错了会发现无法生效,切记)

angentd 的作用就是获取 host 数据,然后将收集到的数据发送给 server(主动模式) 。或者是server 主动来拿取数据(被动模式) 。

修改 4 处

Server=127.0.0.1 此处添加服务端的 ip,如服务器不为本机,则需要填写远端 zabbix_server的 ip 地址     (被动模式)

ServerActive=127.0.0.1 此处修改为服务端的 ip  (此处为主动模式)

/tmp/zabbix_agentd.log 修改日志路径

UnsafeUserParameters=1 默认是不启用自定义脚本功能的,要自定义 key,需开启,设置为1

Include=/etc/zabbix/zabbix_agentd.conf.d/ 自定义的agentd配置文件可以写在这个目录下面

 

建议如下修改:

#vim /etc/zabbix/zabbix_agentd.conf 

LogFile=/var/log/zabbix/zabbix_agentd.log

EnableRemoteCommands=0

Server=127.0.0.1,192.168.1.89

StartAgents=8

ServerActive=192.168.1.89:10051

Hostname=nat.kx1d.com

Timeout=30

Include=/etc/zabbix/zabbix_agentd.conf.d/

UnsafeUserParameters=1

 

8、启动zabbix-agent服务

#chkconfig zabbix_agentd on

#service zabbix_agentd start

  1. 在agent 端新建数据库用户和密码

以管理员的身份登陆数据库

Mysql> grant usage on *.* to ‘zabbix’@’localhost’identifiedby ‘123456’

Mysql> flush privileges;

测试是否创建用户成功

#Mysql –uzabbix –p123456

2编辑配置文件,这文件是不存在的,在文件前面加个.表示这是一个隐藏文件

Vi /usr/local/zabbix/etc/.my.conf

3拷贝配置文件,这个是安装包自带的,这样就不用咱们自定义模板了

[root@yinzhengjie ~]# cp /yinzhengjie/zabbix-3.0.4/conf/zabbix_agentd/userparameter_mysql.conf  /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@yinzhengjie ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf

 

 

#mysql配置-zabbix agent上操作

##添加帐户登录信息等,

执行mysql mysqladmin脚本命令时不需要帐户密码,也不再提示警告

$ cat /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

validate_password = off

innodb_file_per_table = 1

character_set_server=utf8

init_connect='SET NAMES utf8'

symbolic-links=0

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

[mysql] #添加以下内容

user = mysqlcheck

password = mysqlchechk

[client]

user = mysqlcheck

password = mysqlchechk

[mysqladmin]

user = mysqlcheck

password = mysqlchechk

 

##添加帐户密码

mysql> GRANT USAGE ON *.* TO 'mysqlcheck'@'localhost' IDENTIFIED BY 'mysqlcheck';

mysql> FLUSH PRIVILEGES;

 

#zabbix配置-zabbix agent上操作

##安装zabbix_agent并修改配置文件

$ rpm -Uv http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-agent-3.2.6-1.el7.x86_64.rpm

$ yum install -y zabbix-agent

 

$ cat /etc/zabbix/zabbix_agentd.conf |grep -v ^# |grep -v ^$

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

Server=172.16.160.161 #指向zabbix服务器

ListenPort=10050

ListenIP=0.0.0.0

ServerActive=172.16.160.161 #指向zabbix服务器

Hostname=mysql2 #zabbix服务器上配置主机的时候要用的名称

Include=/etc/zabbix/zabbix_agentd.d/*.conf #这一行是指向模板文件的

$

 

##添加用来关联mysql的配置文件.my.cnf

执行mysql mysqladmin脚本命令时不需要帐户密码,也不再提示警告

 

mysql.sock文件通过find / -name mysql.sock找出路径

$ cat /etc/zabbix/.my.cnf

[mysql]

host = localhost

user = mysqlcheck

password = mysqlcheck

socket = /var/lib/mysql/mysql.sock

[mysqladmin]

host = localhost

user = mysqlcheck

password = mysqlchechk

socket = /var/lib/mysql/mysql.sock

 

##修改zabbix模板配置文件中的mysql路径

这个文件用于制定Zabbix Agent如何获取MySQL数据

我们需要将所有的/var/lib/zabbix修改为当前.my.cnf文件的路径/etc/zabbix

$ sed -i 's@/var/lib/zabbix@/etc/zabbix@g' /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

 

$ cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf |grep -v ^#|grep -v ^$

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

UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/etc/zabbix mysql -N'

UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive

UserParameter=mysql.version,mysql -V

##设置完 成之后保存并重启Zabbix Agent

$ systemctl restart zabbix-agent.service

 

##测试不用帐户密码就可以执行mysqladmin命令

$ mysqladmin ping | grep -c alive

1

 

#zabbix页面配置-zabbix server上操作

##创建主机

Configuration—Hosts—创建主机

主机名称,群组选择,agentIP地址和端口,然后点更新

##使用模板

Configuration—Hosts—主机名称—Tempaltes,搜索MySQL,添加弹出的模板Template App MySQL,然后点更新

注意:选完模板后,要点下添加按钮才行。

##查看监控效果

Monitoring—Graphs,选择组,然后选择host及展示的图形

这时候图形里会多出mysql bandwidthmysql operations,而且有输出信息

 

Zabbix qq 邮件报警警告!

Vim /usr/bin/zabbix/alertscripts/sendmail.py

#!/usr/bin/python

import sys

import smtplib

from email.mime.text import MIMEText

 

_user = "657880461@qq.com"

_pwd = "hupqnxuftigfbeei"

_to = sys.argv[1]

 

msg = MIMEText(sys.argv[3], 'plain', 'utf-8')

msg["Subject"] = sys.argv[2]

msg["From"] = _user

msg["To"] = _to

 

try:

 s = smtplib.SMTP_SSL("smtp.qq.com", 465)

 s.login(_user, _pwd)

 s.sendmail(_user, _to, msg.as_string())

 s.quit()

 print "Success!"

except smtplib.SMTPException,e:

 print "Falied,%s"%e

cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath

把脚本存放在/usr/bin/zabbix/alertscripts 目录下,记得给上X权限

chmod +x /usr/lib/zabbix/alertscripts/mailx.py

chown -R zabbix.zabbix /usr/lib/zabbix/

/usr/local/zabbix/alertscripts/sendmail.sh test@qq.com "测试邮件标题" "测试邮件内容"

测试脚本能不能正常首到邮件!

 

 

小飞机报警方法!

一、开启telegram机器人

 

第一步:在搜索栏里直接使用@BotFather打开和telegram官方机器人的对话框

第二步:发送/start

第三步:给自己的机器人取一个名字(需要符合官方的要求:需要以_bot结尾,前面的名字是自定义部分)

第四步:当机器人名字符合官方标准时,就会收到官方发送过来的token,此token一定要牢记,因为日后需要经常使用的

第五步:将自己的机器人添加到需要接收报警消息的telegram个人帐号里,或者telegram群组里面

 

使用 https://api.telegram.org/bot" 官方发过来token"/getUpdates,获取相应的chat_id,如果机器发个人的,chat是一串纯数字,如果机器人发给群组,chat_id是数据串前带一个-

 

例如:https://api.telegram.org/bot786151326:AAH4AN0Gseb0xX30eIzDjzjJsrs5jO2zcQQ/getMe

 

二、提前安装telegram模块

 

wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

pip install telegram

pip install python-telegram-bot

 

三、写好python脚本,放到脚本目录

 

cat /etc/zabbix/zabbix_server.conf |grep AlertScriptsPath

 

AlertScriptsPath=/usr/lib/zabbix/alertscripts

 

vim /usr/lib/zabbix/alertscripts/telegram_send_message.py

#!/usr/bin/python

# -*- coding: utf-8 -*-*

 

#Author: alwen

#Date: 2018-08-11 18:59:26

 

#Description:Zabbix use telegram bot to send message to group**

 

import telegram

import sys

 

contact = sys.argv[1]

subject = sys.argv[2]

content = sys.argv[3]

 

bot = telegram.Bot(token='官方发过来的token')

chat_id = contact

 

bot.send_message(chat_id=chat_id, text=subject+'\n'+content)

 

 

 

第一步:将此脚本放到zabbix服务器上,并授权zabbix账户有执行权限。

第二步:确保你的zabbix服务器python版本是2.7以上,CentOS7默认版本即可

Centos 系统一般默认安装的是2.6.6版本,不少软件安装的是2.7以上的版本,通过源码编译可以方便安装指定版本

  1. 下载源代码;

Wget http://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz

 

  1. 在下载目录解源码
tar -zxvf Python-2.7.12.tgz
cd Python-2.7.12

在编译前先在/usr/local建一个文件夹python2.7.12(作为python的安装路径,以免覆盖老的版本,新旧版本可以共存的)

mkdir /usr/local/python2.7.12

编译前需要安装下面的依赖。否则下面安装pip会报错

yum install openssl openssl-devel zlib-devel gcc –y

安装完成以后执行下面的命令

vi ./Modules/Setup.dist

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib –lz 去掉注释并保持

在解压缩后的目录下编译安装

./configure --prefix=/usr/local/python2.7.12 --with-zlib

make && make install

此时没有覆盖老版本 再将原来的/usr/loacal/python 连接名改为别的名字

mv /usr/bin/python /usr/bin/python2.6.6

ln -s /usr/local/python2.7.12/bin/python2.7 /usr/bin/python

这个时候输入python 就是2.7.12版本了

第三步:手动测试使用此脚本发送多行消息,测试示例:python telegram_send_message.py ‘’群组id‘’ 主题:测试信息 $'first line\nsecond line\nthird line'

第四步:zabbix的Administration(管理)->Media types(媒介类型)创建一个新的媒介类型,比如:telegram_send_message

找到

{ALERT.SENDTO}

 

{ALERT.SUBJECT}

 

{ALERT.SUBJECT}

 

 

第五步:配置需要接收telegram报警消息的运维人员账户Administration->Users->Media->add->telegram_send_message,添加并启用telegram_send_message这个Media

第六步:创建一个使用telegram发送消息的active(动作),Configuration->Actions->Create action,选择使用对应媒介方式,如刚才创建的telegram_send_message,并定义触发此动作的条件。

 

 

 

http://blog.51cto.com/183530300/2124750

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值