关于zabbix监控环境搭建讲解(redhat7.2)
最近一直在看系统监控相关的文章,所以以后的时间里会时不时发一些系统监控相关的文章上来。还是那句话,喜欢就看看,不喜勿喷啦!随着业务系统的不断升级和庞大,涉及到的服务器会越来越多,我们传统的监控和服务器管理方式将逐渐不能满足日常运维需要所以我们提了自动化运维,智能运维等很多口号,要做好自动运维,监控就要先做起来主机、操作系统、中间件、数据库&网络等等...个人觉得呢,系统监控应该:一、把所有的主机、数据库、中间件、交换机等资源监控起来,根据业务需求设置各种级别监控伐值,并将告警消息push给运维负责人二、根据业务场景,配置各种自动化工具,进行业务扩容(业务负载高时)、服务器隔离(硬件故障时)、并做好启动清理和历史数据归档等三、实现主机的自制管理功能(通过管理口管理),包括操作系统自动安装、硬件一级监控(温度、风扇转速、raid等)、远程桌面等四、监控应实现服务器自动发现功能,这样新增的服务器就很容易监控起来好了,不扯这么远了,搞点实际的吧那么,就从最近很火的zabbix入手吧!最近这段时间看了很多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/hosts2、部署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]