centos7安装zabbix

centos7.3版本下搭建zabbix,今天看到网上一个不错的文档,转一下不过有个问题是mysql存储路径没解决,顺便处理下mysql存储路径;

url:http://blog.csdn.net/u014057054/article/details/66476990

安装前准备:

1.1 安装依赖包:

yum -y install wget net-snmp-devel OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel libcurl-devel perl-DBI pcre-devel libxml2 libxml2-devel mysql-devel gcc php php-bcmath php-gd php-xml php-mbstring php-ldap php-mysql.x86_64 php-pear php-xmlrpc  net-tools wget vim-enhanced

可能故障问题:Cannot find a valid baseurl for repo: base/7/x86_64

解决:修改DNS

 

1.2 关闭防火墙:

# systemctl stop firewalld.service

# systemctl disable firewalld.service 

需要关闭 selinux,一定要关闭这个,开启selinux会引起一连串问题,甚至zabbix的discovery功能也不能正常使用

# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

确认是否修改成功

# grep SELINUX /etc/selinux/config

然后重启系统即可

# reboot

一、zabbix server3.0在centos 7上安装

根据zabbix server3.0官方要求,目前zabbix server3.0在centos6 OS上不能进行yum安装。如果一定要在centos6 OS上进行安装zabbix server3.0的话,强烈建议通过源码方式进行编译安装,同时还需要注意PHP的版本。

考虑到这些因素,所以在此我们是在centos7 OS上进行yum安装zabbix server3.0。

注意:尽管zabbix server3.0在centos6 OS上不能yum方式进行安装,但是zabbix-agent3.0在centos6 OS上是可以进行yum安装的。

1.1 搭建lamp环境

在centos7上安装zabbix server3.0之前,我们首先搭建zabbix所需要的lamp环境。

下载最新的yum源,如下:

# wget -P /etc/yum.repos.d http://mirrors.aliyun.com/repo/Centos-7.repo

wKiom1gqn8vxHJ-AAAA85igYBXo093.png-wh_50 

在开始安装之前,还需要说明下centos7自带的mysql是mariadb,我们可以通过如下命令查看:

yum search mysql|tac

wKioL1gqn-SxR1T3AAEEUSRuNFs470.png

现在开始安装lamp环境,使用如下命令:

[root@zabbix ~]# yum -y install mariadb mariadb-server php php-mysql httpd

wKiom1gqn_Txs4WrAABAi2nJAOU966.png-wh_50 

通过上图,我们可以很明显的看出centos7默认安装的是php5.4、httpd2.4和maradb5.5,这个完全符合zabbix3.0对软件版本的要求。

lamp安装完毕后,我们现在来配置mysql数据库。

设置开机自启动mysql,并启动mysql,使用如下命令:

[root@zabbix ~]# systemctl enable mariadb.service

[root@zabbix ~]# systemctl start mariadb.service

wKioL1gqoAeT_0mHAAAYC_bko_Y251.png

初始化mysql数据库,并配置root用户密码。使用如下命令:

[root@zabbix ~]# mysql_secure_installation

wKiom1gqoBeTC9NqAABKxM4x6uY757.png-wh_50

wKioL1gqoCSDEeJSAAASp5JMyeU322.png-wh_50

wKiom1gqoDHBCn-SAABq5PAobEM930.png-wh_50

注意:在上图中的Enter current passwdord for root处,我们直接敲回车键即可。因为centos7上mysql的默认root用户密码为空。

上图中主要是为root用户配置密码,并刷新相关权限。(密码设为123456,只为实验用,生产环境自定义)

Remove anonymous users? 删除匿名用户?

Disallow root login remotely? 禁止root远程登陆

Remove test database and access to it? 删除测试数据库并且和访问它

Reload privilege tables now? 重新载入特权表

上图中主要是配置匿名用户、test用户以及root用户远程连接等相关配置。

mysql初始化完毕后,我们现在来创建zabbix数据库及其用户,使用如下命令:

[root@zabbix ~]# mysql -uroot -p123456 -e "create database zabbix default character set utf8 collate utf8_bin;"

[root@zabbix ~]#mysql -uroot -p123456 -e "grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix';"

wKioL1gqoD_BClFkAACKdFUrycA669.png

现在来测试刚刚创建的zabbix用户,是否可以连接mysql数据库,如下:

[root@zabbix ~]# mysql -uzabbix -pzabbix

MariaDB [(none)]> show databases;

MariaDB [(none)]> quit

wKiom1gqoEzBRpMbAABNUFEiCuM472.png-wh_50

通过上图,我们可以很明显的看出zabbix用户是可以正常连接数据库的。

启动apache以及开放80端口,如下:

[root@zabbix ~]# systemctl start httpd.service

[root@zabbix ~]# netstat -ltun

wKioL1gqoGWgAYGXAAA6sE-tHK4029.png-wh_50

wKiom1gqoMbhIRteAAAGNCSDtAQ262.png

到此lamp环境已经全部搭建完毕。

wKiom1gqoNPwz53hAAEA7yOBGok853.png-wh_50

wKioL1gqoOPBczFdAALoUk-HFjE752.png-wh_50

1.2 安装zabbix server3.0

lamp环境搭建完毕后,我们现在开始正式安装zabbix3.0。

安装zabbix3.0所需要EPEL源和zabbix的yum源,如下:

#rpm -ivh http://mirrors.aliyun.com/epel/7/x86_64/e/epel-release-7-8.noarch.rpm

wKiom1gqoPTSmlfLAAAocT5rAkc580.png-wh_50

测试下来大多数的这个包下不到:(

#rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

wKiom1gqoQeSNMFLAAAopZDOd94134.png

以上安装完毕后,我们现在来正式安装zabbix3.0,使用如下命令:

[root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get

wKiom1gqoRbAVXI6AABiYtiHgL4078.png

wKioL1gqoSjR6ooxAAAhfLVS2WY942.png

通过上图,我们可以很明显的看出目前zabbix server是3.0.5版本的。

以上安装完毕后,我们现在开始进行zabbix的相关配置。

导入zabbix数据库结构,如下:

[root@zabbix ~]# cd /usr/share/doc/zabbix-server-mysql-3.0.5/

[root@zabbix zabbix-server-mysql-3.0.5]# zcat create.sql.gz | mysql -uroot -pDe123456 zabbix

wKioL1gqoTeTXQ5IAAAb16Vuvc4882.png

数据库导入完毕后,我们现在来修改zabbix sever的配置文件,如下:

[root@zabbix ~]# vi /etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log

LogFileSize=0

PidFile=/var/run/zabbix/zabbix_server.pid

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

SNMPTrapperFile=/var/log/snmptrap/snmptrap.log

Timeout=4

AlertScriptsPath=/usr/lib/zabbix/alertscripts

ExternalScripts=/usr/lib/zabbix/externalscripts

LogSlowQueries=3000

wKiom1gqoYbBllDyAAAE8E22BZo660.png

wKioL1gqoZLhwEQ0AAAE_nfB-Ww462.png


wKiom1gqodbwMzfGAAAFQn89Sxc561.png

wKiom1gqoeLjLi9KAAAGNJJLhQ4546.png

上述配置文件中,我们只需要关注 DBHost、DBName、DBUser、

DBPassword 几项即可。这几项是配置zabbix server连接mysql数据库的参数。

以上修改完毕后,我们再来修改下zabbix.conf文件。如下:

vi /etc/httpd/conf.d/zabbix.conf

Alias /zabbix /usr/share/zabbix


Options FollowSymLinks

AllowOverride None

Require all granted


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/Chongqing



修改前:

wKiom1gqofjirWwNAAEOczMLL4Q534.png-wh_50

修改后:

wKioL1gqog6zmlb_AABAE4wmtyM045.png-wh_50

其中php_value date.timezone Asia/Chongqing主要是定义php的时区。

以上修改完毕后,我们把把zabbix-server加入开机启动,并启动zabbix-server,如下:

[root@zabbix ~]# systemctl start zabbix-server.service

[root@zabbix ~]# systemctl enable zabbix-server.service

wKiom1gqoiDwOemSAAAHvLw7axE579.png

最后重启apache,如下:

[root@zabbix ~]# systemctl restart httpd.service

 

三、配置zabbix

http://ip/zabbix/setup.php

wKiom1gqow3zr3-uAAAprQiAZZs653.png

wKioL1gqoxnTPFYsAAD7hkYL_8k558.png

Next step

wKiom1gqoyqwzJyYAAFdXoJFbow672.png

Next step

wKioL1gqozbA9aagAADVo3EVVAU690.png

上图中需要填写的是,我们前面创建的zabbix数据库已经用户和密码 , Next step

wKiom1gqo0Dy7uLTAAC0G9XzrRk864.png

Next step

wKioL1gqo1GxCOzBAADifGi_vU4200.png

Next step

wKioL1gqo2KwCzFIAACQYsT4QtY192.png

Finish

wKiom1gqo27iu85zAABDI7bf54E379.png

默认用户名是Admin 密码 zabbix 然后点击sign in

wKioL1gqo4KzediyAAGE2kBORA8229.png

四、安装zabbix agent

前面我们安装了zabbix server3.0,本章节我们介绍安装zabbix agent端。zabbix agent的安装比较简单,我们只需要安装相应的仓库,然后执行安装命令即可。

4.1 安装zabbix agent

在centos os上安装agent,使用如下命令:

rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm

[root@zabbix ~]# yum clean all

[root@zabbix ~]# yum -y install zabbix zabbix-agent

wKiom1gqo5WR5kbJAAESZWBLc1E163.png-wh_50

wKiom1gqo6KxpsqiAAC4NvjKK64468.png

在安装时如出现如上图所示错误,原因是软件这两个版本不一致,仔细观察发现这两个软件包使用了不同的仓库,把epel的关闭(enabled=0,位于/etc/yum.repos.d/epel.repo或etc/yum.repos.d/CentOS-Epel.repo)再重装

 

4.2 配置zabbix agent

zabbix agent的配置很简单,只需要修改zabbix agent配置文件中的Server、ServerActive和Hostname这三项即可。

其中Server、ServerActive是zabbix server服务器的IP地址,Hostname是被监控端的IP地址,如下:

[root@zabbix ~]# vi /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

Server=127.0.0.1

ServerActive=127.0.0.1

Hostname=127.0.0.1

Include=/etc/zabbix/zabbix_agentd.d/

以上配置完毕后,我们在zabbix web端添加该监控机器时,只需要把honst name与该配置文件中的hostname对应即可。如下:

Server=服务器ip地址

ServerActive=服务器ip地址

Hostname=客户端ip地址

Server被动ServerActive主动

到此zabbix agent就已经安装完毕。

启动客户端

[root@zabbix ~]# zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

[root@zabbix ~]# systemctl start zabbix-agent

[root@zabbix ~]# systemctl restart zabbix-agent

[root@zabbix ~]# systemctl enable zabbix-agent

wKioL1gqo7KiLO7AAACHJIsErX4620.png

wKiom1gqo7_ApARXAACAo0v2jz4058.png

查看一下状态

wKioL1gqo8mAs0ZUAADzrTOq8h8747.png

wKiom1gqo9bTbLC3AAHfIYhJzMM497.png

五、zabbix web中文显示与优化

5.1 zabbix web中文显示

默认情况下zabbix web显示的是英文,实际上zabbix是支持中文的,我们可以通过修改web端源文件来开启中文。

修改/usr/share/zabbix/include/locales.inc.php文件,把zh_CN所在行的false改为true即可,如下:

[root@zabbix ~]# vim /usr/share/zabbix/include/locales.inc.php +55

改正前:

wKioL1gqo-SCwPElAABdt5ULbBU209.png

改正后:

wKiom1gqpAqgmCTZAADG3etVUbo565.png

最后后点击zabbix web监控网页端右上角人头头像,在弹出的选项卡选择中文语言即可。如下:

改正前:

wKioL1gqpBawwGkyAACrhsftdeM636.png-wh_50

改正后:

wKioL1gqpCST5LpAAAHDAHIv84E444.png

5.2 中文显示优化

安装中文支持包

安装方法如下:

[root@zabbix ~]# wget https://github.com/echohn/zabbix-zh_CN/archive/master.zip

[root@zabbix ~]# unzip master.zip

[root@zabbix ~]# rm /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/frontend.mo

[root@zabbix ~]# cp zabbix-zh_CN-master/frontend.mo /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/frontend.mo

wKioL1gqpDSTkFusAAGnfxR9nOw371.png

wKiom1gqpEGBaeTXAAEgQknpij8858.png

现在重启下apache和zabbix_server两个服务就可以,如下:

[root@zabbix ~]# systemctl restart httpd

[root@zabbix ~]# systemctl restart zabbix-server

zabbix中文乱码:

乱码如下图:

wKioL1gqpEySq9q0AAHUgOWFbZ4799.png

解决乱码方法:

把Windows 系统中找到 C:\Windows\Fonts 中的楷体(常规)复制到windows桌面上

wKiom1gqpFritBMYAAHdJInXoqc331.png



 simkai.ttf上传到 linux 里上,接下来把 simkai.ttf 移动到 zabbix 安装目录的 fonts 目录下

[root@zabbix ~]# mv simkai.ttf /usr/share/zabbix/fonts/

wKiom1gqpRfCEekKAADTxfJGdZI490.png

[root@zabbix ~]# cd /usr/share/zabbix/fonts/

[root@zabbix fonts]# ls

graphfont.ttf  simkai.ttf

[root@zabbix fonts]# chmod 777 simkai.ttf

wKioL1gqpS6SdeGgAADW2yN4SOA976.png

[root@zabbix fonts]# cp graphfont.ttf graphfont.ttf.bak

[root@zabbix fonts]# mv simkai.ttf graphfont.ttf

mv :是否覆盖 "graphfont.ttf" ? y

wKioL1gqpWDB0susAACmDH4ZPWc029.png

查看一下 ,ok了

1111.png

问题:

1. mysql路径问题,zabbix长时间监控数据会很大,mysql数据需要存储大数据盘里面,我的/home是空间大;

1.systemctl  stop mariadb.service

2.mv /var/lib/mysql /home

3.chown -R mysql:mysql /home/mysql

4.ln -s /home/mysql /var/lib/mysql   记得是/home/mysql不是/home/mysql/

5.vim /etc/my.cnf 修改datadir=/home/mysql

6.systemctl  start mariadb.service


重启以后可以使用zabbix了;

2.1邮件报警:

在zabbix-server.conf 中找到Alert 路径建立路径及发送邮件脚本;

mkdir alertscripts 

vim send_email.sh

#!/bin/sh

#export.UTF-8

FILE=/var/log/zabbix/mailtmp.txt

echo "$3" >$FILE

dos2unix -k $FILE

/bin/mail -s "$2" $1 < $FILE

zabbix-管理--示警媒介类型--创建媒体类型-名字,脚本,sendmail脚本名字,--添加联系人邮件。。

配置--动作--条件--操作--依次设置添加要发送的用户;

2.2.邮件测试报错

send-mail: fatal: parameter inet_interfaces: no local interface found for ::1

发送邮件:

[root@VM_0_centos alertscripts]# ./send_mail.sh  [email protected] "test" "hello"

出现异常:

[root@iZ23whn33jnZ log]# send-mail: fatal: parameter inet_interfaces: no local interface found for ::1

查看centos中的postfix日志

more  /var/log/maillog

postfix: fatal: parameter inet_interfaces: no local interface found for ::1

 参考网上的:

vi  /etc/postfix/main.cf

inet_interfaces = localhost

inet_protocols = all

改成:

inet_interfaces = all

inet_protocols = all

重新启动

systemctl  restart postfix.service

OK

3.zabbix-agent安装先安装zabbix的yum源

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

没安装的话yum安装zabbix agent可能会安装zabbix22-2.2.20-1.el7.x86_64版本,卸载重装

rpm  -qa|grep zabbix

rpm -e zabbix22-2.2.20-1.el7.x86_64

yum clean all

yum -y install zabbix zabbix-agent

即可;


PS一些故障问题:

1.zabbix对新的主机监控关联模板一直没反应,原来报了500错误,查看日志:

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 78 bytes) in /usr/share/zabbix/include/classes/debug/CProfiler.php 

将/etc/httpd/conf.d/zabbix.conf中的memory_limit = 128M改为512M, systemctl restart httpd问题解决。

2.Zabbix server内存溢出,无法启动

问题原因:zabbix使用一段时间后,再次加入一批交换机监控,zabbix-server将无法启动,查看日志显示如下(提示内存溢出,需调整zabbix服务器配置zabbix_server.conf)

 2816:20170725:174352.675 [file:dbconfig.c,line:652] zbx_mem_realloc(): out of memory (requested 162664 bytes)

 2816:20170725:174352.675 [file:dbconfig.c,line:652] zbx_mem_realloc(): please increase CacheSize configuration parameter

解决方案:

vim zabbix_server.conf 2 3 CacheSize=1024M #默认为8M

3.Zabbix discoverer processes more than 75% busy

问题原因:

  配置了discovery自动发现任务,配置的每个discovery任务在一定时间内占用1个进程,而zabbix_server.conf中默认配置只有1个discovery(被注释,默认生效)为了快速验证自动发现效果,将discovery任务的"Delay"由默认3600s设置成60s

解决方案:

a.修改配置文件/etc/zabbix/zabbix_server.conf中的StartDiscoverers进程数量,取消其之前的#号并将数值修改为5,最后重启服务

(注:根据系统硬件配置,可以设置成更高的数值,但其范围为0~250)

 grep 'StartDiscoverers' /etc/zabbix/zabbix_server.conf

 Option: StartDiscoverers

 StartDiscoverers=5

 systemctl restart zabbix-server.service

b.编写定时任务脚本重启zabbix_server来降低负载

计划会每天自动重启Zabbix服务以结束僵尸进程并清理内存等;

4.Zabbix poller processes more than 75% busy

问题原因:

通过Zabbix agent采集数据的设备死机或其他原因导致zabbix agent死掉server获取不到数据

server向agent获取数据时时间过长,超过了server设置的timeout时间

解决方案:

增加Zabbix Server启动时初始化的进程数量

Option: StartPollers StartPollers=10 #改成多少取决于服务器的性能和监控的数量,如果内存足够的话可以设置更高 

修改模板自动发现规则中的保留失去的资源期间为0

5.Zabbix housekeeper processes more than 75% busy

问题原因:

为了防止数据库持续增大,zabbix有自动删除历史数据的机制即housekeeper,而mysql删除数据时性能会降低,就会报错

解决方案:

调整HousekeepingFrequency参数

HousekeepingFrequency=12 #间隔时间  MaxHousekeeperDelete=1000000 #最大删除量 





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章