暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

部署zabbix3.2.7,升级到3.4、proxy部署

原创 刘东 2022-11-03
397

一、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.rpmyum -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.rpmwget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-agent-3.2.7-1.el7.x86_64.rpmwget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-java-gateway-3.2.7-1.el7.x86_64.rpmwget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-proxy-mysql-3.2.7-1.el7.x86_64.rpmwget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-proxy-pgsql-3.2.7-1.el7.x86_64.rpmwget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-proxy-sqlite3-3.2.7-1.el7.x86_64.rpmwget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-sender-3.2.7-1.el7.x86_64.rpmwget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-server-mysql-3.2.7-1.el7.x86_64.rpmwget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-server-pgsql-3.2.7-1.el7.x86_64.rpmwget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-web-3.2.7-1.el7.noarch.rpmwget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-web-japanese-3.2.7-1.el7.noarch.rpmwget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-web-mysql-3.2.7-1.el7.noarch.rpmwget 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.pidLogFile=/var/log/zabbix/zabbix_agentd.logLogFileSize=0Server=192.168.56.103ServerActive=127.0.0.1Hostname=Zabbix serverInclude=/etc/zabbix/zabbix_agentd.d/*.confUnsafeUserParaters=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 aliveUserParameter=mysql.version,mysql -V

windows客户端安装:

windows 客户机安装
修改配置文件服务器地址和计算机名。
C:\zabbix_agents\bin\win64\zabbix_agentd.exe  -c C:\zabbix_agents\conf\zabbix_agentd.conf -i
C:\zabbix\zabbix_agents_3.0.0.win\bin\win64\zabbix_agentd.exe -c C:\zabbix\zabbix_agents_3.0.0.win\conf\zabbix_agentd.win.conf -i
C:\zabbix\zabbix_agents_3.0.0.win\bin\win64\zabbix_agentd.exe -c C:\zabbix\zabbix_agents_3.0.0.win\conf\zabbix_agentd.win.conf -s
C:\zabbix_agents\bin\win64\zabbix_agentd.exe -c C:\zabbix_agents\conf\zabbix_agentd.conf -s

客户端常用命令:

配置命令
c:\zabbix\bin\win32\zabbix_agentd -c C:\zabbix\conf\zabbix_agentd.win.conf -i
-c :指定配置文件所有位置
-i :安装客户端
-s :启动客户端
-x :停止客户端
-d :卸载客户端
关于主机名:如果zabbix_agentd.conf配置有定义Hostname,那么zabbix会使用这个Hostname命名,否则agent的主机名(hostname得来的)
修改metadataitemcat /usr/local/zabbix-2.2.1/etc/zabbix_agentd.conf | grep HostMetadataItem= HostMetadataItem=system.unamecat /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.gitCloning into 'zabbix_manager'...remote: Counting objects: 523, done.remote: Total 523 (delta 0), reused 0 (delta 0), pack-reused 523Receiving objects: 100% (523/523), 940.52 KiB | 159.00 KiB/s, done.Resolving deltas: 100% (274/274), done.[root@localhost zabbix]# pwd/var/log/zabbixgrep -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的返回值。脚本可以是任何可以运行的脚本语言。

注意:脚本要用绝对路径,注意脚本的权限,写的脚本返回值要尽量简单,这样方便设置报警值。

本篇为转移本人其他博客文章,zabbix版本有点老,用于保存以前操作记录。。。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论