Как люди управляют своими серверами? [closed]

Я хочу знать различные методы, которые люди используют для управления инвентаризацией серверов. Под инвентаризацией серверов я имею в виду в основном базу данных, которая отслеживает основную информацию о серверах, такую ​​как имя хоста, тип ОС, IP-адрес управления.

Несколько решений, которые я могу придумать

  • Электронная таблица
  • Microsoft Access

Какие еще решения? Каковы плюсы и минусы этих решений?

0
задан 6 October 2014 в 16:28
3 ответа

Это очень просто, используйте программное обеспечение, которое может сделать это для вас, из моего опыта в этом вопросе, я использовал GLPI, он получил все детали, которые вам могут понадобиться и многое другое.

Вы можете ввести все детали о сервере, например, оперативную память, процессор, DISK и т.д. и добавить идентификатор ссылки на него, какую сетевую конфигурацию он имеет, кто использует этот сервер.

Вы можете создать учетные записи пользователей, чтобы предупреждать, если что-то не так с их компьютером, отправив заявку в службу поддержки, администратор получит уведомление по электронной почте, чтобы он мог сразу же ответить или исправить проблему. и у вас будет вся история проблем, связанных с компьютером.

GLPI - это свободное программное обеспечение с открытым исходным кодом, у него есть простой веб-интерфейс, который облегчает его использование даже для нетехнических пользователей.

1
ответ дан 4 December 2019 в 17:09

Я использовал небольшие базы данных или даже csv-файлы, при необходимости добавлял внешние интерфейсы. Например, несколько таблиц в базе данных MySQL с каким-то питоновым или php кодом спереди, чтобы обеспечить удобный интерфейс для поиска и модификации.

Конечно, все это требует наличия администратора, которому удобны эти инструменты, но это означает, что остальным пользователям не нужно a) знать эти инструменты, b) иметь прямой доступ к хранилищу данных, или c) смотреть на данные так же, как вы это делаете. Вы можете создавать представления только для чтения, добавлять аутентификацию, разрешать удаленный доступ к данным и т.д. Или вы можете не делать ничего из этого, а просто иметь один csv файл для одного человека для обслуживания. База данных лучше, потому что вы можете добавлять поля, когда они вам нужны, без резких изменений кода интерфейса.

.
0
ответ дан 4 December 2019 в 17:09

Пожалуйста, попробуйте использовать следующий визуальный базовый скрипт на сервере и вытащить такую информацию, как имя хоста, марка, модель, биосверсия, операционная система, серийный номер, процессор, память и дисковые накопители в .csv файле. Скопируйте код и сохраните его как файл .vbs. Все, что вам нужно сделать, это изменить 6-ю и 7-ю строки с соответствующими путями. Текстовый файл должен содержать имя хоста или FQDN имя сервера, на котором он будет выполняться.

Надеюсь, это поможет.

Option Explicit

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

Const PATH_TO_INPUT = "D:\MachineName.txt"
Const PATH_TO_OUTPUT = "D:\MachineInventory.csv"

Dim fso
Set fso = WScript.CreateObject("Scripting.FileSystemObject")

Dim shl
Set shl = WScript.CreateObject("WScript.Shell")

Dim input
Set input = fso.OpenTextFile(PATH_TO_INPUT)

Dim output
Set output = fso.CreateTextFile(PATH_TO_OUTPUT, True)

output.WriteLine "Hostname,Serial Number,Make,Model,BIOS Version,Operating System,CPU,Memory (MB),Disk Drives"

Dim wmiService
Dim wmiResults

Dim hostname
Dim make
Dim model
Dim biosversion
Dim operatingSystem
Dim serialNumber
Dim cpu
Dim memory
Dim drives

Dim line
Dim exec
Dim pingResults 
While Not input.AtEndOfStream
    line = input.ReadLine
    hostname = ""
    make = ""
    model = ""
    biosversion = ""
    operatingSystem = ""
    serialNumber = ""
    cpu = ""
    memory = ""
    drives = ""

    Set exec = shl.Exec("ping -n 2 -w 1000 " & line)
    pingResults = LCase(exec.StdOut.ReadAll)

    If InStr(pingResults, "reply from") Then
        On Error Resume Next

        Set wmiService = GetObject("winmgmts:\\" & line & "\root\CIMV2")

        If Not Err.Number = 0 Then
            output.WriteLine line & ",Error: " & Err.Description
            WScript.Echo line & ",Error: " & Err.Description
            On Error GoTo 0
        Else
            On Error GoTo 0
            hostname = line

            Set wmiResults = wmiService.ExecQuery("SELECT * FROM Win32_BIOS", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)

            Dim item
            For Each item In wmiResults
                serialNumber = Trim(item.SerialNumber)
                biosversion = Trim(item.SMBIOSBIOSVersion)        
            Next

            Set wmiResults = wmiService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)

            For Each item In wmiResults
                make = Trim(item.Manufacturer)
                model = Trim(item.Model)
            Next

            Set wmiResults = wmiService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)

            For Each item In wmiResults
                operatingSystem = Trim(item.Name)
                operatingSystem = Split(operatingSystem, "|")(0)
                memory = Round(Trim(item.TotalVisibleMemorySize) / 1024, 2)
            Next

            Set wmiResults = wmiService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)

            For Each item In wmiResults
                cpu = Trim(item.Name)
            Next

            Set wmiResults = wmiService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType=3", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)

            For Each item In wmiResults
                drives = drives & Trim(item.DeviceID) & "" & Round(Trim(item.Size) / (1024^2), 2) & ";  "
            Next

            output.WriteLine hostname & "," & serialNumber & "," & make & "," & model & "," & biosversion & "," & operatingSystem & "," & cpu & "," & memory & "," & drives
        End If
    Else
        output.WriteLine line & ",No Response"
        WScript.Echo line & ",No Response"
    End If
Wend 

output.Close
input.Close

Set wmiService = Nothing
Set wmiresults = Nothing
0
ответ дан 4 December 2019 в 17:09

Теги

Похожие вопросы