一、Server安装
可以使用mysql、percona、mariadb等,本例使用mariadb。由于是事后整理,只截取部分命令。
#yum install mariadb-server mariadb ----安装数据库
配置zabbix源,[可选]
yum install -y http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum -y install ./zabbix-server-mysql-3.2.7-1.el7.x86_64.rpm zabbix-get-3.2.7-1.el7.x86_64.rpm
或者:通过下列方法下载所需的zabbix rpm包 #mkdir zabbix3.2.7 #cd zabbix3.2.7/
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-agent-3.2.7-1.el7.x86_64.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-agent-3.2.7-1.el7.x86_64.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-java-gateway-3.2.7-1.el7.x86_64.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-proxy-mysql-3.2.7-1.el7.x86_64.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-proxy-pgsql-3.2.7-1.el7.x86_64.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-proxy-sqlite3-3.2.7-1.el7.x86_64.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-sender-3.2.7-1.el7.x86_64.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-server-mysql-3.2.7-1.el7.x86_64.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-server-pgsql-3.2.7-1.el7.x86_64.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-web-3.2.7-1.el7.noarch.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-web-japanese-3.2.7-1.el7.noarch.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-web-mysql-3.2.7-1.el7.noarch.rpm
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-web-pgsql-3.2.7-1.el7.noarch.rpm
#systemctl start mariadb.service ---启动mariadb
#systemctl enable mariadb
MariaDB [(none)]> SET password for 'root'@'localhost'=password('newpassword');
MariaDB [(none)]> CREATE DATABASE zabbix CHARSET 'utf8'; //创建zabbix数据库
MariaDB [(none)]> GRANT ALL ON zabbix.* TO 'zbxuser'@'10.1.%.%' IDENTIFIED BY 'zbxpass'; //授权zbxuser用户从10.0.255.255广播地址登录zabbix数据库
MariaDB [(none)]> GRANT ALL ON zabbix.* TO 'zbxuser'@'localhost' IDENTIFIED BY 'zbxpass'; //授权zbxuser用户从localhost广播地址登录zabbix数据库
MariaDB [(none)]> flush privileges; //刷新权限
MariaDB [(none)]> exit;
yum -y localinstall ./zabbix-server-mysql-3.2.7-1.el7.x86_64.rpm
... ---安装需要的其它包
# zcat /usr/share/doc/zabbix-server-mysql-3.2.7/create.sql.gz | mysql -uzbxuser -p1 zabbix
安装一些需要的工具:
#yum install -y epel-release #yum install -y iksemel fping libiksemel #yum install -y libiksemel
yum install vim -y
vim /etc/zabbix/zabbix_server.conf
#vim /etc/zabbix/zabbix_server.conf
yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml
systemctl start httpd
systemctl stop firewalld
vim /etc/selinux/config
setenforce 0
[root@bogon ~]# systemctl start zabbix-server
[root@bogon ~]# systemctl restart zabbix-server
[root@ora-test zabbix]# cat /etc/zabbix/zabbix_agentd.conf | grep -v '#'
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.56.103
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParaters=1 #要打开此值才能自定编写默认不配置,即没打开
agent成功安装方法6.5
yum -y install http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm
yum install zabbix-agent -y
其它记录:
修改配置文件 sed -i 's/Server=127.0.0.1/Server=172.16.8.100/' /etc/zabbix/zabbix_agentd.conf grep -n '^Server=' /etc/zabbix/zabbix_agentd.conf /etc/init.d/zabbix-agent start chkconfig zabbix-agent on zabbix3.2中文显示乱码的问题, 可以参考http://blog.csdn.net/xiegh2014/article/details/52038536
[root@qas-zabbix include]# pwd
/var/www/html/zabbix/include
[root@qas-zabbix include]# vi defines.inc.php
#修改第93行
define('ZBX_FONT_NAME','msyh');
#修改第45行改为
define('ZBX_GRAPH_FONT_NAME','msyh')
[root@bogon core]# zabbix_get -s 192.168.56.102 -p 10050 -k "system.uptime"
1899
常用zabbix_get命令保存:
常用命令 zabbix_get -s:zabbix agent的IP或主机名 -p:agent端口 -I:本机出去的IP,多网卡环境 -k /usr/bin/zabbix_get -s 192.168.56.101 -k system.uname [root@localhost zabbix]# zabbix_get -s 127.0.0.1 -k net.if.in[enp0s8,bytes] [root@localhost zabbix]# zabbix_get -s 127.0.0.1 -k net.if.in[enp0s8,packets] 42865
cd zabbix_agentd.d
[root@ora-test zabbix_agentd.d]# more userparameter_mysql.conf | grep -v '#'
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/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=/var/lib/zabbix mysql -N'
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
windows客户端安装
windows 客户机安装 修改配置文件服务器地址和计算机名。 C:zabbix_agentsinwin64zabbix_agentd.exe -c C:zabbix_agentsconfzabbix_agentd.conf -i C:zabbixzabbix_agents_3.0.0.wininwin64zabbix_agentd.exe -c C:zabbixzabbix_agents_3.0.0.winconfzabbix_agentd.win.conf -i C:zabbixzabbix_agents_3.0.0.wininwin64zabbix_agentd.exe -c C:zabbixzabbix_agents_3.0.0.winconfzabbix_agentd.win.conf -s C:zabbix_agentsinwin64zabbix_agentd.exe -c C:zabbix_agentsconfzabbix_agentd.conf -s
客户端常用命令:
配置命令 c:zabbixinwin32zabbix_agentd -c C:zabbixconfzabbix_agentd.win.conf -i -c :指定配置文件所有位置 -i :安装客户端 -s :启动客户端 -x :停止客户端 -d :卸载客户端 关于主机名:如果zabbix_agentd.conf配置有定义Hostname,那么zabbix会使用这个Hostname命名,否则agent的主机名(hostname得来的) 修改metadataitem
cat /usr/local/zabbix-2.2.1/etc/zabbix_agentd.conf | grep HostMetadataItem=
HostMetadataItem=system.uname
cat /usr/local/zabbix-2.2.1/etc/zabbix_agentd.conf | grep HostMetadataItem=
HostMetadataItem=system.uname
安装zabbix-manager
[root@localhost zabbix]# yum install git
[root@localhost zabbix]# git clone https://github.com/BillWang139967/zabbix_manager.git
Cloning into 'zabbix_manager'...
remote: Counting objects: 523, done.
remote: Total 523 (delta 0), reused 0 (delta 0), pack-reused 523
Receiving objects: 100% (523/523), 940.52 KiB | 159.00 KiB/s, done.
Resolving deltas: 100% (274/274), done.
[root@localhost zabbix]# pwd
/var/log/zabbix
grep -v "#" /etc/zabbix/zabbix_server.conf > config.bak
要建备份,执行:
sudo mysqldump zabbix | bzip2 -9 > dbdump.bz2 在您可以将文件dbdump.bz2到另一台机器 要想从备份中进行恢复,将其传输到设备上并执行行 bzcat dbdump.bz2 | sudo mysql zabbix <note important>确保恢复过程中zabbix server停止运行
配置接收通知:
接收通知的人,至少有组的Read权限1.建media,2.建用户及对应media,3.在action中增加对应用户,并设置相应media。
查看zabbix数据大小
select table_name,(data_length+index_length)/1024/1024 as total_mb,table_rows from information_schema.tables where table_schema='zabbix'; select * from zabbix.items
proxy安装
Proxy 部署:
# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.ori
#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo
# rpm -qa | grep mariadb
# yum remove mariadb-libs
安装数据库
# yum install mariadb-server mairadb
安装完成MariaDB,首先启动MariaDB
systemctl start mariadb
设置开机启动
systemctl enable mariadb
接下来进行MariaDB的相关简单配置
mysql_secure_installation
首先是设置密码,会提示先输入密码
Enter current password for root (enter for none):<–初次运行直接回车
设置密码
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
初始化MariaDB完成,接下来测试登录
mysql -uroot -ppassword
完成。
yum install -y http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm 此次用的3.4.1 yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
yum install -y zabbix-proxy zabbix-proxy-mysql zabbix-agent
[root@BJ01ZABBIX01 ~]# yum install zabbix-proxy-3.4.1-1 zabbix-proxy-mysql-3.4.1 zabbix-agent-3.4.1 --指定版本 mysql -uroot -p -e "create database zabbix_proxy character set utf8 collate utf8_bin;" mysql -uroot -p -e "grant all on zabbix_proxy.* to zabbix@localhost identified by '1';" cd /usr/share/doc/zabbix-proxy-mysql-3.4.4/ gunzip < schema.sql.gz | mysql -uroot -p1 zabbix_proxy or zcat schema.sql.gz | mysql -uroot -p zabbix_proxy mysql -uroot -p1 -e"flush privileges;" cd /etc/zabbix/ cp zabbix_proxy.conf zabbix_proxy.conf.ori vi zabbix_proxy.conf ProxyMode=0 Server=192.168.73.231 zabbix-server端地址 ServerPort=10051 Hostname=Zabbix proxy #特别注意该名称具有唯一性,和web页面配置中"Proxy name”对应,每个zabbix-proxy都应该具有唯一名称。 LogFile=/var/log/zabbix/zabbix_proxy.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_proxy.pid DBHost=localhost DBName=zabbix_proxy DBUser=zabbix DBPassword=zabbix DBSocket=/var/lib/mysql/mysql.sock ConfigFrequency=60 #zabbix proxy 向服务器检索配置数据信息的频率,在被动模式下该参数将被忽略 DataSenderFrequency=600 #server和proxy配置修改同步时间间隔,设定5-10分钟即可。 ExternalScripts=/usr/lib/zabbix/externalscripts vi zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=192.168.73.231 zabbix-server地址 ServerActive=192.168.73.231 zabbix-server地址 Hostname=zabbix-proxy hostname名 Include=/etc/zabbix/zabbix_agentd.d/
zabbix中常用到的几个key:
1、监控端口的:net.tcp.port[,3306] /usr/local/zabbix/bin/ -s192.168.8.120 -knet.tcp.port[,3306] 返回1为192.168.8.120的端口3306存在,0为不存在 2、监控进程的:proc.num[mysqld] /usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[mysqld] 返回值为192.168.8.120中mysqld的进程数量 /usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[] 返回值为192.168.8.120中所有的进程数量 3、查看CPU核数的:system.cpu.num 返回值为服务器CPU的核数 4、查看系统的系统启动时间和当前时间:system.boottime、system.localtime 返回值为系统启动时间和当前时间,为时间戳格式 5、查看系统的简单信息:system.uname 返回值为192.168.8.120的系统信息,类似于linux系统的uname -a命令 6、查看windowns系统当前网卡的进出流量:net.if.out[{HOST.NAME},bytes]、net.if.in[{HOST.NAME},bytes]和linux系统的key:net.if.out[eth0,bytes]、net.if.in[eth0,bytes]一样 /usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.in[192.168.8.120,bytes] 返回值为IP为192.168.8.120的进流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量 /usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.out[192.168.8.120,bytes] 返回值为IP为192.168.8.120的出流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量 7、查看系统内存大小:vm.memory.size[total],返回值单位bytes 8、查看文件的大小: vfs.file.size[file] 如: vfs.file.size[/var/log/syslog] 返回的是/var/log/syslog的大小,单位是:bytes 9、查看文件是否存在:vfs.file.exists[file] 文件如果存在返回0,不存在返回1 10、查看文件的MD5:vfs.file.md5sum[file]查看小文件的MD5,返回为MD5值(好像只有2.0以上的版本有这个key) 11、自动发现网卡并监控流量和自动发现分区及分区挂载情况的两个key:net.if.discovery,vfs.fs.discovery,windows和linux监控模板中都有这模板(2.0以上版本),应用即可 以上是常用的key,其实监控服务器无非就是内存、硬盘占用、CPU负载、流量、服务器和端口等情况。如果要监控其他的可以自定义key来实现,本人喜欢自定义key,写个脚本来返回,得到自己想要的监控结果,zabbix在这块做的非常好,扩展性很强,支持各种脚本来实现自定义的key。 要启用自定义key,需要在客户端的配置文件中启用UnsafeUserParameters=1参数,然后在配置文件的最下面来定义key,如: UserParameter=free.disk,/usr/local/zabbix/bin/disk.py free.disk为key的名字,/usr/local/zabbix/bin/disk.py为服务器端调用free.disk这个key时执行的脚本,其结果就是free.disk的返回值。脚本可以是任何可以运行的脚本语言。 注意:脚本要用绝对路径,注意脚本的权限,写的脚本返回值要尽量简单,这样方便设置报警值。