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 server zabbix02:192.168.150.130(部署zabbix proxy、zabbix client、mysql),client经由proxy,连接到zabbix server [root@zabbix01 ~]# more /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@zabbix01 ~]# 修改/etc/hosts,将上述对应关系添加进去(两台服务器一样的操作哈) [root@zabbix01 ~]# echo 192.168.150.129 zabbix01 >> /etc/hosts [root@zabbix01 ~]# echo 192.168.150.130 zabbix02 >> /etc/hosts
2、部署zabbix01 zabbix01上部署zabbix server、zabbix client zabbix server需要很多组建:php、httpd、mysql(数据库我用mysql),也就是所谓的LNMP系统 zabbix client很简单,直接rpm安装就行 不多说,下边我们一步一步安装吧 a、安装和配置mysql mysql的安装见我之前发的《redhat7下安装mysql》,这里不多说了,我mysql的版本是5.7.16 [root@zabbix01 mysql]# mysql -V mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
I、创建zabbix数据库和用户 [root@zabbix01 mysql]# 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> quit Bye [root@zabbix01 mysql]
II、mysql的参数调优 我简单罗列了几个可以调优的mysql参数,但我这里是虚机内存比较小,大家可根据实际情况调整吧,具体见下 [root@zabbix01 mysql]# cat /etc/my.cnf ... max_allowed_packet = 8M max_heap_table_size =16M read_rnd_buffer_size = 512K sort_buffer_size = 16 join_buffer_size = 16 query_cache_size = 128M query_cache_limit = 4M innodb_open_files =1024 innodb_buffer_pool_size = 256M innodb_thread_concurrency = 16 [mysqldump] quick max_allowed_packet = 8M [myisamchk] key_buffer_size = 8M sort_buffer_size = 8M read_buffer = 2M write_buffer = 2M skip-name-resolve [root@zabbix01 mysql]# 这里skip-name-resolve一定要加上,不然通过-h方式访问数据库会很慢(走dns的原因)
III、重启mysql [root@zabbix01 mysql]# systemctl daemon-reload [root@zabbix01 mysql]# systemctl restart mysqld [root@zabbix01 mysql]# systemctl enable mysqld zabbix02上会装zabbix proxy哈,也需要mysql,安装部分跟这里一样,后边就不单独说了 [root@zabbix02 mysql]# systemctl daemon-reload [root@zabbix02 mysql]# systemctl restart mysqld [root@zabbix02 mysql]# systemctl enable mysqld [root@zabbix02 mysql]# mysql -V mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
b、安装php依赖包 zabbix server端会严重依赖php环境,这里说一下比较坑的地方 zabbix server的安装要求php-mbstring、php-bcmath,而这俩组建有依赖一堆php的相关包,但是redhat 7.1、7.2是没有这个组件的。 [root@zabbix01 mysql]# cd /root/Downloads/php/ [root@zabbix01 php]# ls php-5.4.16-42.el7.x86_64.rpm php-common-5.4.16-42.el7.x86_64.rpm php-mbstring-5.4.16-42.el7.x86_64.rpm php-xml-5.4.16-42.el7.x86_64.rpm php-bcmath-5.4.16-42.el7.x86_64.rpm php-gd-5.4.16-42.el7.x86_64.rpm php-mysql-5.4.16-42.el7.x86_64.rpm php-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 [root@zabbix01 php]# yum localinstall *.rpm ... Complete! [root@zabbix01 php]# 安装期间还自动安装了一堆其它的依赖包,包括httpd(apache server)等,刚好这也是zabbix需要的,好了我们再把httpd启动起来 [root@zabbix01 php]# systemctl daemon-reload [root@zabbix01 php]# systemctl enable httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. [root@zabbix01 php]# systemctl restart httpd
c、安装zabbix server I、安装zabbix yum源 这里通过rpm的方式安装官方zabbix的yum源 warning: /var/tmp/rpm-tmp.TMs2pN: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY Preparing... ################################# [100%] Updating / installing... 1:zabbix-release-3.2-1.el7 ################################# [100%] [root@zabbix01 php]# ls /etc/yum.repos.d/ CentOS-Media.repo zabbix.repo 安装好之后,会多一个zabbix.repo文件 我这里用到了http的代理哈,如果不需要,请取消 安装好之后,我们将本地缓存的参数加进去,这样所有安装过的rpm都会在本地缓存一份 [root@zabbix01 php]# vi /etc/yum.repos.d/zabbix.repo [zabbix] ... cachedir=/var/cache/yum/$basearch/$releasever keepcache=1 ...
[zabbix-non-supported] ... cachedir=/var/cache/yum/$basearch/$releasever keepcache=1 ...
II、安装zabbix server 一堆依赖包,最关键的fping、iksemel等,不过在zabbix的yum源中都有了 [root@zabbix01 php]# yum install zabbix-server-mysql zabbix-web-mysql ... Complete! [root@zabbix01 php]#
III、初始化zabbix数据库 此过程会在zabbix数据库中创建127张表 [root@zabbix01 php]# zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | mysql -uzabbix -pZabbix123! zabbix mysql: [Warning] Using a password on the command line interface can be insecure. [root@zabbix01 php]#
IV、zabbix性能调优 实际环境中需要根据服务器配置和业务负载进行配置,我这里是虚机,只做参考 修改配置文件:/etc/zabbix/zabbix_server.conf,根据实际情况调整如下项内容(我的虚机是这么调的) StartPollers=10 StartPollersUnreachable=20 StartTrappers=15 StartPingers=10 StartDiscoverers=10 CacheSize=56M StartDBSyncers=4 HistoryCacheSize=56M TrendCacheSize=32M HistoryIndexCacheSize=12M LogSlowQueries=500 StartIPMIPollers=5 DBHost=192.168.150.129 DBName=zabbix DBUser=zabbix DBPassword=Zabbix123! 最后4条为数据库的配置,根据实际情况配置即可
V、zabbix前端关于apache的参数调整 修改文件/etc/httpd/conf.d/zabbix.conf,涉及到如下值可以调整(其实我只调整了date.timezone一项) php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 php_value date.timezone Asia/Shanghai 另外linux的selinux配置一下,命令为“setsebool -P httpd_can_connect_zabbix on”,我的selinux没有打开,所以忽略了
VI、启动zabbis server和apache server [root@zabbix01 php]# systemctl restart httpd [root@zabbix01 php]# systemctl enable zabbix-server Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service. [root@zabbix01 php]# systemctl restart zabbix-server
VI、zabbix server web初始化 ok,server端就装好了,下来通过web端来做一下配置初始化,地址如下: zabbix/这里是一个step-by-step的操作,见如下的截图 配置界面 环境检查界面,必须都是ok哈 配置数据库,地址、用户、密码什么的 server信息配置,配上地址192.168.150.129 ok配置完成 点完成后,跳转至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和agent agent很简单,也没有什么依赖包,直接yum install就是了 [root@zabbix01 php]# yum install -y zabbix-agent Complete! [root@zabbix01 php]# 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 [root@zabbix01 php]# systemctl enable zabbix-agent Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service. [root@zabbix01 php]# 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、部署zabbix02 zabbix02上准备安装zabbix-proxy,proxy需要mysql数据库 之后安装zabbix-agent,将主机和数据库监控起来 mysql的安装和yum源的配置和zabbix01一样了,这里就不赘述 创建zabbix数据库、zabbix数据库用户、mysql内存调优的步骤也略了见2-a章节
a、安装proxy proxy不需要php环境,直接yum install就行,有一个特殊的依赖包fping在zabbix的源中有 [root@zabbix02 ~]# yum install -y zabbix-proxy-mysql ... Complete! [root@zabbix02 ~]#
b、proxy配置 编辑/etc/zabbix/zabbix_proxy.conf,修改如下值 Server=192.168.150.129 Hostname=zabbix02 DBHost=192.168.150.130 DBName=zabbix DBUser=zabbix DBPassword=Zabbix123! 也可以根据2-c-IV中的参数适当调整(这里我偷懒了啦)
I、创建数据库元数据 [root@zabbix02 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-3.2.4/schema.sql.gz | mysql -uzabbix -pZabbix123! zabbix mysql: [Warning] Using a password on the command line interface can be insecure. 这个过程也创建了127张元数据表,但不同于server端的脚本哈
II、启动proxy [root@zabbix02 ~]# systemctl daemon-reload [root@zabbix02 ~]# systemctl enable zabbix-proxy Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-proxy.service to /usr/lib/systemd/system/zabbix-proxy.service. [root@zabbix02 ~]# systemctl start zabbix-proxy
III、在server上配置proxy server的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.130 2、/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” [root@zabbix02 zabbix]# systemctl enable zabbix-agent Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service. [root@zabbix02 zabbix]# systemctl start zabbix-agent 之后通过server端的web管理界面添加agent,唯一不同是,“由agent代理程序检测”中选上“zabbix02”即可,见下图 ok,我们的zabbix server,proxy,agent 就配置成功了,我们看几张监控的图片吧:)
原创:祥云
|