在很早以前就了解过一些开源的监控工具,例如nagios、ganglia、cacti、zabbix,目前zabbix好像更受欢迎一点,我们所有的业务主要在阿里云上,平时主要用的阿里云的一些监控,随着业务的发展,想着将监控这一部分具体完善一下,所以就选择了zabbix,在使用的过程中也遇到了一些问题,在此记录,供以后参考。
环境:lamp (centos 6.5 + apache2+mysql5.1+php)
zabbix版本:2.4.8
问题一、语言设置中文后乱码
如图上面的历史记录部分是乱码的,这个主要是我们创建数据库以及初始化时,选择的字符集不合适,这里需要注意是当我们初次安装的时候,创建数据库字符集一定要选择为UTF8,这样整体后期就不会出现乱码。
检查数据库字符集
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
1.查看当前的默认字符集
mysql> show
create
database
zabbix;
+
----------+-------------------------------------------------------------------+
|
Database
|
Create
Database
|
+
----------+-------------------------------------------------------------------+
| zabbix |
CREATE
DATABASE
`zabbix` /*!40100
DEFAULT
CHARACTER
SET
latin1 */ |
+
----------+-------------------------------------------------------------------+
1 row
in
set
(0.00 sec)
#安装时在导入三个sql文件时,zabbix数据库中创建的表的字符集也是latin1
mysql> show variables
like
'character%'
;
+
--------------------------+----------------------------+
| Variable_name | Value |
+
--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem |
binary
|
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+
--------------------------+----------------------------+
|
这一块就是由于数据库字符集的原因导致的,因为只一块主要是历史记录,所以我们现在可以直接更改,更改方法如下:
1、将zabbix数据库使用mysqldump逻辑备份,然后将文件里的字符集latin1更改为utf8。
2、更改数据库的默认字符集并重启数据库
3、删除之前的数据库,并创建新的zabbix库(默认字符集utf8)恢复数据。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
mysqldump -u root zabbix>/tmp/zabbix20170428.sql #备份数据
root@localhost alertscripts]# grep
"latin1"
/tmp/zabbix20170428.sql #检查哪些表字符集为latin1
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
) ENGINE=InnoDB
DEFAULT
CHARSET=latin1;
替换字符集
sed -i
's/latin1/utf8/g'
/tmp/zabbix20170428.sql
替换完再检查
grep
"latin1"
/tmp/zabbix20170428.sql
结果为空
更改数据库默认字符集,并重启数据库
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user
=mysql
log-bin=/var/lib/mysql/log_bin
default
-
character
-
set
= utf8
删除原先的数据库,并重新创建数据库
mysql>
drop
database
zabbix
-> ;
Query OK, 104
rows
affected (5.14 sec)
create
database
zabbix
default
character
set
utf8;#创建zabbix数据库
mysql -u root zabbix < /tmp/zabbix20170428.sql #恢复数据
登录检查
|
经过检查已经解决了乱码的问题,虽然这里的乱码不会影响我们功能的使用,但是看着很难受,所以痛下杀手,直接将它给更改过来了。
问题二、图标显示很多小方块
显示方块
其实这里是有汉字的,当我们将其语言格式调整为英文的时候显示就会正常,这里我们就需要考虑更改字体。
显示正常
解决方法:
将windows(C:\Windows\Fonts)微软雅黑或者楷体这类字体替换,替换zabbix的web界面的font里面的字体,为了简单我们可以直接将原先字体文件名替换。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@localhost fonts]
# ll
total
11512
lrwxrwxrwx
1
root root
33
Apr
26
11
:
12
graphfont.ttf
-
>
/
etc
/
alternatives
/
zabbix
-
web
-
font
#默认
-
rw
-
r
-
-
r
-
-
1
777
root
11785184
Jun
11
2009
msyh.tt
#刚上传的微软雅黑
更改文件名:
[root@localhost fonts]
# cp graphfont.ttf graphfont20170428.ttf #备份数据
[root@localhost fonts]
# ls
graphfont20170428.ttf graphfont.ttf msyh.ttf
[root@localhost fonts]
# mv msyh.ttf graphfont.ttf #覆盖文件
mv: overwrite `graphfont.ttf'? y
[root@localhost fonts]
# ll
total
12216
-
rw
-
r
-
-
r
-
-
1
root root
720012
Apr
28
18
:
13
graphfont20170428.ttf
-
rw
-
r
-
-
r
-
-
1
777
root
11785184
Jun
11
2009
graphfont.ttf
[root@localhost fonts]
#
界面检查
|
接触了一下发现zabbix其实还是比较简单的,接下来就需要攻克监控数据库以及tomcat和redis等应用程序,任重而道远,加油!
本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1920598,如需转载请自行联系原作者