
Родом из потомственных дворян Курляндской губернии. Родился в Москве, в дворянской семье немецкого происхождения прусского и российского графского. Лютеранского вероисповедания. Сын сенатора, тайного советника Эдуарда Фёдоровича Келлера, двоюродный брат героя Первой мировой войны, русского генерала от кавалерии графа Ф. А. Келлера.
Воспитывался в Пажеском Его Императорского Величества корпусе, там же получил общее и военное образование (окончил в 1868 году). Также окончил Николаевскую академию Генерального штаба в 1876 году. С 1868 года служил в лейб-гвардии Кавалергардском полку, в апреле 1876 года произведен в ротмистры.
Уволившись с 1 августа 1876 года от службы «по домашним обстоятельствам» ротмистр граф Келлер отправился добровольцем на начавшуюся Сербско-турецкую войну и в августе того же года был зачислен подполковником в сербскую армию (впоследствии время, проведенное в сербской армии, было засчитано ему за действительную службу в русской армии). В августе 1876 года он принял участие в сражении при Алексинаце, затем в начале сентября того же года — в сражении при Адроваце.
5 сентября 1876 года Келлер был командирован главнокомандующим сербской армией генералом Черняевым из Делиграда с особым поручением к наследнику цесаревичу Александру Александровичу и к фельдмаршалу князю Барятинскому. Быстро выполнив поручение, он уже 22 сентября вернулся в долину Моравы, где 24 сентября был назначен начальником левого крыла III корпуса, действовавшего против Османа-паши, причём отряд Келлера (10 батальонов, 1 эскадрон, 10 орудий) отбил у Копыта 4 октября 1876 года стремительную атаку турок. Через два дня Келлер перешёл в наступление для занятия Зайчара и после кровопролитного боя на Копыте занял неприятельские позиции.
После поражения при Джунисе (17/29 октября 1876 года) и объявления перемирия, остатки отошедших к Чуприи отрядов русских добровольцев были сведены Черняевым в русскую добровольческую дивизию и Келлер был назначен начальником её штаба. Но из-за разногласия во взглядах с начальником дивизии полковником Межениновым (о мерах поддержания дисциплины) Келлер спустя два дня был освобождён от должности и 23 октября 1876 года уехал в Белград.
За боевые отличия в Сербско-турецкой войне 1876 года граф Келлер был награждён тремя сербскими наградами: офицерским крестом ордена Такова и двумя медалями «За храбрость» — серебряной и, на то время высшей военной наградой Сербии, большой золотой.
18 декабря 1876 года отставной ротмистр гвардии граф Келлер вновь был определен в службу подполковником в Генеральный штаб. Участвовал в русско-турецкой войне 1877-1878 годов. Служил в штабе 11-го армейского корпуса, затем был исполняющим должность начальника штаба Иметлийского отряда генерал-лейтенанта М.Д. Скобелева, начальником штаба авангарда Действующей армии. Имел ряд наград, в том числе орден св. Георгия 4-й степени.
С 1879 года – полковник, был начальником штаба 1-й гренадерской дивизии, командиром Лейб-гвардии 4-го стрелкового Императорской Фамилии батальона. С 1890 года – генерал-майор, заведующий мобилизационной частью Главного управления казачьих войск. С 1894 года – директор Пажеского корпуса. В 1899 году произведен в генерал-лейтенанты.
С 1900 года – екатеринославский губернатор. С 1904 года – командующий 2-м Восточно-Сибирским стрелковым корпусом на фронте русско-японской войны. Погиб в бою 18 июля 1904 года. Похоронен в семейной усыпальнице в своем имении Сенницы (ныне – городской округ Коломна Московской области) примерно в 20 км от Зарайска. Усыпальница сейчас находится в руинах (останки Келлера были из нее выброшены), на территории усадьбы стоит памятный знак генералу Келлеру.
Међународна научна конференција «Алексинац 1876–2026» у Манастиру Светог Романа