月度归档:2017年08月

Zabbix错误”zbx_mem_malloc(): out of memory”

Zabbix Server突然挂了,查看log报错如下:

using configuration file: /etc/zabbix/zabbix_server.conf
...
[file:dbconfig.c,line:545] zbx_mem_malloc(): out of memory (requested 16 bytes)
[file:dbconfig.c,line:545] zbx_mem_malloc(): please increase CacheSize configuration parameter

报错里已经很明确的提示了修复办法:please increase CacheSize configuration parameter

所以,我们就去zabbix_server.conf中找到CacheSize字段

### Option: CacheSize
#   Size of configuration cache, in bytes.
#   Shared memory size for storing host, item and trigger data.
#
# Mandatory: no
# Range: 128K-8G
# Default:
# CacheSize=8M

根据服务器配置情况,修改CacheSize

### Option: CacheSize
#   Size of configuration cache, in bytes.
#   Shared memory size for storing host, item and trigger data.
#
# Mandatory: no
# Range: 128K-8G
# Default:
CacheSize=2048M

重启Zabbix Server即可

systemctl start zabbix-server

CentOS 5安装Telnet服务

1.安装telnet服务

[root@localhost ~]# yum install telnet
[root@localhost ~]# yum install xinetd

2.检查是否成功安装

[root@localhost ~]# rpm -qa | grep telnet
telnet-0.17-38.el5
telnet-server-0.17-38.el5                                      #####有显示就是正确的

3.修改文件开启服务

[root@localhost home]# vim /etc/xinetd.d/telnet 
# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        log_on_failure  += USERID
        disable         = no                              默认的yes是指禁止远方telnet,改为no就是启动
}

[root@localhost xinetd.d]# service  xinetd  restart
停止 xinetd:                                              [确定]
启动 xinetd:                                              [确定]

4.停止iptables、seliunx(可以在iptables中开启telnet的23端口,后面有介绍)

5.测试能否能用root账户telnet(若没配置一般是不行的)

6.修改配置使root登陆

当我们失败后,linux是会记录下失败记录作为日志在/var/log/secure

Oct 26 08:17:57 localhost login: pam_securetty(remote:auth): access denied: tty 'pts/1' is not secure !
Oct 26 08:18:01 localhost login: FAILED LOGIN 1 FROM 192.168.1.101 FOR root, Authentication failure

可以看到没有pts/1所以被拒绝了

我们可以在修改添加一个虚拟线程

[root@localhost xinetd.d]# vi /etc/securetty 

console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
pts/1

再次测试

Xshell:\> telnet 192.168.1.100

Connecting to 192.168.1.100:23...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
CentOS release 5 (Final)
Kernel 2.6.18-8.el5 on an i686
login: root
Password: 
Last login: Wed Oct 26 08:13:15 from 192.168.1.101
[root@localhost ~]#

ps:不建议直接用root登陆,因为telnet是明文传输。建议用一个普通用户登录然后su到root用户权限

使用Samba远程挂载Windows共享目录

本文将指导如何通过Samba挂载Windows远程目录实现在CentOS下访问Windows共享文件。

前提条件

CentOS:192.168.1.101
Windows:192.168.1.102
Windows共享目录: S盘

首先安装Samba客户端

yum install -y samba-client

安装完成后,可以用smbclient -L命令查看Windows目录共享情况

smbclient -L //192.168.1.102 -U Administrator
Enter Administrator's password:
Domain=[HYPER-V] OS=[Windows Server 2016 Datacenter 14393] Server=[Windows Server 2016 Datacenter 6.3]

        Sharename       Type      Comment
        ---------       ----      -------
        ADMIN$          Disk      远程管理
        C$              Disk      默认共享
        D$              Disk      默认共享
        IPC$            IPC       远程 IPC
        S$              Disk      默认共享
        T$              Disk      默认共享
Connection to 192.168.1.102 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
NetBIOS over TCP disabled -- no workgroup available

这里可以看到我将要共享的磁盘<S:>

接下来创建共享目录

mkdir -p /mnt/share

将远程目录mount到/mnt/share目录上

mount -t cifs -o username="Administrator",password="WIN_PASSWD" //192.168.1.102/S$ /mnt/share/

解释一下上述命令

mount: 挂载命令
-t cifs: 挂载文件格式为cifs(Common Internet File System),通用Internet文件系统
-o username,password: option选项,填写Windows用户名和密码
//192.168.1.102/S$: 远程共享目录//IP/DISK$
/mnt/share: 本地目录

挂载完成后即可直接访问该远程目录了。如果需要断开挂载,只需执行:

umont /mnt/share

挂载的Windows共享文件夹在Linux重启之后就会消失的,如果还要使用,是需要重新挂载的。
如果希望Linux开机自动挂载Windows共享文件夹,则需要将挂载命令添加到Linux的/etc/fstab,也就是将前述的命令参数按照fstab的要求添加到fstab里面。

What‘s More…

可以通过使用Apache达到用浏览器访问此目录的效果。这里给出一个参考配置文件。

<VirtualHost *:80>

    DocumentRoot /mnt/share/CONTENTS/

    <Directory /mnt/share/CONTENTS/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/error.log
    CustomLog /var/log/httpd/access.log combined

</VirtualHost>

如果遇到403错误,请确认是否关闭Selinux。