monicazhang 发表于 2017-8-23 17:08:12

详解zabbix部署和调优

zabbix可以实现大部分硬件、中间件、数据库资源的监控包括zabbix agent(实现数据捕获)、zabbix proxy(实现数据分级分区域存储、服务器轻度汇总)、zabbix server实现数据存储和web展现zabbix proxy不是必须插件,但在多局域网或者服务器比较多时是首选接下来呢,我将利用我的服务器搭建一套zabbix系统(step-by-step),并做相关配置和简单调优我本地操作系统是redhat/centos 7.2,可能是版本原因把,搭建zabbix遇到了一些不一致的问题,大家如果有可能,直接装在7.3上会省很多事1、环境介绍zabbix01:192.168.150.129(部署zabbix server、zabbix client、mysql),client 直连zabbix serverzabbix02:192.168.150.130(部署zabbix proxy、zabbix client、mysql),client经由proxy,连接到zabbix server# more /etc/redhat-release CentOS Linux release 7.2.1511 (Core) #修改/etc/hosts,将上述对应关系添加进去(两台服务器一样的操作哈)# echo 192.168.150.129 zabbix01 >> /etc/hosts# echo 192.168.150.130 zabbix02 >> /etc/hosts
2、部署zabbix01zabbix01上部署zabbix server、zabbix clientzabbix server需要很多组建:php、httpd、mysql(数据库我用mysql),也就是所谓的LNMP系统zabbix client很简单,直接rpm安装就行不多说,下边我们一步一步安装吧a、安装和配置mysqlmysql的安装见我之前发的《redhat7下安装mysql》,这里不多说了,我mysql的版本是5.7.16# mysql -VmysqlVer 14.14 Distrib 5.7.16, for Linux (x86_64) usingEditLine wrapper
I、创建zabbix数据库和用户# mysql -uroot -pZxt1234!...mysql> create database zabbix character set utf8 collate utf8_bin;Query OK, 1 row affected (0.00 sec)mysql> grant all privileges on zabbix.* to zabbix identified by 'Zabbix123!';Query OK, 0 rows affected, 1 warning (0.01 sec)mysql> commit;Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)mysql> quitBye
II、mysql的参数调优我简单罗列了几个可以调优的mysql参数,但我这里是虚机内存比较小,大家可根据实际情况调整吧,具体见下# cat /etc/my.cnf...max_allowed_packet = 8Mmax_heap_table_size =16Mread_rnd_buffer_size = 512Ksort_buffer_size = 16join_buffer_size = 16query_cache_size = 128Mquery_cache_limit = 4Minnodb_open_files =1024innodb_buffer_pool_size = 256Minnodb_thread_concurrency = 16quickmax_allowed_packet = 8Mkey_buffer_size = 8Msort_buffer_size = 8Mread_buffer = 2Mwrite_buffer = 2Mskip-name-resolve#这里skip-name-resolve一定要加上,不然通过-h方式访问数据库会很慢(走dns的原因)
III、重启mysql# systemctl daemon-reload# systemctl restart mysqld # systemctl enable mysqld zabbix02上会装zabbix proxy哈,也需要mysql,安装部分跟这里一样,后边就不单独说了# systemctl daemon-reload# systemctl restart mysqld # systemctl enable mysqld# mysql -VmysqlVer 14.14 Distrib 5.7.16, for Linux (x86_64) usingEditLine wrapper
b、安装php依赖包zabbix server端会严重依赖php环境,这里说一下比较坑的地方zabbix server的安装要求php-mbstring、php-bcmath,而这俩组建有依赖一堆php的相关包,但是redhat 7.1、7.2是没有这个组件的。没办法,我从网上(linux/RPM/index.html)下载了所有相关7.3的php相关,这才好使# cd /root/Downloads/php/# lsphp-5.4.16-42.el7.x86_64.rpm         php-common-5.4.16-42.el7.x86_64.rpmphp-mbstring-5.4.16-42.el7.x86_64.rpmphp-xml-5.4.16-42.el7.x86_64.rpmphp-bcmath-5.4.16-42.el7.x86_64.rpmphp-gd-5.4.16-42.el7.x86_64.rpm      php-mysql-5.4.16-42.el7.x86_64.rpmphp-cli-5.4.16-42.el7.x86_64.rpm   php-ldap-5.4.16-42.el7.x86_64.rpm    php-pdo-5.4.16-42.el7.x86_64.rpm# yum localinstall *.rpm...Complete!#安装期间还自动安装了一堆其它的依赖包,包括httpd(apache server)等,刚好这也是zabbix需要的,好了我们再把httpd启动起来# systemctl daemon-reload# systemctl enable httpdCreated symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.# systemctl restart httpd
c、安装zabbix serverI、安装zabbix yum源这里通过rpm的方式安装官方zabbix的yum源# rpm -ivh --httpproxy=10.1.57.56 --httpport=8080 zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpmRetrieving zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpmwarning: /var/tmp/rpm-tmp.TMs2pN: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEYPreparing...                        ################################# Updating / installing...   1:zabbix-release-3.2-1.el7         ################################# # ls /etc/yum.repos.d/CentOS-Media.repozabbix.repo安装好之后,会多一个zabbix.repo文件我这里用到了http的代理哈,如果不需要,请取消安装好之后,我们将本地缓存的参数加进去,这样所有安装过的rpm都会在本地缓存一份# vi /etc/yum.repos.d/zabbix.repo ...cachedir=/var/cache/yum/$basearch/$releaseverkeepcache=1...
...cachedir=/var/cache/yum/$basearch/$releaseverkeepcache=1...
II、安装zabbix server一堆依赖包,最关键的fping、iksemel等,不过在zabbix的yum源中都有了# yum install zabbix-server-mysql zabbix-web-mysql...Complete!#
III、初始化zabbix数据库此过程会在zabbix数据库中创建127张表# zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | mysql -uzabbix -pZabbix123! zabbixmysql: Using a password on the command line interface can be insecure.#
IV、zabbix性能调优实际环境中需要根据服务器配置和业务负载进行配置,我这里是虚机,只做参考修改配置文件:/etc/zabbix/zabbix_server.conf,根据实际情况调整如下项内容(我的虚机是这么调的)StartPollers=10StartPollersUnreachable=20StartTrappers=15StartPingers=10StartDiscoverers=10CacheSize=56MStartDBSyncers=4HistoryCacheSize=56MTrendCacheSize=32MHistoryIndexCacheSize=12MLogSlowQueries=500StartIPMIPollers=5DBHost=192.168.150.129DBName=zabbixDBUser=zabbixDBPassword=Zabbix123!最后4条为数据库的配置,根据实际情况配置即可
V、zabbix前端关于apache的参数调整修改文件/etc/httpd/conf.d/zabbix.conf,涉及到如下值可以调整(其实我只调整了date.timezone一项)php_value max_execution_time 300php_value memory_limit 128Mphp_value post_max_size 16Mphp_value upload_max_filesize 2Mphp_value max_input_time 300php_value always_populate_raw_post_data -1php_value date.timezone Asia/Shanghai另外linux的selinux配置一下,命令为“setsebool -P httpd_can_connect_zabbix on”,我的selinux没有打开,所以忽略了
VI、启动zabbis server和apache server# systemctl restart httpd# systemctl enable zabbix-serverCreated symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.# systemctl restart zabbix-server
VI、zabbix server web初始化ok,server端就装好了,下来通过web端来做一下配置初始化,地址如下:zabbix/这里是一个step-by-step的操作,见如下的截图配置界面环境检查界面,必须都是ok哈配置数据库,地址、用户、密码什么的server信息配置,配上地址192.168.150.129ok配置完成点完成后,跳转至web登录界面,默认用户名/密码为:Admin/zabbix登录后主界面这里界面是英文的,我们改为中文的吧,Administration--》users--》admin 将Language改为Chinese,这里我还将Refresh (in seconds)改为1分钟,毕竟虚拟机性能差了一点改完点“update”按钮,并重新刷新web界面即可另外还需要启动Zabbix server,配置--》主机--》选择"Zabbix server"点进去,将ip地址改为192.168.150.129,点“更新”提交然后再勾选“Zabbix server”,点击"启用按钮"将其启用ok server端配置完成
d、安装并配置zabbix agent按照上边规划,zabbix01上要装server和agentagent很简单,也没有什么依赖包,直接yum install就是了# yum install -y zabbix-agentComplete!#I、配置agent参数文件编辑/etc/zabbix/zabbix_agentd.conf,并修改Server=192.168.150.129、ServerActive=192.168.150.129、Hostname=zabbix01三个参数,这里我想让agent直连server(不经过proxy),所以这里配置server的地址
II、修改mysql模版后边我想监控zabbix01上的硬件信息以及这台机器上的mysql数据库,所以这里修改一下mysql的模版,后边会用到编辑/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf,其中2个地方有“mysql -N”,替换为“mysql -h 192.168.150.129 -u zabbix -pZabbix123! -N”即可
III、启动agent# systemctl enable zabbix-agentCreated symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.# systemctl start zabbix-agent
IV、通过server的web端添加client登录server的web地址,配置--》主机--》创建主机--》主机,见下图主机名称填zabbix01;组群中添加linux server;并新建一个组群mysql(因为我要监控主机和主机上的mysql)再然后在“模版”界面,点击“选择”按钮,弹出的界面中选择“Template App MySQL”和“Template OS Linux”并提交;并依次点2个“添加”按钮,即可完成
ok,agent端的配置也完成
3、部署zabbix02zabbix02上准备安装zabbix-proxy,proxy需要mysql数据库之后安装zabbix-agent,将主机和数据库监控起来mysql的安装和yum源的配置和zabbix01一样了,这里就不赘述创建zabbix数据库、zabbix数据库用户、mysql内存调优的步骤也略了见2-a章节
a、安装proxyproxy不需要php环境,直接yum install就行,有一个特殊的依赖包fping在zabbix的源中有# yum install -y zabbix-proxy-mysql...Complete!#
b、proxy配置编辑/etc/zabbix/zabbix_proxy.conf,修改如下值Server=192.168.150.129Hostname=zabbix02DBHost=192.168.150.130DBName=zabbixDBUser=zabbixDBPassword=Zabbix123!也可以根据2-c-IV中的参数适当调整(这里我偷懒了啦)
I、创建数据库元数据# zcat /usr/share/doc/zabbix-proxy-mysql-3.2.4/schema.sql.gz | mysql -uzabbix -pZabbix123! zabbixmysql: Using a password on the command line interface can be insecure.这个过程也创建了127张元数据表,但不同于server端的脚本哈
II、启动proxy# systemctl daemon-reload# systemctl enable zabbix-proxyCreated symlink from /etc/systemd/system/multi-user.target.wants/zabbix-proxy.service to /usr/lib/systemd/system/zabbix-proxy.service.# systemctl start zabbix-proxy
III、在server上配置proxyserver的web界面,管理--》agent代理程序--》创建代理只要输入“名称”(zabbix02)点添加即可ok,proxy添加成功
c、agent配置zabbix02上装了mysql,这里通过agent将主机和mysql监控起来agent的安装和配置和zabbix01上差不多,不同的是:1、/etc/zabbix/zabbix_agentd.conf中的Server、ServerActive配置为proxy的地址,这里是192.168.150.1302、/etc/zabbix/zabbix_agentd.conf中Hostname配置为本地hostname(zabbix02)3、/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf中mysql -h后边接的地址为192.168.150.130(proxy的数据库),即将2个“mysql -N”改为“mysql -h 192.168.150.130 -u zabbix -pZabbix123! -N”# systemctl enable zabbix-agentCreated symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.# systemctl start zabbix-agent之后通过server端的web管理界面添加agent,唯一不同是,“由agent代理程序检测”中选上“zabbix02”即可,见下图ok,我们的zabbix server,proxy,agent 就配置成功了,我们看几张监控的图片吧:)

原创:祥云
页: [1]
查看完整版本: 详解zabbix部署和调优