AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-181235

dlyk1988's questions

Martin Hope
dlyk1988
Asked: 2015-09-30 01:28:04 +0800 CST

简单拓扑中的路由/网关问题

  • 1

为了为我的公司网络提供第二个“备份”网关,我尝试实现此拓扑:在此处输入图像描述

这很简单,调制解调器和路由器之间的网络是 192.168.1.0/24,路由器和工作站之间的网络是 192.168.10.0/24。实际的 IP 地址是草图上的那些。

路由器接口状态如下:

cisco1#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            192.168.1.69    YES NVRAM  up                    up
FastEthernet0/1            192.168.10.69   YES NVRAM  up                    up
Serial0/0/0 

路由表是这样的:

cisco1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       + - replicated route, % - next hop override

Gateway of last resort is 192.168.1.1 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 192.168.1.1
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/24 is directly connected, FastEthernet0/0
L        192.168.1.69/32 is directly connected, FastEthernet0/0
      192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.10.0/24 is directly connected, FastEthernet0/1
L        192.168.10.69/32 is directly connected, FastEthernet0/1

如您所见,我已将调制解调器的 IP 地址配置为最后的网关,以便数据包以这种方式到达 Internet。

我还为我的测试 PC 配置了 IP 192.168.10.13、掩码 255.255.255.0 和默认网关 192.168.10.69。

现在这很奇怪:从路由器的 CLI 中,我可以成功 ping 192.168.1.1、192.168.1.69、192.168.10.69 和 192.168.10.13。从测试 PC 我只能成功 ping 192.168.1.69 和 192.168.10.69。尝试从测试 PC ping 192.168.1.1 时失败。

当然,我没有来自测试 PC 的 Internet 连接。

现在,有什么我忽略的吗?为什么我无法连接到互联网?

更新:

经过更多检查,我的路由表看起来很可疑。为什么直连的网络会被这样打断?我以前从未见过路由表中提到的接口 IP 地址作为单独的“/32”直接连接的子网。

有谁知道为什么会这样?我有一种强烈的感觉,这可能与我的连接问题有关。

networking
  • 2 个回答
  • 148 Views
Martin Hope
dlyk1988
Asked: 2015-08-08 01:43:14 +0800 CST

使用 CISCO 878 的两个网络路由

  • -2

我的公司使用 192.168.10.0/24 子网,而 192.168.10.235 是所有意图和目的的 Internet 网关。我们有一条额外的 VDSL 线路,带有我们想要连接的“家庭式”调制解调器/路由器作为备份。我最初的想法是将 VDSL 调制解调器/路由器连接到我们拥有的备用 CISCO 878 路由器,然后将 878 连接到我们的交换机,IP 为 192.168.10.236,这样就可以更改 Windows 设置中的默认网关需要通过 VDSL 连接来访问 Internet,而不是我们正常的“企业”线路。

问题在于 878 设计用于将数据包从 WAN 接口(它是 ISDN,对我们没用)路由到 4 个 LAN 接口,反之亦然。LAN接口不是路由器端口,而是交换机端口,都设置为VLAN1。我了解到,在阅读 CISCO 官方文档后,在任何 800 系列路由器中,由于上述原因,不可能从一个 LAN 接口路由到另一个 LAN 接口。

现在,我想问这个:

有没有办法用我拥有的设备完成这项工作?

我现在想提出一个关于我考虑过的可能解决方案的想法,但请耐心等待(这充其量是个坏主意,最坏的情况是愚蠢且不可行):

我知道我可以使用 192.168.1.1 IP 地址将 VDSL 路由器连接到我的交换机,即使其他一切都在 192.168.10.0/24 子网上。如果我将交换机上的 878 连接到 192.168.10.236 IP(按照原始计划),有没有办法使用其中一个端口将数据包从 192.168.10.0/24 路由​​到 192.168.1.0/24 ? 我的想法是能够将默认网关从 192.168.10.235 更改为 192.168.10.236(878 IP 地址),然后让 CISCO 将数据包发送回交换机,但发往 192.168.1.0/24 网络。请注意,我的主交换机不支持 VLAN。我知道这可能是一个长镜头,而且远非最佳实践,但我认为也许可以将它组合在一起,也许是通过在 878 上的 VLAN1 上设置多个 IP 地址。

cisco
  • 1 个回答
  • 110 Views
Martin Hope
dlyk1988
Asked: 2015-06-19 03:27:56 +0800 CST

跨 2 个不同的 MSSQL 服务器复制数据库表

  • 0

我有 2 个 MSSQL 服务器正在运行,它们的数据集或多或少相同。这实际上是一个生产/开发设置。

现在,我的工作流程是这样的。每天对生产服务器上的每个数据库进行备份。我通过 Internet(10 千兆字节)将备份传输到开发服务器。我使用生产服务器的备份“恢复”开发服务器上的数据库,这样我就有了一个当前数据集。

我的问题是这样的:

是否有一种简单快捷的方法可以从 MSSQL 服务器数据库中“导出”单个表并将其导入不同 MSSQL 服务器的数据库中?

我对“最佳实践”类型的操作更感兴趣,而不是一些陪审团操纵的 POS 技巧。

更新

经过一番谷歌搜索后,我发现了 MSSQL Server 的一个函数,该函数生成一个脚本,该脚本导出表并在运行时导入它。我不能使用它,因为我需要在另一个服务器中导入表。

sql-server
  • 2 个回答
  • 7140 Views
Martin Hope
dlyk1988
Asked: 2015-04-10 00:55:57 +0800 CST

在 Docker 容器内 - crond 正在运行但没有执行 cronjobs

  • 1

我已经基于 Archlinux 基础映像从 Dockerfile 构建了一个容器。使用“RUN”命令我安装了“cronie”,因为 Arch 没有任何形式的 cron。现在,在构建容器之后,我运行它并附加到它。我手动启动 cron 守护程序,验证它是否确实在使用“ps -aux”运行,并使用“crontab -e”制作所需的 cronjobs。问题是,没有运行 cronjobs...

有任何想法吗?

cron
  • 2 个回答
  • 5971 Views
Martin Hope
dlyk1988
Asked: 2015-04-01 23:12:49 +0800 CST

无法使用 RUN 从 Dockerfile 写入 /etc/hosts 文件

  • 10

我正在使用一个非常简单的 Dockerfile 制作一个 docker 映像。在 Dockerfile 里面我有这个命令:

RUN printf "192.92.13.243 www.hahaha.com \n" >> /etc/hosts

该命令本身似乎没问题,因为此时映像的创建并未停止。

问题是:运行映像时,应该插入“/etc/hosts”中的行不存在。

现在,我四处搜索,发现在 docker 1.2 版本之前,容器内的 hosts 文件存在问题。就我而言,我使用的是 1.5 版,这是目前最新的版本。

我错过了什么吗?

更新 1:

在 docker 的 github 页面中,这似乎存在很多问题,无论是开放的还是封闭的。

docker
  • 2 个回答
  • 21102 Views
Martin Hope
dlyk1988
Asked: 2015-03-31 04:46:50 +0800 CST

Arch linux Docker 映像的构建挂起 - RUN pacman -Syyu --needed --noconfirm

  • 0

我正在尝试使用 Dockerfile 构建自定义 Docker 映像。我使用的基本图像是这个:

l3igggs/archlinux

我的 Dockerfile 是这样的:

FROM l3iggs/archlinux:latest

COPY source /srv/visitor

WORKDIR /srv/visitor

RUN pacman -Syyu --needed --noconfirm &&
        pacman -S --needed --noconfirm cronie nodejs phantomjs &&
        printf "1.2.3.4 www.hahaha.org \n" >> /etc/hosts &&
        printf "*/2 * * * *       node /srv/visitor/visitor.js \n" >> cronJobs &&
        printf "*/5 * * * *       killall -older-than 5m phantomjs \n" >> cronJobs &&
        printf "0 0 * * * rm /srv/visitor/visitor-info.log \n" >> cronJobs &&
        crontab cronJobs &&
        rm cronJobs &&
        npm install

EXPOSE 80

CMD ["/bin/sh", "-c"]

现在,当它到达应该更新的“RUN”部分时,它会挂起并输出以下错误消息:

Step 3 : RUN pacman -Syyu --needed --noconfirm &&
 ---> Running in ae19ff7ca233
/bin/sh: -c: line 1: syntax error: unexpected end of file
INFO[0013] The command [/bin/sh -c pacman -Syyu --needed --noconfirm &&] returned a non-zero code: 1

有任何想法吗?

更新 1:

现在,我怀疑我的问题与“RUN”命令有关,而不是与容器内执行的“pacman -Syyu”有关。这真的不应该是刹车,但它显然是。

docker
  • 1 个回答
  • 819 Views
Martin Hope
dlyk1988
Asked: 2015-02-10 05:48:07 +0800 CST

Docker COPY 问题 - “没有这样的文件或目录”

  • 52

在我的 Dockerfile 中,我有以下“COPY”语句:

# Copy app code
COPY /srv/visitor /srv/visitor

不用说,在我的主机系统中,在“/srv/visitor”目录下,确实有我的源代码:

[root@V12 visitor]# ls /srv/visitor/
Dockerfile  package.json  visitor.js

现在,当我尝试使用此 Dockerfile 构建映像时,它会挂在应该发生“COPY”的步骤:

Step 10 : COPY /srv/visitor /srv/visitor
INFO[0155] srv/visitor: no such file or directory

它说没有这样的目录,但显然有。

有任何想法吗?

更新 1:

有人指出我错了,以我理解构建上下文的方式。该建议相当于将“COPY”声明更改为:

COPY . /srv/visitor

问题是我有这种方式,构建过程在下一步停止:

RUN npm install

当显然有一个时,它说了类似“找不到 package.json 文件”的内容。

更新 2:

我尝试在 Dockerfile 中使用此更改运行它:

COPY source /srv/visitor/

它在尝试运行 npm 时停止:

Step 12 : RUN npm install
 ---> Running in ae5e2a993e11
npm ERR! install Couldn't read dependencies
npm ERR! Linux 3.18.5-1-ARCH
npm ERR! argv "/usr/bin/node" "/usr/sbin/npm" "install"
npm ERR! node v0.10.36
npm ERR! npm  v2.5.0
npm ERR! path /package.json
npm ERR! code ENOPACKAGEJSON
npm ERR! errno 34

npm ERR! package.json ENOENT, open '/package.json'
npm ERR! package.json This is most likely not a problem with npm itself.
npm ERR! package.json npm can't find a package.json file in your current directory.

npm ERR! Please include the following file with any support request:
npm ERR!     /npm-debug.log
INFO[0171] The command [/bin/sh -c npm install] returned a non-zero code: 34

那么,副本执行了吗?如果是,为什么 npm 找不到 package.json?

node.js
  • 12 个回答
  • 171441 Views
Martin Hope
dlyk1988
Asked: 2015-02-07 07:21:03 +0800 CST

Docker 镜像构建挂在“pacman -S ...”

  • 5

我正在尝试从官方 Arch Linux 映像构建 Docker 映像。这些是我到目前为止所做的事情:

我拉取了官方的 Arch Linux 镜像:

docker pull base/archlinux

我写了这个“Dockerfile”:

# Set base image
FROM base/archlinux:latest

# Fix mirrorlist file
#RUN rm /etc/pacman.d/mirrorlist
#RUN echo "Server = http://..." >> /etc/pacman.d/mirrorlist
#RUN echo "Server = http://..." >> /etc/pacman.d/mirrorlist
#RUN echo "Server = http://..." >> /etc/pacman.d/mirrorlist
#RUN echo "Server = http://..." >> /etc/pacman.d/mirrorlist

# Update pacman and install packages
RUN pacman-db-upgrade
RUN pacman -Syyu --noconfirm
RUN pacman -S --noconfirm nodejs phantomjs cronie

# Make cronjobs
RUN echo "*/2 * * * *   node /srv/visitor/visitor.js" >> mycronjobs
RUN echo "*/5 * * * *   killall -older-than 5m phantomjs" >> mycronjobs
RUN echo "0 0 * * *     rm /srv/visitor/visitor-info.log" >> mycronjobs
RUN crontab mycronjobs
RUN rm mycronjobs

# Fix hosts file
RUN echo "192.92.13.243 www.lololol.gr"

# Copy app code
COPY . /srv/visitor

# Install app dependencies
RUN cd /srv/visitor
RUN npm install

EXPOSE 80
CMD ["/bin/bash"]

我想要的是在命令提示符下启动容器,以便我可以在交互模式下运行并附加到它。

现在,我在构建映像时收到此错误:

Step 3 : RUN pacman -S --noconfirm nodejs phantomjs cronie
 ---> Running in 30870b31aed6
error: failed to initialize alpm library
(database is incorrect version: /var/lib/pacman/)
error:   try running pacman-db-upgrade
INFO[0127] The command [/bin/sh -c pacman -S --noconfirm nodejs phantomjs cronie] returned a non-zero code: 255

让我感到困惑的是,它看起来包数据库已正确更新,并且基础系统已升级,并且在尝试手动安装三个包时挂起。

有任何想法吗?

docker
  • 1 个回答
  • 4888 Views
Martin Hope
dlyk1988
Asked: 2015-02-07 00:57:40 +0800 CST

2 个网卡,相同的子网,不同的默认网关

  • 3

我有一个连接了 4 个调制解调器/路由器和 2 个服务器的开关。每台服务器有 2 个正在运行的进程并连接了 2 个 NIC。我想要的是每个进程都从任一 NIC 路由出去,但具有不同的默认网关,以便每个进程的流量都流向不同的路由器。

更新 1:

基本上我想要做的是:在进程级别控制流量从哪个 NIC 流出。

更新 2:

我知道使用“网络命名空间”我可以将来自特定 NIC 的进程的流量发送出去。我的问题是两个 NIC 应该在同一个子网上。同时,来自 NIC-1 的流量应该被定向到 ROUTER -1 和从 NIC-2 到 ROUTER-2 的流量

更新 3:

我是从 Linux 的角度来问这个问题的。

networking
  • 1 个回答
  • 763 Views
Martin Hope
dlyk1988
Asked: 2015-02-05 07:51:07 +0800 CST

Docker (systemd) 忽略默认目录 (docker.service) 的更改

  • 1

我想在服务器上部署 docker,但我希望所有与 docker 相关的数据都位于与基本系统不同的分区中。因此,根据官方文档,我已将所述分区安装在“/srv”并进行了以下更改:

这是我的“/usr/lib/systemd/system/docker.service”文件:

[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target docker.socket
Requires=docker.socket

[Service]
Type=notify
EnvironmentFile=-/srv/docker/docker.conf
ExecStart=/usr/bin/docker -d -H fd:// $OPTIONS
LimitNOFILE=1048576
LimitNPROC=1048576

[Install]
Also=docker.socket
WantedBy=multi-user.target

这是“docker.service”文件中引用的“/srv/docker/docker.conf”文件:

$OPTIONS="--graph /srv/docker --storage btrfs"

docker 守护进程正确启动并且还拉取图像。问题是它仍然没有在“/srv/docker”目录中存储任何内容。

另外,当我运行 'ps -aux | grep docker',我得到的是:

root       661  0.4  0.2 351080 17044 ?        Ssl  19:33   0:00 /usr/bin/docker -d -H fd://

命令行在“fd://”处停止。在我看来,'$OPTIONS' 出于某种原因被忽视了。

现在,我引用文件的方式有问题吗?这里还有其他事情吗?我进行所有这些配置更改的原因是我真的很想将所有与 docker 相关的数据保存在“/srv/docker/”目录下。

有任何想法吗?

更新 1:

按照答案部分的建议,我更改了我的 'docker.conf' 文件。现在:

$OPTIONS="--graph /srv/docker --storage btrfs"

变成:

OPTIONS="--graph /srv/docker --storage btrfs"

这导致了 docker 守护进程未启动的(意外)后果。这是来自“systemctl status docker”的调试消息:

[root@V12 ~]# systemctl status docker ● docker.service - Docker 应用程序容器引擎已加载:已加载(/usr/lib/systemd/system/docker.service;已启用;供应商预设:已禁用) 活动:失败(结果:退出-code) 自 2015 年 2 月 5 日星期四 20:13:31 EET 起;14 秒前 文档:http ://docs.docker.com 进程:776 ExecStart=/usr/bin/docker -d -H fd:// $OPTIONS (code=exited, status=2) Main PID: 776 (code=退出,状态=2)

configuration
  • 3 个回答
  • 2001 Views
Martin Hope
dlyk1988
Asked: 2015-01-16 06:43:19 +0800 CST

从 docker 容器到 Google Kubernetes

  • 7

这个有点理论,但请多多包涵。

目前我有一台服务器运行几个 Docker 容器(4 或 5 个,取决于日期和时间)。我计划添加另一个,就像第一个一样,甚至可能添加第三个。

现在,我的问题是:我是否应该管理 15 个容器而不是 5 个容器,使用 Google Kubernetes 有什么好处吗?

此外,是否有一个“官方”或至少“权威”的工作流程来从 Docker 容器迁移到 Kubernetes 的原生单元“pods”。在你问之前,我确实知道 pod 是由容器组成的(有时甚至是一个)。我的主要问题是 'dockerfiles' 与 pod 配置完全不同。

有任何想法吗?

docker
  • 2 个回答
  • 1148 Views
Martin Hope
dlyk1988
Asked: 2014-12-13 07:39:53 +0800 CST

通过 PORT 监控网络流量/使用情况

  • 4

如果这超出主题,我提前道歉。

我目前正在使用 Icinga 和 Cacti 分别监控机器和网络。虽然我对这个设置没有什么大问题,但我真的很想可以选择通过端口实时监控网络流量。

有没有一个实用程序可以做到这一点?我只知道 Paesler 和 Solar Winds,但现在任何非开源的东西都是不可能的。

有任何想法吗?

network-monitoring
  • 2 个回答
  • 3352 Views
Martin Hope
dlyk1988
Asked: 2014-12-09 07:00:08 +0800 CST

Nagios 插件手动执行但不自动执行

  • 1

经过反复试验,我设法让check_hwinfo插件只能部分工作。我说的部分是手动的。

在我的“/usr/lib64/nagios/plugins”目录中,我有具有正确权限的“check_nrpe_hwinfo.sh”脚本:

[root@localhost plugins]# ls -lah | grep hwinfo
-rwxr-xr-x. 1 root root    419 Dec  8 15:35 check_nrpe_hwinfo.sh

在我的“conf.d”目录中,我有一个带有必要声明的“check-hwinfo.cfg”文件:

define command{
        command_name    check_hwinfo
        command_line    $USER1$/check_nrpe_hwinfo.sh $HOSTNAME$ $HOSTADDRESS$
}



define service{
        use                     generic-service
        hostgroup_name          1st-floor-windows-nrpe-hosts,2nd-floor-windows-nrpe-hosts
        service_description     HW Info
        notification_options    none
        normal_check_interval   240
        notification_interval   240
        retry_check_interval    2
        max_check_attempts      120
        check_command           check_hwinfo
}

在我的 Windows 主机上,我在“C:\NSClient++\scripts”中有提供的“check_hwinfo.wsf”文件。双击时,脚本正确运行并在弹出窗口中显示信息。另外,我已经像这样修改了“nsclient-full.ini”文件:

[/settings/external scripts/scripts]
check_hwinfo=c:\windows\system32\cscript.exe //NoLogo //T:30 scripts\check_hwinfo.wsf
check_hwinfo_csv=c:\windows\system32\cscript.exe //NoLogo //T:30 scripts\check_hwinfo.wsf /sep:csv

在我的 Nagios 服务器上,在 '/usr/lib64/nagios/plugins/' 目录中,我给出以下命令:

./check_nrpe -H 192.168.10.13 -c check_hwinfo

我得到正确的输出。

检查应该自动运行。但是...在 Nagios WebUI 中,我在与 check_hwinfo 对应的行中收到此错误:

(Return code of 126 is out of bounds - plugin may not be executable) 

在对 Nagios 进行了一些实验之后,我认为这只是一个通用错误。

所以...任何想法为什么检查在手动运行时执行并正确返回但在自动运行时不正确?

更新 1:

“check_nrpe_hwinfo.sh”文件看起来完全像这样:

#!/bin/bash

ARG_HOSTNAME=${NAGIOS_HOSTNAME:-$1}
ARG_HOSTADDRESS=${NAGIOS_HOSTADDRESS:-$2}

PATH=${PATH}:/usr/lib64/nagios/plugins

HWINFO="`check_nrpe -H $ARG_HOSTNAME -c check_hwinfo_csv`"
RESULT=$?
ARG_HOSTNAME_CLEAN=`echo $ARG_HOSTNAME | tr -cd '0-9a-zA-Z._-'`

if [ "$RESULT" == 0 ]; then
        echo "\"$ARG_HOSTADDRESS\",$HWINFO" > /var/www/html/hwinfo/$ARG_HOSTNAME_CLEAN
fi
echo "$HWINFO"
exit $RESULT

更新 2:

[root@localhost plugins]# ./check_nrpe -H 192.168.10.13 -c check_hwinfo_csv
"Gigabyte Technology Co., Ltd.","P55A-UD3","","1","Intel(R) Core(TM) i7 CPU         870  @ 2.93GHz","2927 MHz","8192 KB","133 MHz","8192M","Non-ECC","4096M/2048M/2048M/0","932 G / 932 G","WDC WD10EALS-002BA0 ATA Device / WDC WD10EZRX-00A8LB0 ATA Device","Microsoft Windows 7 Ultimate "
nagios
  • 2 个回答
  • 1197 Views
Martin Hope
dlyk1988
Asked: 2014-11-22 06:21:17 +0800 CST

如何使用 Windows MMC 管理来自另一个 AD 域的计算机?

  • 6

我目前正在管理分布在 2 个不同 AD 域中的计算机。我将称这两个域为 MEDIA 和 DATA。我的工作站和我的大多数同事都是 MEDIA (192.168.10/24) 域的成员。

DATA 10.0.62.0/24) 域位于远程数据中心。我在两个目录中都有一个有效的管理员帐户。

有一个 VPN 可以让我免费访问远程域。

我正在使用 Windows 管理控制台 (MMC) 来管理本地域 (MEDIA - 192.168.10.0/24) 中的计算机。我的问题是这样的:

如何使用我的工作站(在 MEDIA 域上)的 MMC 来管理 DATA 域中的计算机?

active-directory
  • 1 个回答
  • 15144 Views
Martin Hope
dlyk1988
Asked: 2014-11-20 06:55:25 +0800 CST

Powershell脚本计划任务不会结束

  • 4

我想使用这个Powershell 脚本在 Win7 机器上自动进行一些备份。当从 Powershell 终端手动运行时,脚本会按照宣传的方式运行,并在几秒钟后结束(这是一个小备份)。

问题是当我尝试使用任务计划程序自动化该过程时。时机成熟时(或者当我手动运行任务时),脚本会运行并正确执行备份。但它并没有回到“就绪”状态,即使我知道它已经结束。我每次都必须手动停止任务。

现在,我还没等到该任务再次运行时会发生什么,但我认为它不会第二次启动,因为它还没有“准备好”。

我能做些什么呢?

更新 1:

我选择的操作是“启动程序”。在“程序/脚本”框中,我有“powershell.exe”,作为参数,我有脚本“*.ps1”文件的路径。

更新 1:

我注意到虽然任务没有返回到“就绪”,但如果我手动启动它,它会再次运行。

windows-7
  • 1 个回答
  • 9752 Views
Martin Hope
dlyk1988
Asked: 2014-10-28 07:30:27 +0800 CST

Nagios - NSClient++ 无法运行包含的外部脚本

  • 2

我在 Centos 7 机器上运行 Nagios 3.5。该设置用于通过 NRPE(check_nrpe 命令)监视某些 Windows 机器。目前我正在使用“nsclient-full.ini”文件中的预配置“别名”命令。到目前为止一切正常。

我想使用“alias_updates”命令监视主机上 Windows 更新的状态。

; alias_updates - Alias for alias_updates.
alias_updates = check_updates -warning 0 -critical 0 ShowAll=long

这是定义所有外部脚本的部分:

; A list of scripts available to run from the CheckExternalScripts module.
[/settings/external scripts/scripts]
check_updates=C:\Program Files\NSClient++\scripts\check_updates.vbs

当然,我已经检查过我提供的路径中是否存在“check_updates.vbs”。毕竟,它与 NSClient++ 捆绑在一起。

我已启用外部脚本的执行:

; Check External Scripts - A simple wrapper to run external scripts and batch files.
CheckExternalScripts = 1

其他相关的配置选项(在我看来)是:

; Section for NRPE (NRPEServer.dll) (check_nrpe) protocol options.
[/settings/NRPE/server]

; COMMAND ARGUMENT PROCESSING
allow arguments = true

; COMMAND ALLOW NASTY META CHARS
allow nasty characters = false

; PORT NUMBER - Port to use for NRPE.
port = 5666


; Section for external scripts configuration options (CheckExternalScripts).
[/settings/external scripts]

; COMMAND ARGUMENT PROCESSING
allow arguments = true

; COMMAND ALLOW NASTY META CHARS
allow nasty characters = false

; SCRIPT DIRECTORY
script path = 

; COMMAND TIMEOUT
timeout = 60

在 Nagios 服务器上,从命令提示符下,我正在尝试这个:

[root@mama365-account plugins]# ./check_nrpe -H 192.168.10.13 -c alias_updates

我得到的回应是这样的:

ExternalCommands: failed to create process (C:\Program Files\NSClient++\scripts\check_updates.vbs): it is not an exe file (check NSC.log for more info) - failed to lookup error code: 193( reson: 87)

我知道 NSClient 可以运行不可执行的插件 (*.exe),而只能运行脚本。这是一个VB脚本。此外,在 Nagios GUI 中与命令对应的框中也会显示相同的错误消息。

任何人都知道如何解决这个问题?阅读 NSClient++ 的文档只让我到目前为止......

更新 1:

我按照迈克尔·梅丁(Michael Medin)对这封信提供的说明进行操作。现在我的 'nsclient-full.ini' 看起来像这样:

; A list of wrappped scripts (ie. using the template mechanism)
[/settings/external scripts/wrapped scripts]
check_updates=scripts\check_updates.vbs

; VISUAL BASIC WRAPPING - 
vbs=cscript.exe //T:30 //NoLogo %SCRIPT% %ARGS%

问题是,现在我遇到了另一个错误,这一次与 vb 脚本的执行有关:

C:Program FilesNSClient++scriptscheck_updates.vbs(15, 1) Microsoft VBScript runtime error: Class not defined: 'NagiosPlugin' 

附带说明一下,看起来插件返回了“OK”,因为 Nagios 中的相应框是绿色的。

更新 2:

在 NSClient++ 论坛中搜索后,我发现有人遇到了同样的问题。原来我错过了一个'\':

check_updates=scripts\check_updates.vbs

应该:

check_updates=scripts\\check_updates.vbs

但我仍然无法让它工作。现在看来脚本的通信和执行正常,但是操作超时。如果我使用命令行中的“-t”选项将超时设置为 120 秒,则会收到以下错误消息:

CHECK_NRPE: Received 0 bytes from daemon.  Check the remote server logs for error messages.
nagios
  • 1 个回答
  • 19170 Views
Martin Hope
dlyk1988
Asked: 2014-10-04 01:41:15 +0800 CST

Centos 服务器不会保存 iptables 配置

  • -1

我已经设置了一个 Centos 7 服务器来运行 Nagios。默认情况下,操作系统有非常严格的 iptables 规则,这里的一个人建议通过输入以下命令来解决这个问题:

iptables -A IN_public_allow -p tcp --dport 80 -j ACCEPT 

这工作正常,直到我重新启动服务器,此时我必须再次输入命令,否则服务器将再次无法访问。

这是 iptables 的正常行为吗?我可以做些什么来修复它吗?

iptables
  • 2 个回答
  • 1968 Views
Martin Hope
dlyk1988
Asked: 2014-10-03 04:11:20 +0800 CST

Nagios 服务器无法访问

  • 0

我已经用 Centos 7 设置了一台机器,并成功地从 EPEL 存储库安装了 Nagios。使用 Lynx(命令行浏览器)我可以访问机器上运行的 Nagios 服务器,但它说浏览器必须支持框架,而 Lynx 不支持。现在,我的问题是尝试从同一 LAN 中的任何其他计算机访问服务器时。当服务器所在的机器可以 ping 通时,每个请求都会超时。此外,这些请求不会在 apache 的 access_log 和 error_log 中生成任何新行。除了 Nagios 服务之外,当我尝试访问我在该服务器上作为测试创建的 index.html 文件时也会发生同样的情况(该测试文件也可以从本地 Lynx 中访问)。我没有篡改 apache 或 Nagios 安装的 *.conf 文件。请帮忙。

更新:

这是httpd.conf和nagios.conf

更新 2:

根据@MadHatter 的请求,这里是 windows cmd telnet 实用程序的输出:\

Connecting To 192.168.10.17...Could not open connection to the host, on port 80: Connect failed

更新 3:

这是来自的输出iptables -L:

这里

更新 4:

这是来自的输出iptables -L -n -v:

这里

apache-2.2
  • 2 个回答
  • 176 Views
Martin Hope
dlyk1988
Asked: 2014-10-01 02:14:08 +0800 CST

Centos 上的 Nagios 编译错误

  • 1

我正在尝试使用此处找到的说明在 Centos 7 机器上安装 Nagios 4 。当我进行编译和输入时,make all我收到此错误:

make[1]: *** No rule to make target `../include/locations.h’, needed by ‘nagios.o’. Stop.

我已经按照这些说明写信了,但我不能再进一步了。该怎么办?

nagios
  • 1 个回答
  • 544 Views
Martin Hope
dlyk1988
Asked: 2013-10-29 04:28:00 +0800 CST

ARM 处理器上的 CPU 亲和性

  • 2

我正在将一些 RaspberryPI 板用于数据采集系统。他们是不错的董事会,周围有很多社区支持,但他们真的很慢。我正在考虑用三星 Exynos 处理器逐渐用ODROID多核板替换它们。

我有一些使用任务集在我的服务器上设置 CPU 亲和性的经验,因为我总是运行定义为单线程的 Node.js 应用程序。

现在,是否可以在 ARM 板上执行此操作?我不明白为什么它在理论上不会,但我怀疑它的效果如何。

有没有人有这种黑客的经验?另外,如果您对 ARM CPU 以及它们与 x86 有何不同,我将不胜感激。

linux
  • 2 个回答
  • 2063 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve