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
- 在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—创建主机
主机名称,群组选择,agent的IP地址和端口,然后点更新
##使用模板
Configuration—Hosts—主机名称—Tempaltes,搜索MySQL,添加弹出的模板Template App MySQL,然后点更新
注意:选完模板后,要点下添加按钮才行。
##查看监控效果
Monitoring—Graphs,选择组,然后选择host及展示的图形
这时候图形里会多出mysql bandwidth和mysql 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以上的版本,通过源码编译可以方便安装指定版本
- 下载源代码;
Wget http://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
- 在下载目录解源码
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